public async Task Get_Cooperator_Players_Strategies() { var strategyRepository = new StrategyRepository(connection); var strategyService = new StrategyService(strategyRepository); var simulationRepository = new SimulationRepository(connection); var gameService = new GameService(strategyService, gameSettingsProvider); var populationService = new PopulationService(gameService); //TODO: simplify /\ var simulationServce = new SimulationService(simulationRepository, populationService, strategyService, new SimulationSettingsProvider()); Strategy cooperator = await strategyRepository .GetByNameAsync(NoMemoryStrategies.GetSimpleCooperator().Name); var players = new List <Player>(); for (int i = 0; i < 10; i++) { players.Add(new Player() { StrategyId = cooperator.Id }); } players = simulationServce.GetPlayersStrategies(players); bool badPlayers = players.Where(p => p.StrategyId != cooperator.Id).Any(); Assert.IsFalse(badPlayers); }
static void Main(string[] args) { var simulationService = new SimulationService(); simulationService.ReadConfiguration(@"D:\Projects\TrafficSimulator\TrafficSimulator\Files\Simulation1.json"); simulationService.StartSimulation(); }
public SimulationServiceTests() { fakeCosmosDBService = new FakeCosmosDBService(); fakePlayFabService = new FakePlayFabService(); fantasySoccerService = new FantasySoccerService(fakeCosmosDBService.stub.Object, fakePlayFabService.stub.Object); simulationService = new SimulationService(fantasySoccerService); }
public async Task Run_Once_When_Consistent() { var strategyRepository = new StrategyRepository(connection); var strategyService = new StrategyService(strategyRepository); var simulationRepository = new SimulationRepository(connection); var gameService = new GameService(strategyService, gameSettingsProvider); var populationService = new PopulationService(gameService); //TODO: simplify /\ var simulationServce = new SimulationService(simulationRepository, populationService, strategyService, new SimulationSettingsProvider()); Strategy cooperator = await strategyRepository .GetByNameAsync(NoMemoryStrategies.GetSimpleCooperator().Name); var players = new List <Player>(); for (int i = 0; i < 10; i++) { players.Add(new Player() { StrategyId = cooperator.Id }); } Simulation simulation = await simulationServce.Run(players); Assert.IsNotNull(simulation.Winner); Assert.AreEqual(1, simulation.PopulationsCompleated); }
public async Task Winner_Score_Is_Total_Score() { var strategyRepository = new StrategyRepository(connection); var strategyService = new StrategyService(strategyRepository); var simulationRepository = new SimulationRepository(connection); var gameService = new GameService(strategyService, gameSettingsProvider); var populationService = new PopulationService(gameService); //TODO: simplify /\ var simulationServce = new SimulationService(simulationRepository, populationService, strategyService, new SimulationSettingsProvider()); Strategy cooperator = await strategyRepository .GetByNameAsync(NoMemoryStrategies.GetSimpleCooperator().Name); var players = new List <Player>(); for (int i = 0; i < 10; i++) { players.Add(new Player() { StrategyId = cooperator.Id }); } Simulation simulation = await simulationServce.Run(players); GameSettings gameSettings = gameSettingsProvider.GetGameSettings(); int totalScore = gameSettings.TotalRounds * (gameSettings.CooperateModifier + gameSettings.MoveModifier) * (players.Count - 1); Assert.AreEqual(totalScore, simulation.Winner.Score); }
static void Main(string[] args) { List <Drawing> drawings = DataService.ImportDrawings(@"..\..\..\data.txt"); //AnalysisServices analysisServices = new AnalysisServices(drawings); SimulationService simulationService = new SimulationService(drawings); simulationService.SimulateDrawings(); }
public void Test2Simulator() { var store = new TestStorageService(); var s = new SimulationService(new AirportService(store), new AircraftService(store)); var r = s.SimulateFlight("BLL", "LHR", "Concorde"); Assert.AreEqual <int>(790, r.Distance); Assert.AreEqual <int>(3162, r.FuelConsumption); Assert.AreEqual <TimeSpan>(r.Timespan, new TimeSpan(0, 31, 36)); }
public async Task CreateSimulation_With100Rounds_ShouldReturnSimulationWithSuccessfulRounds() { var unitOfWork = new Mock <IUnitOfWork>(); unitOfWork.Setup(uow => uow.Simulations).Returns(Mock.Of <ISimulationRepository>); var simulationService = new SimulationService(unitOfWork.Object); var simulation = await simulationService.CreateSimulation(100, true); simulation.SuccessfulRounds.Should().BeGreaterThan(0); }
public async Task CreateSimulation_With0Rounds_ShouldThrowArgumentException() { var unitOfWork = new Mock <IUnitOfWork>(); unitOfWork.Setup(uow => uow.Simulations).Returns(Mock.Of <ISimulationRepository>); var simulationService = new SimulationService(unitOfWork.Object); Func <Task> f = async() => await simulationService.CreateSimulation(0, true); await f.Should().ThrowAsync <ArgumentException>(); }
public async Task No_Winner_If_Not_Consistent() { string strategyId = Guid.NewGuid().ToString(); var simulationRepositoryMock = new Mock <ISimulationRepository>(); var strategyServiceMock = new Mock <IStrategyService>(); var populationServiceMock = new Mock <IPopulationService>(); var settingsProviderMock = new Mock <ISimulationSettingsProvider>(); populationServiceMock.Setup(x => x.IsPopulationConsistent(It.IsAny <Population>())) .Returns(Task.FromResult(false)); populationServiceMock.Setup(x => x.Evaluate(It.IsAny <List <Player> >())) .Returns((List <Player> p) => Task.FromResult(new Population() { Players = p })); populationServiceMock.Setup(x => x.GetNewPopulation(It.IsAny <Population>())) .Returns((Population p) => Task.FromResult(new Population() { Players = p.Players })); strategyServiceMock.Setup(x => x.GetStrategiesById(It.IsAny <List <string> >())) .Returns(new List <Strategy>() { GetCoopStrategy(strategyId) }); settingsProviderMock.Setup(x => x.GetSimulationSettings()) .Returns(new SimulationSettings() { PoplationsLimit = 10 }); List <Player> players = new List <Player>(); for (int i = 0; i < 10; i++) { players.Add(new Player() { StrategyId = strategyId }); } SimulationService simulationService = new SimulationService(simulationRepositoryMock.Object, populationServiceMock.Object, strategyServiceMock.Object, settingsProviderMock.Object); Simulation simulation = await simulationService.Run(players); Assert.IsNull(simulation.Winner); }
public ActionResult IndexPost(string url, string applicationPath, string rules) { var model = new RulesViewModel { Rules = rules, Url = url, ApplicationPath = applicationPath }; var simulation = new SimulationService(); model.Result = simulation.Simulate(url, applicationPath, rules); return View("Index", model); }
public WorkerService( ILogger <WorkerService> logger, SimulationService simulation, RpcHistoryService historyService, IShiftService shiftService, Rpc rpc) { this.logger = logger; this.simulation = simulation; this.historyService = historyService; this.shiftService = shiftService; this.rpc = rpc; }
public ActionResult IndexPost(string url, string applicationPath, string rules) { var model = new RulesViewModel { Rules = rules, Url = url, ApplicationPath = applicationPath }; var simulation = new SimulationService(); model.Result = simulation.Simulate(url, applicationPath, rules); return(View("Index", model)); }
public void Test1Simulator() { var store = new TestStorageService(); var ap1 = store.Airports.Single(c => c.IataCode == "BLL"); var ap2 = store.Airports.Single(c => c.IataCode == "LHR"); var ac = store.Aircrafts.Single(c => c.Model == "Concorde"); var s = new SimulationService(new AirportService(store), new AircraftService(store)); var r = s.SimulateFlight(ap1, ap2, ac); Assert.AreEqual <int>(790, r.Distance); Assert.AreEqual <int>(3162, r.FuelConsumption); Assert.AreEqual <TimeSpan>(r.Timespan, new TimeSpan(0, 31, 36)); }
public SimulationController() { // the configuration information comes from Web.Config when // debugging and from the Azure Portal at runt time var docdburi = ConfigurationManager.AppSettings["docdburi"]; var docdbkey = ConfigurationManager.AppSettings["docdbkey"]; var database = ConfigurationManager.AppSettings["database"]; var collection = ConfigurationManager.AppSettings["collection"]; _simulationService = new SimulationService(docdburi, docdbkey, database, collection); }
public async Task Throw_Exception_When_No_Players() { var simulationRepositoryMock = new Mock <ISimulationRepository>(); var strategyServiceMonk = new Mock <IStrategyService>(); var populationServiceMock = new Mock <IPopulationService>(); var settingsProviderMock = new Mock <ISimulationSettingsProvider>(); SimulationService simulationService = new SimulationService(simulationRepositoryMock.Object, populationServiceMock.Object, strategyServiceMonk.Object, settingsProviderMock.Object); var ex = Assert.ThrowsExceptionAsync <ArgumentNullException>(() => simulationService.Run(new List <Player>())); Assert.IsNotNull(ex); }
public void GetSimulationById_ReturnsNull_IfThereIsNoItemWithGivenCombination() { //Arrange Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>(); SimulationDto returnedDto = null; mockedRepository.Setup(r => r.GetSimulationById(1)).Returns(returnedDto); //Act SimulationService service = new SimulationService(mockedRepository.Object); //Assert Simulation baseSimulation = service.GetSimulationById(1); Assert.IsNull(baseSimulation); }
public void GetSimulationById_ReturnsProperItem_IfItemExists() { //Arrange Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>(); SimulationDto simulationDto = new SimulationDto() { Id = 1, Name = "a" }; List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>(); AnalysisTimestampDto timestamp1 = new AnalysisTimestampDto() { Id = 1, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0) }; AnalysisTimestampDto timestamp2 = new AnalysisTimestampDto() { Id = 2, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0) }; AnalysisTimestampDto timestamp3 = new AnalysisTimestampDto() { Id = 3, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 4, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0) }; timestamps.AddRange(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 }); mockedRepository.Setup(r => r.GetSimulationById(1)).Returns(simulationDto); mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(1)).Returns(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 }); //Act SimulationService service = new SimulationService(mockedRepository.Object); var actualSimulation = service.GetSimulationById(1); //Assert Simulation expectedSimulation = new Simulation() { Id = 1, Name = "a" }; expectedSimulation.AddLastUpdate(timestamp1); expectedSimulation.AddLastUpdate(timestamp2); expectedSimulation.AddLastUpdate(timestamp3); bool areEqual = expectedSimulation.Equals(actualSimulation); Assert.IsTrue(areEqual); }
public void Update_AllItemsPassedToMethodArePassedToRepository() { //Arrange IEnumerable <SimulationDto> simulationDtos = null; IEnumerable <AnalysisTimestampDto> timestampDtos = null; Simulation simulation = new Simulation() { Id = 1, Name = "a" }; AnalysisTimestamp timestamp1 = new AnalysisTimestamp() { Id = 1, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0), LastAnalysedIndex = 15 }; AnalysisTimestamp timestamp2 = new AnalysisTimestamp() { Id = 2, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 6, 2, 12, 0, 0), LastAnalysedIndex = 19 }; simulation.AddLastUpdate(timestamp1); simulation.AddLastUpdate(timestamp2); Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>(); mockedRepository. Setup(r => r.UpdateSimulations(It.IsAny <IEnumerable <SimulationDto> >())). Callback <IEnumerable <SimulationDto> >((col) => simulationDtos = col).Verifiable(); mockedRepository. Setup(r => r.UpdateAnalysisTimestamps(It.IsAny <IEnumerable <AnalysisTimestampDto> >())). Callback <IEnumerable <AnalysisTimestampDto> >((col) => timestampDtos = col).Verifiable(); //Act SimulationService service = new SimulationService(mockedRepository.Object); service.Update(simulation); //Assert IEnumerable <SimulationDto> expectedSimulationDtos = new SimulationDto[] { simulation.ToDto() }; IEnumerable <AnalysisTimestampDto> expectedTimestampDtos = new AnalysisTimestampDto[] { timestamp1.ToDto(), timestamp2.ToDto() }; mockedRepository.Verify(r => r.UpdateSimulations(It.IsAny <IEnumerable <SimulationDto> >()), Times.Exactly(1)); mockedRepository.Verify(r => r.UpdateAnalysisTimestamps(It.IsAny <IEnumerable <AnalysisTimestampDto> >()), Times.Exactly(1)); Assert.IsTrue(simulationDtos.HasEqualItems(expectedSimulationDtos)); Assert.IsTrue(timestampDtos.HasEqualItems(expectedTimestampDtos)); }
public void GetSimulationById_ReturnsAlwaysTheSameInstance() { //Arrange Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>(); List <SimulationDto> dtos = new List <SimulationDto>(); SimulationDto simulationDto1 = new SimulationDto() { Id = 1, Name = "a" }; dtos.AddRange(new SimulationDto[] { simulationDto1 }); List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>(); AnalysisTimestampDto timestamp1 = new AnalysisTimestampDto() { Id = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0) }; AnalysisTimestampDto timestamp2 = new AnalysisTimestampDto() { Id = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0) }; AnalysisTimestampDto timestamp3 = new AnalysisTimestampDto() { Id = 3, SimulationId = 1, AnalysisTypeId = 4, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0) }; timestamps.AddRange(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 }); mockedRepository.Setup(r => r.GetSimulations()).Returns(dtos); mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(1)).Returns(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 }); //Act SimulationService service = new SimulationService(mockedRepository.Object); //Assert Simulation baseSimulation = service.GetSimulationById(1); Simulation comparedSimulation = service.GetSimulationById(1); bool areTheSame = (baseSimulation == comparedSimulation); Assert.IsTrue(areTheSame); }
public async Task Get_Players_Strategies() { var players = new List <Player>(); var strategies = new List <Strategy>(); for (int i = 0; i < 10; i++) { string id = Guid.NewGuid().ToString(); players.Add(new Player() { StrategyId = id }); strategies.Add(GetCoopStrategy(id)); } var simulationRepositoryMock = new Mock <ISimulationRepository>(); var strategyServiceMock = new Mock <IStrategyService>(); var populationServiceMock = new Mock <IPopulationService>(); var settingsProviderMock = new Mock <ISimulationSettingsProvider>(); populationServiceMock.Setup(x => x.IsPopulationConsistent(It.IsAny <Population>())) .Returns(Task.FromResult(true)); strategyServiceMock.Setup(x => x.GetStrategiesById(It.IsAny <List <string> >())) .Returns(strategies); settingsProviderMock.Setup(x => x.GetSimulationSettings()) .Returns(new SimulationSettings() { PoplationsLimit = 10 }); SimulationService simulationService = new SimulationService(simulationRepositoryMock.Object, populationServiceMock.Object, strategyServiceMock.Object, settingsProviderMock.Object); List <Player> newPlayers = simulationService.GetPlayersStrategies(players); strategyServiceMock.Verify(x => x.GetStrategiesById(It.IsAny <List <string> >()), Times.Exactly(1)); //no assert required since Verify throws exception if fails }
public MainWindowViewModel() { AvailableSimulationTimes = new [] { 1.0, 10, 60, 100, 600 }; Goods = new Goods(GoodGenerator.GenerateUniqueGoods(50).Cast <IGood>().ToList()); CityMap = new CityMapGenerator().Generate(Goods); VehicleModels = new ObservableCollection <VehicleModel>(new VehicleModelGenerator().GenerateUniqueVehicleModels(20)); Vehicles = new ObservableCollection <Vehicle>(new VehicleGenerator().GenerateUniqueVehicles(50, VehicleModels, CityMap.Places.OfType <IWarehouse>().First())); SimulationService = new SimulationService(CityMap, VehicleModels, new Optimizer(CityMap)); var canStartSimulation = SimulationService.WhenAnyValue(x => x.IsRunning) .ObserveOn(RxApp.MainThreadScheduler) .Select(x => !x); StartSimulationCommand = ReactiveCommand.Create(() => { SimulationService.Start(); }, canStartSimulation); var canStopSimulation = SimulationService.WhenAnyValue(x => x.IsRunning); StopSimulationCommand = ReactiveCommand.Create(() => SimulationService.Stop(), canStopSimulation); }
public void SetUp() { _simulationService = new SimulationService(); }
public AssemblyStation(ObjectNode node, DcsLabNodeManager nodeManager) { _simulation = new SimulationService(this); // TODO: Add update on the server for each change notification // TODO: Add notification for update through client }
public void GetSimulations_ReturnsProperCollectionOfSimulations_IncludingLastUpdateTimestamps() { //Arrange Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>(); List <SimulationDto> dtos = new List <SimulationDto>(); SimulationDto simulationDto1 = new SimulationDto() { Id = 1, Name = "a" }; SimulationDto simulationDto2 = new SimulationDto() { Id = 2, Name = "b" }; SimulationDto simulationDto3 = new SimulationDto() { Id = 3, Name = "c" }; dtos.AddRange(new SimulationDto[] { simulationDto1, simulationDto2, simulationDto3 }); List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>(); AnalysisTimestampDto timestamp1 = new AnalysisTimestampDto() { Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0) }; AnalysisTimestampDto timestamp2 = new AnalysisTimestampDto() { Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0) }; AnalysisTimestampDto timestamp3 = new AnalysisTimestampDto() { Id = 3, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0) }; AnalysisTimestampDto timestamp4 = new AnalysisTimestampDto() { Id = 4, AssetId = 1, TimeframeId = 1, SimulationId = 2, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0) }; AnalysisTimestampDto timestamp5 = new AnalysisTimestampDto() { Id = 5, AssetId = 1, TimeframeId = 1, SimulationId = 2, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0) }; AnalysisTimestampDto timestamp6 = new AnalysisTimestampDto() { Id = 6, AssetId = 1, TimeframeId = 2, SimulationId = 2, AnalysisTypeId = 4, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0) }; timestamps.AddRange(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3, timestamp4, timestamp5, timestamp6 }); mockedRepository.Setup(r => r.GetSimulations()).Returns(dtos); mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(1)).Returns(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 }); mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(2)).Returns(new AnalysisTimestampDto[] { timestamp4, timestamp5, timestamp6 }); //Act SimulationService service = new SimulationService(mockedRepository.Object); var actualSimultations = service.GetSimulations(); //Assert List <Simulation> expectedSimulations = new List <Simulation>(); Simulation simulation1 = new Simulation() { Id = 1, Name = "a" }; simulation1.AddLastUpdate(timestamp1); simulation1.AddLastUpdate(timestamp2); simulation1.AddLastUpdate(timestamp3); Simulation simulation2 = new Simulation() { Id = 2, Name = "b" }; simulation2.AddLastUpdate(timestamp4); simulation2.AddLastUpdate(timestamp5); simulation2.AddLastUpdate(timestamp6); Simulation simulation3 = new Simulation() { Id = 3, Name = "c" }; expectedSimulations.AddRange(new Simulation[] { simulation1, simulation2, simulation3 }); bool areEqual = expectedSimulations.HasEqualItems(actualSimultations); Assert.IsTrue(areEqual); }