コード例 #1
0
        public void NodesAddTest()
        {
            SeriesSubcircuit seriesRoot     = new SeriesSubcircuit();
            SeriesSubcircuit seriesLeftOne  = new SeriesSubcircuit();
            SeriesSubcircuit seriesRightOne = new SeriesSubcircuit();

            ParallelSubcircuit parallelLeftOne = new ParallelSubcircuit();
            ParallelSubcircuit parallelLeftTwo = new ParallelSubcircuit();

            seriesRoot.Nodes.Add(parallelLeftOne);
            seriesRoot.Nodes.Add(seriesRightOne);

            parallelLeftOne.Nodes.Add(new Resistor("R", 20));
            parallelLeftOne.Nodes.Add(seriesLeftOne);

            seriesLeftOne.Nodes.Add(new Resistor("R", 10));
            seriesLeftOne.Nodes.Add(parallelLeftTwo);

            parallelLeftTwo.Nodes.Add(new Resistor("R", 20));
            parallelLeftTwo.Nodes.Add(new Resistor("R", 20));

            seriesRightOne.Nodes.Add(new Resistor("R", 20));
            seriesRightOne.Nodes.Add(new Resistor("R", 20));

            Assert.AreEqual(50, seriesRoot.CalculateZ(1).Real, 0.01);
        }
コード例 #2
0
        public void EventTest()
        {
            SeriesSubcircuit seriesSubcircuit = new SeriesSubcircuit();
            bool             test             = false;

            seriesSubcircuit.ParentChanged += (sender, e) => { test = true; };
            seriesSubcircuit.Parent         = new SeriesSubcircuit();
            Assert.AreEqual(true, test);
        }
コード例 #3
0
ファイル: CircuitTests.cs プロジェクト: 50ohmTech/SummerSweat
        public void RemoveRootTest()
        {
            Circuit          circuit          = new Circuit();
            SeriesSubcircuit seriesSubcircuit = new SeriesSubcircuit();

            circuit.AddAfter(null, seriesSubcircuit);
            circuit.Remove(seriesSubcircuit);
            if (circuit.Root != null)
            {
                throw new Exception("Корень был null");
            }
        }
コード例 #4
0
        public void IdTest()
        {
            bool               test               = true;
            SeriesSubcircuit   seriesSubcircuit   = new SeriesSubcircuit();
            ParallelSubcircuit parallelSubcircuit = new ParallelSubcircuit();

            if (seriesSubcircuit.Id == parallelSubcircuit.Id)
            {
                test = false;
            }

            Assert.AreEqual(true, test);
        }
コード例 #5
0
ファイル: CircuitTests.cs プロジェクト: 50ohmTech/SummerSweat
        public void AddAfterTest()
        {
            Circuit            circuit            = new Circuit();
            SeriesSubcircuit   seriesSubcircuit   = new SeriesSubcircuit();
            ParallelSubcircuit parallelSubcircuit = new ParallelSubcircuit();

            circuit.AddAfter(null, seriesSubcircuit);
            circuit.AddAfter(seriesSubcircuit, new Resistor("R", 20));
            circuit.AddAfter(seriesSubcircuit, new Resistor("R", 20));
            circuit.AddAfter(parallelSubcircuit, new Resistor("R", 20));
            circuit.AddAfter(parallelSubcircuit, new Resistor("R", 20));
            circuit.AddAfter(seriesSubcircuit, parallelSubcircuit);
            Assert.AreEqual(50, circuit.CalculateZ(new double[] { 1 })[0].Real, 0.01);
        }
コード例 #6
0
        public void NegativeCalculateZTest()
        {
            SeriesSubcircuit seriesSubcircuit = new SeriesSubcircuit();

            Assert.Throws <InvalidOperationException>(() => { seriesSubcircuit.CalculateZ(1); });
        }
コード例 #7
0
        /// <summary>
        ///     Инициализировать цепь.
        /// </summary>
        /// <param name="circuit">Цепь.</param>
        /// <param name="initialTemplateCircuitType">Тип шаблона.</param>
        public static void Initialize(Circuit circuit, InitialTemplateCircuitType initialTemplateCircuitType)
        {
            if (circuit == null)
            {
                circuit = new Circuit();
            }

            circuit.Clear();

            switch (initialTemplateCircuitType)
            {
            case InitialTemplateCircuitType.A:
            {
                Inductor inductor1 = new Inductor("L1", 20);
                Resistor resistor2 = new Resistor("R2", 20);
                Resistor resistor3 = new Resistor("R3", 20);
                Inductor inductor4 = new Inductor("L4", 20);

                SeriesSubcircuit seriesSubcircuit1 = new SeriesSubcircuit();
                seriesSubcircuit1.Nodes.Add(inductor1);
                inductor1.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(resistor2);
                resistor2.Parent = seriesSubcircuit1;

                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit1);
                parallelSubcircuit1.Parent = seriesSubcircuit1;
                parallelSubcircuit1.Nodes.Add(resistor3);
                resistor3.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit1;

                circuit.AddAfter(null, seriesSubcircuit1);
                break;
            }

            case InitialTemplateCircuitType.B:
            {
                Capacitor capacitor1 = new Capacitor("C1", 20);
                Inductor  inductor2  = new Inductor("L2", 20);
                Resistor  resistor3  = new Resistor("R3", 20);
                Inductor  inductor4  = new Inductor("L4", 20);

                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                parallelSubcircuit1.Nodes.Add(capacitor1);
                capacitor1.Parent = parallelSubcircuit1;

                SeriesSubcircuit seriesSubcircuit1 = new SeriesSubcircuit();
                parallelSubcircuit1.Nodes.Add(seriesSubcircuit1);
                seriesSubcircuit1.Parent = parallelSubcircuit1;

                seriesSubcircuit1.Nodes.Add(inductor2);
                inductor2.Parent = seriesSubcircuit1;

                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();
                parallelSubcircuit2.Nodes.Add(resistor3);
                resistor3.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit2;

                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                circuit.AddAfter(null, parallelSubcircuit1);

                break;
            }


            case InitialTemplateCircuitType.C:
            {
                Resistor resistor1 = new Resistor("R1", 20);
                Inductor inductor2 = new Inductor("L2", 20);
                Inductor inductor3 = new Inductor("L3", 20);
                Inductor inductor4 = new Inductor("L4", 20);
                Resistor resistor5 = new Resistor("R5", 20);
                Resistor resistor6 = new Resistor("R6", 20);
                Inductor inductor7 = new Inductor("L7", 20);

                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();

                SeriesSubcircuit seriesSubcircuit1 = new SeriesSubcircuit();
                SeriesSubcircuit seriesSubcircuit2 = new SeriesSubcircuit();

                parallelSubcircuit1.Nodes.Add(seriesSubcircuit1);
                seriesSubcircuit1.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(seriesSubcircuit2);
                seriesSubcircuit2.Parent = parallelSubcircuit1;

                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit3 = new ParallelSubcircuit();

                seriesSubcircuit1.Nodes.Add(inductor3);
                inductor3.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                parallelSubcircuit2.Nodes.Add(resistor1);
                resistor1.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit2;

                seriesSubcircuit2.Nodes.Add(inductor2);
                inductor2.Parent = seriesSubcircuit2;
                seriesSubcircuit2.Nodes.Add(resistor5);
                resistor5.Parent = seriesSubcircuit2;
                seriesSubcircuit2.Nodes.Add(parallelSubcircuit3);
                parallelSubcircuit3.Parent = seriesSubcircuit2;
                parallelSubcircuit3.Nodes.Add(resistor6);
                resistor6.Parent = parallelSubcircuit3;
                parallelSubcircuit3.Nodes.Add(inductor7);
                inductor7.Parent = parallelSubcircuit3;
                circuit.AddAfter(null, parallelSubcircuit1);
                break;
            }


            case InitialTemplateCircuitType.D:
            {
                Resistor  resistor1  = new Resistor("R1", 1);
                Capacitor capacitor2 = new Capacitor("C2", 20);
                Resistor  resistor3  = new Resistor("R3", 20);
                Inductor  inductor4  = new Inductor("L4", 20);
                Resistor  resistor5  = new Resistor("R5", 20);
                Inductor  inductor6  = new Inductor("L6", 20);

                SeriesSubcircuit   seriesSubcircuit1   = new SeriesSubcircuit();
                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();

                seriesSubcircuit1.Nodes.Add(parallelSubcircuit1);
                parallelSubcircuit1.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                seriesSubcircuit1.Nodes.Add(resistor3);
                resistor3.Parent = seriesSubcircuit1;
                parallelSubcircuit1.Nodes.Add(resistor1);
                resistor1.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit1;
                parallelSubcircuit2.Nodes.Add(capacitor2);
                capacitor2.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(resistor5);
                resistor5.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(inductor6);
                inductor6.Parent = parallelSubcircuit2;
                circuit.AddAfter(null, seriesSubcircuit1);

                break;
            }


            case InitialTemplateCircuitType.E:
            {
                Resistor  resistor1  = new Resistor("R1", 20);
                Capacitor capacitor2 = new Capacitor("C2", 20);
                Resistor  resistor3  = new Resistor("R3", 20);
                Inductor  inductor4  = new Inductor("L4", 20);
                Resistor  resistor5  = new Resistor("R5", 20);
                Inductor  inductor6  = new Inductor("L6", 20);
                Resistor  resistor7  = new Resistor("R7", 20);
                Inductor  inductor8  = new Inductor("L8", 20);

                SeriesSubcircuit   seriesSubcircuit1   = new SeriesSubcircuit();
                SeriesSubcircuit   seriesSubcircuit2   = new SeriesSubcircuit();
                ParallelSubcircuit parallelSubcircuit1 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit2 = new ParallelSubcircuit();
                ParallelSubcircuit parallelSubcircuit3 = new ParallelSubcircuit();
                seriesSubcircuit1.Nodes.Add(parallelSubcircuit1);
                parallelSubcircuit1.Parent = seriesSubcircuit1;
                parallelSubcircuit1.Nodes.Add(resistor1);
                resistor1.Parent = parallelSubcircuit1;
                parallelSubcircuit1.Nodes.Add(inductor4);
                inductor4.Parent = parallelSubcircuit1;

                seriesSubcircuit1.Nodes.Add(parallelSubcircuit2);
                parallelSubcircuit2.Parent = seriesSubcircuit1;
                parallelSubcircuit2.Nodes.Add(capacitor2);
                capacitor2.Parent = parallelSubcircuit2;
                parallelSubcircuit2.Nodes.Add(seriesSubcircuit2);
                seriesSubcircuit2.Parent = parallelSubcircuit2;
                seriesSubcircuit2.Nodes.Add(parallelSubcircuit3);
                parallelSubcircuit3.Parent = seriesSubcircuit2;
                seriesSubcircuit2.Nodes.Add(resistor7);
                resistor7.Parent = seriesSubcircuit2;
                parallelSubcircuit3.Nodes.Add(resistor5);
                resistor5.Parent = parallelSubcircuit3;
                parallelSubcircuit3.Nodes.Add(inductor8);
                inductor8.Parent = parallelSubcircuit3;
                parallelSubcircuit2.Nodes.Add(inductor6);
                inductor6.Parent = parallelSubcircuit2;
                seriesSubcircuit1.Nodes.Add(resistor3);
                resistor3.Parent = seriesSubcircuit1;

                circuit.AddAfter(null, seriesSubcircuit1);
                break;
            }
            }
        }