// TODO Add documentation, clean up, remove commented out code, etc.
    public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata)
    {
        float Resistanc = 0;

        if (Indata == null)
        {
            return(Resistanc);
        }

        bool goingToExists    = ResistanceSources.ResistanceGoingTo.TryGetValue(Indata, out VIRResistances goingTo);
        bool comingFromExists = ResistanceSources.ResistanceComingFrom.TryGetValue(Indata, out VIRResistances comingFrom);

        if (goingToExists && comingFromExists)
        {
            HashSet <ResistanceWrap> ResistanceSour = new HashSet <ResistanceWrap>(comingFrom.ResistanceSources);

            //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSour.ExceptWith(ResistanceSourtoreove);

            float Toadd    = 0;
            float ToRemove = 0;

            foreach (var Resistance in ResistanceSour)
            {
                if (goingTo.ResistanceSources.Contains(Resistance))
                {
                    Toadd = 1 / Resistance.Resistance();
                }

                //else {
                //	ToRemove = 1 / Resistance.Resistance();
                //}
            }

            if (Toadd != 0)
            {
                Toadd = 1 / Toadd;
            }

            Resistanc = Toadd - ToRemove;
        }
        else
        {
            if (comingFromExists)
            {
                Resistanc = comingFrom.Resistance();
            }
            else if (goingToExists)
            {
                Resistanc = goingTo.Resistance();
            }
        }

        return(Resistanc);
    }
    // TODO Add documentation, clean up, remove commented out code, etc.
    public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata)
    {
        float Resistanc = 0;

        if (Indata != null && ResistanceSources.ResistanceGoingTo.ContainsKey(Indata) &&
            ResistanceSources.ResistanceComingFrom.ContainsKey(Indata))
        {
            HashSet <ResistanceWrap> ResistanceSour =
                new HashSet <ResistanceWrap>(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSour.ExceptWith(ResistanceSourtoreove);

            float Toadd    = 0;
            float ToRemove = 0;

            foreach (var Resistance in ResistanceSour)
            {
                if (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources.Contains(Resistance))
                {
                    Toadd = 1 / Resistance.Resistance();
                }

                //else {
                //	ToRemove = 1 / Resistance.Resistance();
                //}
            }

            if (Toadd != 0)
            {
                Toadd = 1 / Toadd;
            }

            Resistanc = Toadd - ToRemove;
        }
        else
        {
            if (ResistanceSources.ResistanceComingFrom.ContainsKey(Indata))
            {
                Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance();
            }
            else if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata))
            {
                Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance();
            }
        }

        //Logger.Log((1 / ResistanceXAll)+ "< Return");
        return(Resistanc);
    }