public void NumberOfEquationsEqualsTwo() { IComponent R = new IdealResistor(1.0); var equations = R.Equations; Assert.Equal(2, equations.Count); }
public void FollowsOhmsLawsDisconnected() { var R1 = new IdealResistor(1.0); var R2 = new IdealResistor(1.0); var R3 = new IdealResistor(1.0); var equations1 = ((IComponent)R1).Equations; var equations2 = ((IComponent)R2).Equations; var equations3 = ((IComponent)R3).Equations; R2.Positive.ConnectTo(R3.Negative); Assert.Equal(default(Complex), equations1.First()()); Assert.Equal(default(Complex), equations2.First()()); Assert.Equal(default(Complex), equations3.First()()); }
public void FollowsOhmsLawsConnected( Complex voltageNode1, Complex voltageNode2, Complex current, double resistance, Complex expectedValue) { var R = new IdealResistor(resistance); var dipole = new MockedDipole(); var equation = ((IComponent)R).Equations.First(); IComponent node1 = R.Positive.ConnectTo(dipole.Positive); IComponent node2 = R.Negative.ConnectTo(dipole.Negative); IComponent positive = R.Positive; node1.Variables.First().Setter(voltageNode1); node2.Variables.First().Setter(voltageNode2); positive.Variables.First().Setter(current); Assert.Equal(expectedValue, equation()); }
public void SimpleMockedSolvedCircuit() { var R = new IdealResistor(2); var V = new IdealDCVoltageSource(12); R.Positive.ConnectTo(V.Positive); R.Negative.ConnectTo(V.Negative); var circuit = R.GetCircuit(); var values = new[] { new Complex(6.0, 0), new Complex(12.0, 0), new Complex(-6.0, 0), new Complex(6.0, 0), new Complex(0.0, 0.0), new Complex(-6.0, 0) }.ToList(); circuit.Solve(new MockedSolver() { SolvedState = values }); Assert.Equal(new Complex(12.0, 0), R.Positive.Node.Voltage); Assert.Equal(new Complex(0.0, 0), R.Negative.Node.Voltage); Assert.Equal(new Complex(6, 0), R.Positive.Current); Assert.Equal(new Complex(-6, 0), R.Negative.Current); Assert.Equal(new Complex(-6, 0), V.Positive.Current); Assert.Equal(new Complex(6, 0), V.Negative.Current); Assert.All(((IComponent)circuit).Equations.Select(equation => equation()), result => Assert.Equal(new Complex(0, 0), result)); }
public void ResistanceYieldsValue(double resistance) { var R = new IdealResistor(resistance); Assert.Equal(resistance, R.Resistance); }
public void VariablesReturnEmptyList() { IComponent R = new IdealResistor(1.0); Assert.Empty(R.Variables); }