private void Update() { if (!waiting && (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0))) { switch (state) { case State.Dialogue: if (ScenarioReader.Next(ref readData)) { UpdateUI(); } else { CloseUI(); } break; case State.Seletion: ShowSelectionPanel(); break; case State.WaitToSeletion: break; } } if (Input.GetKeyDown(KeyCode.R)) { PlayScenario(); } }
public MainWindow ResolveMainWindow(string[] args) { MainWindow client = new MainWindow(); ScenarioFile dairyScenario = new ScenarioFile(); ScenarioFile fieldScenario = new ScenarioFile(); ScenarioDefaults defaults = new ScenarioDefaults(); //string pathToWeatherDatabase = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Assets", "Database", "Weather"); string pathToWeatherDatabase = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "DairyCropSyst", "Database", "Weather"); WeatherGrabber grabber = new WeatherGrabber(pathToWeatherDatabase); ScenarioReader reader = new ScenarioReader(dairyScenario, fieldScenario); ScenarioWriter writer = new ScenarioWriter(dairyScenario, fieldScenario, defaults, grabber); ScenarioViewModel context = new ScenarioViewModel(reader, writer); client.DataContext = context; if (args.Length == 1) { tryOpenFile(args[0], context); } return(client); }
public void SequentialEnemies() { String str = @"[ { ""time"": 100, ""type"": 0, ""x"":10, ""y"": 60}, { ""time"": 200, ""type"": 1, ""x"":20, ""y"": 70}, { ""time"": 300, ""type"": 2, ""x"":30, ""y"": 80}, { ""time"": 400, ""type"": 3, ""x"":40, ""y"": 90}, { ""time"": 500, ""type"": 4, ""x"":50, ""y"": 100}, "; Dictionary <int, List <AbstractEnemy> > story = ScenarioReader.Read(str); Assert.IsInstanceOfType(story[100][0], typeof(Enemy0)); Assert.IsInstanceOfType(story[200][0], typeof(Enemy1)); Assert.IsInstanceOfType(story[300][0], typeof(Enemy2)); Assert.IsInstanceOfType(story[400][0], typeof(Enemy3)); Assert.IsInstanceOfType(story[500][0], typeof(Enemy4)); Enemy0 e0 = (Enemy0)story[100][0]; Enemy1 e1 = (Enemy1)story[200][0]; Enemy2 e2 = (Enemy2)story[300][0]; Enemy3 e3 = (Enemy3)story[400][0]; Enemy4 e4 = (Enemy4)story[500][0]; Assert.AreEqual(10, e0.X); Assert.AreEqual(60, e0.Y); Assert.AreEqual(20, e1.X); Assert.AreEqual(70, e1.Y); Assert.AreEqual(30, e2.X); Assert.AreEqual(80, e2.Y); Assert.AreEqual(40, e3.X); Assert.AreEqual(90, e3.Y); Assert.AreEqual(50, e4.X); Assert.AreEqual(100, e4.Y); }
public void Enemy2Speed() { String str = @"[ { ""time"": 100, ""type"": 2, ""x"":30, ""y"": 80}, { ""time"": 200, ""type"": 2, ""x"":30, ""y"": 80, ""sx"":-5}, { ""time"": 300, ""type"": 2, ""x"":30, ""y"": 80, ""sx"":5}, { ""time"": 400, ""type"": 2, ""x"":30, ""y"": 80, ""sy"":5}, { ""time"": 500, ""type"": 2, ""x"":30, ""y"": 80, ""sy"":10}, "; Dictionary <int, List <AbstractEnemy> > story = ScenarioReader.Read(str); Assert.AreEqual(0, story[100][0].SpeedX); Assert.AreEqual(-5, story[200][0].SpeedX); Assert.AreEqual(+5, story[300][0].SpeedX); Assert.AreEqual(5, story[400][0].SpeedY); Assert.AreEqual(10, story[500][0].SpeedY); Assert.AreEqual(story[200][0].Theta, 0); Assert.AreEqual(story[300][0].Theta, 0); ViewModel vm = new ViewModel(); vm.AddEnemy(story[200][0]); vm.AddEnemy(story[300][0]); for (int i = 0; i < 10; i++) { Assert.AreEqual(vm.Enemies[0].Theta, i); Assert.AreEqual(vm.Enemies[1].Theta, -i); vm.Tick(1); } }
public void InvalidFormat() { String str = @"[{]"; Dictionary <int, List <AbstractEnemy> > story = ScenarioReader.Read(str); Assert.Fail(); }
public void Should_read_in_scenario_description() { var reader = new ScenarioReader(BufferedReaderBuilder.ReadIn( "Scenario: The answer with the highest vote gets to the top" )); Scenario scenario = reader.Read(); Assert.That(scenario.Description, Is.EqualTo("The answer with the highest vote gets to the top")); }
public void OnSelectionClick(int index) { if (ScenarioReader.Next(index, ref readData)) { UpdateUI(); } else { CloseUI(); } }
public void PlayScenario() { if (ScenarioReader.Read(playScenario, ref readData)) { OpenUI(); UpdateUI(); } else { CloseUI(); } }
public void Should_read_in_given_statement() { BufferedReader bufferedReader = BufferedReaderBuilder.ReadIn( "Scenario: The answer with the highest vote gets to the top", " Given there is a question \"What's your favorite colour?\" with the answers" ); var reader = new ScenarioReader(bufferedReader); Scenario scenario = reader.Read(); Assert.That(scenario.Statements[0], Should.EqualTo(StatementBuilder.Given("there is a question \"What's your favorite colour?\" with the answers"))); }
public void Load_InvalidPath_ThrowsException() { // Arrange var field = new ScenarioFile(); var dairy = new ScenarioFile(); var sut = new ScenarioReader(field, dairy); // Act sut.Load(""); // Assert - Expect exception }
public ScenarioEditorViewModel(EdataContentFile file, EdataFileViewModel ownerVm) { OwnerFile = file; EdataFileViewModel = ownerVm; var reader = new ScenarioReader(); ScenarioFile = reader.Read(ownerVm.EdataManager.GetRawData(file)); EditGameModeLogicCommand = new ActionCommand(EditGameModeLogicExecute); ZoneEditorCommand = new ActionCommand(ZoneEditorExecute); SaveCommand = new ActionCommand(SaveExecute); }
public void ReadComplexEditWriteSimple() { // Arrange ScenarioFile dairy = new ScenarioFile(); ScenarioFile field = new ScenarioFile(); ScenarioDefaults d = new ScenarioDefaults(); WeatherGrabber g = new WeatherGrabber(@"Assets\Database\Weather"); string readPath = @"Assets\complexScenario.NIFA_dairy_scenario"; string writePath = @"Assets\IntegrationTest"; string comparePath = @"Assets\simpleScenario.NIFA_dairy_scenario"; ScenarioReader r = new ScenarioReader(dairy, field); ScenarioWriter w = new ScenarioWriter(dairy, field, d, g); Directory.CreateDirectory(writePath); // Act r.Load(readPath); Scenario scenario = r.Parse(); scenario.Description = ""; scenario.Cow.BodyMass_kg = 635; scenario.Cow.DryMatterIntake_kg_d = 24; scenario.Cow.MilkProduction_kg_d = 34; scenario.Cow.CrudeProteinDiet_percent = 17.6; scenario.Cow.StarchDiet_percent = 12.83; scenario.Cow.AcidDetergentFiberDiet_percent = 26.08; scenario.Barn.ManureAlleyArea_m2 = 3000; scenario.Barn.NumberCows_cnt = 1000; scenario.Lagoon.SurfaceArea_m2 = 142250; scenario.Lagoon.VolumeMax_m3 = 519213; scenario.Fertigation.Enabled = false; scenario.Field.Id = "field"; scenario.AnaerobicDigester.Enabled = false; scenario.FineSeparator.Enabled = false; scenario.NutrientRecovery.Enabled = false; scenario.ReceiveOffFarmBiomass.Enabled = false; w.Write(scenario, writePath); // Assert Assert.IsTrue( checkFilesMatch( comparePath, Path.Combine(writePath, ".NIFA_dairy_scenario"))); }
public void LoadParse_SimpleScenario_ParsesCorrectly() { /// Arrange var dairy = new ScenarioFile(); var field = new ScenarioFile(); var reader = new ScenarioReader(dairy, field); var sut = new Scenario(); var injector = new Injector(); var s = injector.GetSimpleScenario(); /// Act reader.Load(@"Assets\simpleScenario.NIFA_dairy_scenario"); sut = reader.Parse(); /// Assert //(Only testing subset of all data) // [scenario] Assert.AreEqual(s.DetailsUrl, sut.DetailsUrl); Assert.AreEqual(s.StartDate.Year, sut.StartDate.Year); Assert.AreEqual( s.PathToWeatherFile, sut.PathToWeatherFile); Assert.AreEqual(s.Latitude, sut.Latitude); Assert.AreEqual(s.Longitude, sut.Longitude); // [cow_description] Assert.AreEqual(s.Cow.BodyMass_kg, sut.Cow.BodyMass_kg); Assert.AreEqual(s.Cow.IsLactating, sut.Cow.IsLactating); Assert.AreEqual(s.Cow.PhManure_mol_L, sut.Cow.PhManure_mol_L); Assert.AreEqual(s.Cow.MetabolizableEnergyDiet_MJ_d, sut.Cow.MetabolizableEnergyDiet_MJ_d); // [barn] Assert.AreEqual(s.Barn.Bedding, sut.Barn.Bedding); Assert.AreEqual(s.Barn.BeddingAddition, sut.Barn.BeddingAddition); Assert.AreEqual(s.Barn.CleaningFrequency, sut.Barn.CleaningFrequency); // [manure_storage] (lagoon) Assert.AreEqual(s.Lagoon.SurfaceArea_m2, sut.Lagoon.SurfaceArea_m2); Assert.AreEqual(s.Lagoon.VolumeMax_m3, sut.Lagoon.VolumeMax_m3); Assert.AreEqual(s.Lagoon.PH_mol_L, sut.Lagoon.PH_mol_L); // [fertigation_management] Assert.AreEqual(s.Fertigation.ApplicationMethod, sut.Fertigation.ApplicationMethod); Assert.AreEqual(s.Fertigation.AmountRemoved_percent, sut.Fertigation.AmountRemoved_percent); Assert.AreEqual(s.Fertigation.TargetField_id, sut.Fertigation.TargetField_id); }
public void SimultaneousEnemies() { String str = @"[ { ""time"": 100, ""type"": 0, ""x"":10, ""y"": 60}, { ""time"": 100, ""type"": 1, ""x"":20, ""y"": 70}, { ""time"": 100, ""type"": 2, ""x"":30, ""y"": 80}, { ""time"": 100, ""type"": 3, ""x"":40, ""y"": 90}, { ""time"": 100, ""type"": 4, ""x"":50, ""y"": 100}, "; Dictionary <int, List <AbstractEnemy> > story = ScenarioReader.Read(str); List <AbstractEnemy> enemies = story[100]; Assert.IsInstanceOfType(enemies[0], typeof(Enemy0)); Assert.IsInstanceOfType(enemies[1], typeof(Enemy1)); Assert.IsInstanceOfType(enemies[2], typeof(Enemy2)); Assert.IsInstanceOfType(enemies[3], typeof(Enemy3)); Assert.IsInstanceOfType(enemies[4], typeof(Enemy4)); }
private void добавитьСценарийToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog() { Filter = "Word files (*.docx;*.doc)|*.docx;*.doc|All files (*.*)|*.*" }; if (ofd.ShowDialog() == DialogResult.Cancel) { return; } // TEST List <string> test = ScenarioReader.ReadDocx(ofd.FileName); string[] items = new string[8]; foreach (string stroka in test) { addStringToScenarioList(items, stroka); } }
private void OpenScenario(string path) { ScenarioReader reader = null; try { reader = new ScenarioReader(path); } catch (ArgumentNullException) { MessageBox.Show("Путь не задан"); return; } catch (DirectoryNotFoundException) { MessageBox.Show("Пути " + path + " не существует"); return; } Scenario sc = reader.ReadScenario(); if (sc == null) { return; } scenario = sc; experimentCnfg = null; SpeedRatio = 1.0D; if (FirstGrid.Visibility == System.Windows.Visibility.Visible) { FirstGrid.Visibility = System.Windows.Visibility.Hidden; } PaintMap(); menuEnableVariator.IsEnabled = true; Properties.Settings.Default.ScenarioPath = path; Properties.Settings.Default.Save(); }
public void LoadParse_ComplexScenario_ParsesCorrectly() { /// Arrange var dairy = new ScenarioFile(); var field = new ScenarioFile(); var reader = new ScenarioReader(dairy, field); var injector = new Injector(); var s = injector.GetComplexScenario(); var sut = new Scenario(); /// Act reader.Load(@"Assets\complexScenario.NIFA_dairy_scenario"); sut = reader.Parse(); /// Assert //(Only testing subset of all data) // [scenario] Assert.AreEqual(s.Description, sut.Description); Assert.AreEqual(s.StartDate.Year, sut.StartDate.Year); Assert.AreEqual( s.SimulationPeriodMode, sut.SimulationPeriodMode); Assert.AreEqual(s.Latitude, sut.Latitude); Assert.AreEqual(s.Longitude, sut.Longitude); // [barn] Assert.AreEqual(s.Barn.NumberCows_cnt, sut.Barn.NumberCows_cnt); Assert.AreEqual(s.Barn.CleaningFrequency, sut.Barn.CleaningFrequency); // [manure_storage] (lagoon) Assert.AreEqual(s.Lagoon.SurfaceArea_m2, sut.Lagoon.SurfaceArea_m2); Assert.AreEqual(s.Lagoon.VolumeMax_m3, sut.Lagoon.VolumeMax_m3); Assert.AreEqual(s.Lagoon.PH_mol_L, sut.Lagoon.PH_mol_L); // [manure_separator] (AD) Assert.AreEqual(s.AnaerobicDigester.Id, sut.AnaerobicDigester.Id); Assert.AreEqual(s.AnaerobicDigester.Style, sut.AnaerobicDigester.Style); Assert.AreEqual(s.AnaerobicDigester.SourceFacility, sut.AnaerobicDigester.SourceFacility); Assert.AreEqual(s.AnaerobicDigester.LiquidFacility, sut.AnaerobicDigester.LiquidFacility); Assert.AreEqual(s.AnaerobicDigester.SolidFacility, sut.AnaerobicDigester.SolidFacility); // [manure_separator] (course sep) Assert.AreEqual(s.CourseSeparator.Id, sut.CourseSeparator.Id); Assert.AreEqual(s.CourseSeparator.Style, sut.CourseSeparator.Style); Assert.AreEqual(s.CourseSeparator.SourceFacility, sut.CourseSeparator.SourceFacility); Assert.AreEqual(s.CourseSeparator.LiquidFacility, sut.CourseSeparator.LiquidFacility); Assert.AreEqual(s.CourseSeparator.SolidFacility, sut.CourseSeparator.SolidFacility); // [manure_separator] (fine sep) Assert.AreEqual(s.FineSeparator.Id, sut.FineSeparator.Id); Assert.AreEqual(s.FineSeparator.Style, sut.FineSeparator.Style); Assert.AreEqual(s.FineSeparator.SourceFacility, sut.FineSeparator.SourceFacility); Assert.AreEqual(s.FineSeparator.LiquidFacility, sut.FineSeparator.LiquidFacility); Assert.AreEqual(s.FineSeparator.SolidFacility, sut.FineSeparator.SolidFacility); // [manure_separator] (nut rec) Assert.AreEqual(s.NutrientRecovery.Id, sut.NutrientRecovery.Id); Assert.AreEqual(s.NutrientRecovery.Style, sut.NutrientRecovery.Style); Assert.AreEqual(s.NutrientRecovery.SourceFacility, sut.NutrientRecovery.SourceFacility); Assert.AreEqual(s.NutrientRecovery.LiquidFacility, sut.NutrientRecovery.LiquidFacility); Assert.AreEqual(s.NutrientRecovery.SolidFacility, sut.NutrientRecovery.SolidFacility); // [receive_off_farm_biomass:1] Assert.AreEqual(s.ReceiveOffFarmBiomass.ApplicationDate.Year, sut.ReceiveOffFarmBiomass.ApplicationDate.Year); Assert.AreEqual(s.ReceiveOffFarmBiomass.Biomatter.Mass_kg, sut.ReceiveOffFarmBiomass.Biomatter.Mass_kg); Assert.AreEqual(s.ReceiveOffFarmBiomass.Biomatter.CarbonOrganicResilient_kg, sut.ReceiveOffFarmBiomass.Biomatter.CarbonOrganicResilient_kg); // [fertigation_management] Assert.AreEqual(s.Fertigation.ApplicationMethod, sut.Fertigation.ApplicationMethod); Assert.AreEqual(s.Fertigation.AmountRemoved_percent, sut.Fertigation.AmountRemoved_percent); Assert.AreEqual(s.Fertigation.TargetField_id, sut.Fertigation.TargetField_id); }