Пример #1
0
        public void TestPipelineColor()
        {
            FlowDiagram fl = new FlowDiagram();

            fl.AddComponent(new Point(1, 1), ComponentType.Pump);
            fl.AddComponent(new Point(1, 1), ComponentType.Sink);
            Component pump = fl.Components[0];
            Component sink = fl.Components[1];

            fl.ChangeCapacity(pump, 200);
            fl.ChangeCurrentFlow(pump, 199);
            fl.Connect(sink, pump, null, null);
            fl.CalculateFlow();
            //red...
            Assert.AreEqual(fl.Connections[0].CheckColor(), 3);
            fl.ChangeCurrentFlow(pump, 95);
            fl.CalculateFlow();
            //yellow..
            Assert.AreEqual(fl.Connections[0].CheckColor(), 2);
        }
Пример #2
0
        public void TestCalculateFlowWithNestedSplitters()
        {
            FlowDiagram fl = new FlowDiagram();

            fl.AddComponent(new Point(1, 1), ComponentType.Pump);
            fl.AddComponent(new Point(1, 1), ComponentType.AdjustableSplitter);
            fl.AddComponent(new Point(1, 1), ComponentType.Splitter);
            fl.AddComponent(new Point(1, 1), ComponentType.AdjustableSplitter);
            fl.AddComponent(new Point(1, 1), ComponentType.Sink);
            fl.AddComponent(new Point(1, 1), ComponentType.Sink);
            fl.AddComponent(new Point(1, 1), ComponentType.Sink);
            fl.AddComponent(new Point(1, 1), ComponentType.Sink);
            Component pump  = fl.Components[0];
            Component ads1  = fl.Components[1];
            Component sp    = fl.Components[2];
            Component ads2  = fl.Components[3];
            Component sink1 = fl.Components[4];
            Component sink2 = fl.Components[5];
            Component sink3 = fl.Components[6];
            Component sink4 = fl.Components[7];

            fl.ChangeCapacity(pump, 50);
            fl.ChangeCurrentFlow(pump, 50);
            fl.Connect(ads1, pump, null, null);
            fl.Connect(sp, ads1, null, "up");
            fl.Connect(ads2, ads1, null, "down");
            fl.Connect(sink1, sp, null, "up");
            fl.Connect(sink2, sp, null, "down");
            fl.Connect(sink3, ads2, null, "up");
            fl.Connect(sink4, ads2, null, "down");
            double flow = fl.CalculateFlow();

            Assert.AreEqual(((Sink)sink1).Input, 17.5);
            Assert.AreEqual(((Sink)sink2).Input, 17.5);
            Assert.AreEqual(((Sink)sink3).Input, 10.5);
            Assert.AreEqual(((Sink)sink4).Input, 4.5);
            Assert.AreEqual(flow, 50);
        }