public void TestSameTypeEquality() { Load l = new Load("ID", Complex.Zero); var conn1 = new NetworkElementConnection(l, 1); var conn2 = new NetworkElementConnection(l, 1); Assert.IsTrue(conn1.Equals(conn2) && conn2.Equals(conn1)); }
public void TestEqualityWithNull() { Load l = new Load("ID", Complex.Zero); var conn1 = new NetworkElementConnection(l, 1); Assert.IsFalse(conn1.Equals(null)); Assert.IsFalse(NetworkElementConnection.Equals(conn1, null)); }
public void TestOperatorOverloadEquality() { Load l = new Load("ID", Complex.Zero); var conn1 = new NetworkElementConnection(l, 1); var conn2 = new NetworkElementConnection(l, 1); Assert.IsTrue(conn1 == conn2); Assert.IsFalse(conn1 != conn2); }
public void TestSameTypeInequality() { Load l = new Load("ID", Complex.Zero); var conn1 = new NetworkElementConnection(l, 1); var conn2 = new NetworkElementConnection(l, 2); var conn3 = new NetworkElementConnection(new Load("ID",0), 1); Assert.IsFalse(conn1.Equals(conn2)); Assert.IsFalse(conn2.Equals(conn1)); Assert.IsFalse(conn1.Equals(conn3)); }
/// <summary> /// Obtains all loads in the Active Circuit. /// </summary> /// <param name="Buses">A Dictionary of buses indexed by ID. /// Used for determining which buses the loads are on.</param> /// <returns>All loads in the Active Circuit.</returns> private Collection<Load> GetLoads(Dictionary<String, Bus> Buses) { Collection<Load> results = new Collection<Load>(); String[] loads = dss.ActiveCircuit.Loads.AllNames; //more OpenDSS quirk handling. if there are no loads, OpenDSS returns // an array of length 1 with the item "NONE". go figure. if (loads[0] == "NONE") { return results; } //loop through the loads, connect the appropriate buses and add them. foreach (String loadName in loads) { var dssLoad = dss.ActiveCircuit.CktElements["load." + loadName]; if (!dssLoad.Enabled) continue; var rawPowers = (double[])dssLoad.Powers; var powers = new PhasedValues<Complex>(); for (int i = 0; i < dssLoad.NumPhases; i++) { powers[i + 1] = new Complex(rawPowers[2*i], rawPowers[2*i + 1]); } Load load = new Load(loadName, powers); var busConnectionInfo = ResolveOpenDSSBusString((String)dssLoad.BusNames[0], dssLoad.NumPhases); if (Buses.ContainsKey(busConnectionInfo.Item1)) { load.ConnectWye(Buses[busConnectionInfo.Item1],powers.Keys,busConnectionInfo.Item2); } results.Add(load); } return results; }
public void PrepBalanced() { Dictionary<String, Bus> buses = new Dictionary<string, Bus>(); buses["b1"] = new Bus("b1", pr(132.79, 0), 132.79, new Point(0, 0)); buses["b2"] = new Bus("b2", pr(133.73, -0.1), 132.79, new Point(0, 0)); buses["b3"] = new Bus("b3", pr(133.55, -0.1), 132.79, new Point(0, 0)); buses["b4"] = new Bus("b4", pr(133.99, -0.1), 132.79, new Point(0, 0)); var lb1b2 = new Line("b1b2", 1); lb1b2.Connect(buses["b1"], buses["b2"]); var lb1b3 = new Line("b1b3", 2); lb1b3.Connect(buses["b1"], buses["b3"]); var lb2b4 = new Line("b2b4", 3); lb2b4.Connect(buses["b2"], buses["b4"]); var lb3b4 = new Line("b3b4", 4); lb3b4.Connect(buses["b3"], buses["b4"]); Collection<Line> lines = new Collection<Line>(); lines.Add(lb1b2); lines.Add(lb1b3); lines.Add(lb2b4); lines.Add(lb3b4); Generator g = new Generator("g4", new Complex(318000, 0)); g.Connect(buses["b4"]); Collection<Generator> generators = new Collection<Generator>(); generators.Add(g); Collection<Load> loads = new Collection<Load>(); var l1 = new Load("l1", new Complex(50000, 30990)); l1.Connect(buses["b1"]); var l2 = new Load("l2", new Complex(170000, 105350)); l2.Connect(buses["b2"]); var l3 = new Load("l3", new Complex(200000, 12940)); l3.Connect(buses["b3"]); var l4 = new Load("l4", new Complex(80000, 49580)); l4.Connect(buses["b4"]); loads.Add(l1); loads.Add(l2); loads.Add(l3); loads.Add(l4); model = new NetworkModel(buses, lines, loads, generators, new Complex(19580, -17810600), buses["b1"]); }
public void PrepUnbalanced() { Dictionary<String, Bus> buses = new Dictionary<string, Bus>(); buses["b1"] = new Bus("b1", pc3pr(130770, 0.4, 132860, -120.8, 134130, 120.6), 132.79, new Point(0, 0)); buses["b2"] = new Bus("b2", pc3pr(866380, 99.9, 83445, -21.2, 86499, -142.5), 132.79, new Point(0, 0)); buses["b3"] = new Bus("b3", pc3pr(94825, 14.5, 96205, -107.4, 98249, 134.2), 132.79, new Point(0, 0)); buses["b4"] = new Bus("b4", pc3pr(67374, 68.6, 65606, -54, 69131, -174), 132.79, new Point(0, 0)); var lb1b2 = new Line("b1b2", 1); lb1b2.Connect(buses["b1"], new[] { 1, 2, 3 }, buses["b2"], new[] { 2, 3, 1 }); var lb1b3 = new Line("b1b3", 2); lb1b3.Connect3Phase(buses["b1"], buses["b3"]); var lb2b4 = new Line("b2b4", 3); lb2b4.Connect3Phase(buses["b2"], buses["b4"]); var lb3b4 = new Line("b3b4", 4); lb3b4.Connect(buses["b3"], buses["b4"], new[] { 1, 2 }); Collection<Line> lines = new Collection<Line>(); lines.Add(lb1b2); lines.Add(lb1b3); lines.Add(lb2b4); lines.Add(lb3b4); Generator g = new Generator("g4", pc3(106000, 0.9797, 106000, -1.3930, 106000, 0.4265)); g.ConnectWye(buses["b4"]); Collection<Generator> generators = new Collection<Generator>(); generators.Add(g); Collection<Load> loads = new Collection<Load>(); var l1 = new Load("l1", pc3(16382, 10280, 16852, 10108, 16766, 10601)); l1.ConnectWye(buses["b1"], 1, 2, 3); var l2 = new Load("l2", pcV(2, 85000, 52674, 3, 85000, 52675)); l2.ConnectWye(buses["b2"], 2, 3); var l3 = new Load("l3", pcV(1, 200000, 12940)); l3.ConnectWye(buses["b3"], 1, 2); var l4 = new Load("l4", pc3(26666, 16527, 26666, 16527, 26666, 16527)); l4.ConnectWye(buses["b4"], 1, 2, 3); loads.Add(l1); loads.Add(l2); loads.Add(l3); loads.Add(l4); model = new NetworkModel(buses, lines, loads, generators, new Complex(140424, 692575), buses["b1"]); }