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); }
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); }