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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            List <Drawing> drawings = DataService.ImportDrawings(@"..\..\..\data.txt");
            //AnalysisServices analysisServices = new AnalysisServices(drawings);
            SimulationService simulationService = new SimulationService(drawings);

            simulationService.SimulateDrawings();
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
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>();
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
 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;
 }
Exemplo n.º 13
0
        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));
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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));
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
 public void SetUp()
 {
     _simulationService = new SimulationService();
 }
Exemplo n.º 24
0
 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
 }
Exemplo n.º 25
0
        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);
        }