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();
        }
    }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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")));
        }
Esempio n. 10
0
        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")));
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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));
        }
Esempio n. 15
0
        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);
            }
        }
Esempio n. 16
0
        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();
        }
 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();
 }
Esempio n. 18
0
        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);
        }