public void WhenPressureIsOkUpCommandLiftCylinders()
        {
            GlobalValve generalValve = new GlobalValve();
            var         module       = new ComputingModule(generalValve);

            ElectroValve valveGearClose = new ElectroValve(ElectroValve.Targets.Gears, ElectroValve.Types.Retraction, false);
            ElectroValve valveGearOpen  = new ElectroValve(ElectroValve.Targets.Gears, ElectroValve.Types.Extension, false);
            ElectroValve valveDoorClose = new ElectroValve(ElectroValve.Targets.Doors, ElectroValve.Types.Retraction, false);
            ElectroValve valveDoorOpen  = new ElectroValve(ElectroValve.Targets.Doors, ElectroValve.Types.Extension, false);

            module.GetValvesFromGeneral();

            generalValve.Valves.Add(valveDoorOpen);
            generalValve.Valves.Add(valveDoorClose);
            generalValve.Valves.Add(valveGearClose);
            generalValve.Valves.Add(valveGearOpen);

            var frontGear = new FrontGear("Front", Cylinder.Targets.Gears);
            var leftGear  = new SideGear("Left", Cylinder.Targets.Gears);
            var rightGear = new SideGear("Right", Cylinder.Targets.Gears);

            valveGearClose.Cylinders.Add(frontGear);
            valveGearClose.Cylinders.Add(leftGear);
            valveGearClose.Cylinders.Add(rightGear);
            valveGearOpen.Cylinders.Add(frontGear);
            valveGearOpen.Cylinders.Add(leftGear);
            valveGearOpen.Cylinders.Add(rightGear);

            var frontDoor = new FrontDoor("Front", Cylinder.Targets.Doors);
            var leftDoor  = new SideDoor("Left", Cylinder.Targets.Doors);
            var rightDoor = new SideDoor("Right", Cylinder.Targets.Doors);

            valveDoorClose.Cylinders.Add(frontDoor);
            valveDoorClose.Cylinders.Add(leftDoor);
            valveDoorClose.Cylinders.Add(rightDoor);
            valveDoorOpen.Cylinders.Add(frontDoor);
            valveDoorOpen.Cylinders.Add(leftDoor);
            valveDoorOpen.Cylinders.Add(rightDoor);

            valveDoorOpen.Cylinders.ForEach(c => module.CylinderAdd(c));
            valveGearOpen.Cylinders.ForEach(c => module.CylinderAdd(c));

            //make the plane fly
            valveGearOpen.Cylinders.ForEach(c => c.OnFloor = false);

            module.Up();

            System.Threading.Thread.Sleep(10000);
        }
示例#2
0
        public void solveTest()
        {
            var inputData = new Dictionary <double, string>()
            {
                [-67]      = "-12x3+3x2+5x+7",
                [23]       = "+23",
                [-2869983] = "-99999x5+9999x3+9999x2+99999x+9999",
            };

            foreach (var testRow in inputData)
            {
                var coefs = ParseModule.parseAll(testRow.Value);
                var rez   = ComputingModule.calculatePolynom(coefs, 2);
                Assert.AreEqual(testRow.Key, rez);
            }
        }
        public void ObserverReceiveThreeCallsWhenSuscribedAndThreeCylinderAdded()
        {
            GlobalValve generalValve = new GlobalValve();
            var         module       = new ComputingModule(generalValve);

            ElectroValve valve     = new ElectroValve(ElectroValve.Targets.Gears, ElectroValve.Types.Retraction, true);
            ElectroValve valveOpen = new ElectroValve(ElectroValve.Targets.Gears, ElectroValve.Types.Extension, true);

            valve.Cylinders.Add(new FrontGear("Front", Cylinder.Targets.Gears));
            valve.Cylinders.Add(new SideGear("Left", Cylinder.Targets.Gears));
            valve.Cylinders.Add(new SideGear("Right", Cylinder.Targets.Gears));

            var observer = Substitute.For <ObserverTest>();

            module.Subscribe(observer);

            foreach (var cylinder in valve.Cylinders)
            {
                valveOpen.Cylinders.Add(cylinder);
                module.CylinderAdd(cylinder);
            }

            observer.Received(3).OnNext(Arg.Any <Cylinder>());
        }
示例#4
0
 /// <summary>
 ///   Initializes a new instance.
 /// </summary>
 /// <param name="module"> The computing model which does the health monitoring. </param>
 public HealthDoors(ComputingModule module)
     : base(module)
 {
 }
示例#5
0
 /// <summary>
 ///   Initializes a new instance.
 /// </summary>
 /// <param name="module"> The computing model which does the health monitoring. </param>
 public HealthPressureSensor(ComputingModule module)
     : base(module)
 {
 }
示例#6
0
 /// <summary>
 ///   Initializes a new instance.
 /// </summary>
 /// <param name="module"> The computing model which does the health monitoring. </param>
 public HealthSwitch(ComputingModule module)
     : base(module)
 {
 }