Inheritance: ServiceModule
Exemplo n.º 1
0
        public void GivenItemWithRoute_WhenCreatedAndDetected_ShouldRouteAndUpdateIndex()
        {
            var item = new PlatformItem();

            item.Route = new Route
            {
                RouteItems = new Collection <RouteItem>
                {
                    new RouteItem {
                        ModuleType = 1
                    },
                    new RouteItem {
                        ModuleType = 3
                    },
                    new RouteItem {
                        ModuleType = 4
                    }
                }
            };

            ModuleA.SimulateNewItemCreated(item);
            item.Route.CurrentIndex.Should().Be(0);
            ModuleA.TestCurrentItemRoutings.Should().ContainValue(1, "port 1 is the path to ModuleC which is next in the route");

            ModuleC.SimulateItemDetected(item);
            item.Route.CurrentIndex.Should().Be(1);
            ModuleA.TestCurrentItemRoutings.Should().HaveCount(0, "old routing task is fulfilled");
            ModuleC.TestCurrentItemRoutings.Should().ContainValue(0, "port 0 is the path to ModuleD");

            ModuleD.SimulateItemDetected(item);
            item.Route.CurrentIndex.Should().Be(2);
            ModuleC.TestCurrentItemRoutings.Should().HaveCount(0, "old routing task is fulfilled");
            ModuleD.TestCurrentItemRoutings.Should().HaveCount(0, "item has no more route items");
        }
Exemplo n.º 2
0
        public void GivenItemWithRoute_WhenReleased_ShouldRouteAndUpdateIndex()
        {
            var item = new PlatformItem();

            item.Route = new Route
            {
                RouteItems = new Collection <RouteItem>
                {
                    new RouteItem {
                        ModuleType = 1
                    },
                    new RouteItem {
                        ModuleType = 3
                    },
                    new RouteItem {
                        ModuleType = 4
                    }
                }
            };
            ModuleA.Entities.PlatformItems.Add(item);

            ModuleA.SimulateItemReleased(item, 1);

            item.Route.CurrentIndex.Should().Be(1);
            ModuleC.Entities.PlatformItems.Should().Contain(item);
            ModuleC.TestCurrentItemRoutings.Should().HaveCount(1);
            ModuleA.Entities.PlatformItems.Should().HaveCount(0);

            ModuleC.SimulateItemReleased(item, 0);

            ModuleC.Entities.PlatformItems.Should().HaveCount(0);
            ModuleD.Entities.PlatformItems.Should().HaveCount(1);
        }
        public void UninitializeOrder2()
        {
            var order = new List <string>();

            var config = new Config
            {
                Modules =
                {
                    new ModuleInfo(new ModuleA(uninit: () => order.Add("moduleA"))),
                    new ModuleInfo(new ModuleB(uninit: () => order.Add("moduleB")))
                }
            };

            var application = new KernelApplication(config, false);

            application.Initialize();

            var moduleC = new ModuleC(uninit: () => order.Add("moduleC"));

            moduleC.Initialize();

            application.AddModule(moduleC);

            application.Uninitialize();

            Assert.AreEqual(3, order.Count);
            Assert.AreEqual("moduleB", order[0]);
            Assert.AreEqual("moduleA", order[1]);
            Assert.AreEqual("moduleC", order[2]);
        }
Exemplo n.º 4
0
        public void IsRoutePossible_WhenLongRoutePossible_ShouldReturnTrue_ShouldDisregardModuleState()
        {
            ModuleC.SimulateEmergencyOff();
            ModuleF.SimulateIsFull(0);
            ModuleF.SimulateIsFull(1);
            ModuleA.LimitItemCount = 1;
            ModuleA.Entities.PlatformItems.Add(new PlatformItem());
            var result = ModuleBusManager.IsRoutePossible(ModuleB, ModuleG);

            result.Should().BeTrue();
        }
Exemplo n.º 5
0
        //Methods//
        public double GetValue(double x, double y, double z)
        {
            double controlValue = ModuleC.GetValue(x, y, z);
            double alpha;

            if (EdgeFallOff > 0.0)
            {
                if (controlValue < (LowerBound - EdgeFallOff))
                {
                    return(Module0.GetValue(x, y, z));
                }

                else if (controlValue < (LowerBound + EdgeFallOff))
                {
                    double lowerCurve = (LowerBound - EdgeFallOff);
                    double upperCurve = (LowerBound + EdgeFallOff);
                    alpha = MathUtils.SCurve3((controlValue - lowerCurve) / (upperCurve - lowerCurve));
                    return(MathUtils.LinearInterp(Module0.GetValue(x, y, z), Module1.GetValue(x, y, z), alpha));
                }

                else if (controlValue < (UpperBound - EdgeFallOff))
                {
                    //Output value from control module is within selector threshold.
                    return(Module1.GetValue(x, y, z));
                }

                else if (controlValue < (UpperBound + EdgeFallOff))
                {
                    double lowerCurve = (UpperBound - EdgeFallOff);
                    double upperCurve = (UpperBound + EdgeFallOff);
                    alpha = MathUtils.SCurve3((controlValue - lowerCurve) / (upperCurve - lowerCurve));
                    return(MathUtils.LinearInterp(Module1.GetValue(x, y, z), Module0.GetValue(x, y, z), alpha));
                }

                else
                {
                    return(Module0.GetValue(x, y, z));
                }
            }

            else
            {
                if (controlValue < LowerBound || controlValue > UpperBound)
                {
                    return(Module0.GetValue(x, y, z));
                }

                else
                {
                    return(Module1.GetValue(x, y, z));
                }
            }
        }
        public void FacadeCollectionNoEntry()
        {
            // Arrange
            var dependend     = new ModuleC();
            var moduleManager = CreateObjectUnderTest(new IServerModule[]
            {
                dependend
            });

            // Act
            moduleManager.Initialize();

            // Assert
            Assert.NotNull(dependend.Facades, "No facade injected");
            Assert.AreEqual(0, dependend.Facades.Length, "Faulty number of facades");
        }
Exemplo n.º 7
0
 private Ship AddModules(Ship ship, string[] modules)
 {
     foreach (string module in modules)
     {
         if (module == "A")
         {
             ship = new ModuleA(ship);
         }
         if (module == "B")
         {
             ship = new ModuleB(ship);
         }
         if (module == "C")
         {
             ship = new ModuleC(ship);
         }
         if (module == "D")
         {
             ship = new ModuleD(ship);
         }
     }
     return(ship);
 }