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"); }
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]); }
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(); }
//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"); }
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); }