예제 #1
0
        public void Wepp_WriteScenarioFiles_FromVerificationLocations()
        {
            // Arrange
            CsvHandler         reader      = new CsvHandler();
            IBuildErosionModel builder     = new WeppBuilder();
            ScenarioHandler    writer      = new ScenarioHandler();
            string             currentDate = DateTime.Now.ToString("yyyyMMdd");
            string             expectedZip = $"Assets\\output\\wepp_{currentDate}.zip";
            string             writePath   = $"Assets\\output\\wepp_{currentDate}";

            // Act
            List <string> actual = builder.BuildScenarios(
                reader.ReadCsipLocationFile(@"Assets\location_verification_10.csv"),
                builder.GetTemplate(),
                builder.GetRotations());

            writer.WriteScenariosZip(actual, writePath);

            // Assert
            Assert.True(File.Exists(expectedZip));

            // Cleanup
            if (File.Exists(expectedZip))
            {
                File.Delete(expectedZip);
            }
            if (Directory.Exists(writePath))
            {
                Directory.Delete(writePath, true);
            }
        }
        public void GetRotations_ValidInput_ExpectedResults()
        {
            // Arrange
            IBuildErosionModel sut = new WeppBuilder();

            // Act
            var actual = sut.GetRotations();

            // Assert
            Assert.Equal(6, actual.Count);
            Assert.Equal(4, actual[11].Count);
            Assert.Equal(3, actual[112].Count);
        }
예제 #3
0
        public void Wepp_Build_ValidInput10Locs_ExpectedResults()
        {
            // Arrange
            CsvHandler         reader = new CsvHandler();
            IBuildErosionModel sut    = new WeppBuilder();

            // Act
            List <string> actual = sut.BuildScenarios(
                reader.ReadCsipLocationFile(@"Assets\location_verification_10.csv"),
                sut.GetTemplate(),
                sut.GetRotations());

            // Assert
            Assert.NotNull(actual);
            Assert.Equal(33, actual.Count);
        }
        public void Build_ValidInput_ExpectedResults()
        {
            // Arrange
            IBuildErosionModel  sut       = new WeppBuilder();
            List <CsipLocation> locations = GetMockLocations();
            string template = File.ReadAllText(@"Assets\templateWepp.json");
            Dictionary <int, List <string> > rotations = GetMockRotations();

            // Act
            List <string> actual = sut.BuildScenarios(
                locations,
                template,
                rotations);

            // Assert
            Assert.Equal(20, actual.Count);
        }
예제 #5
0
        public void Wepp_Build_ValidInput01Loc_ExpectedResults()
        {
            // Arrange
            CsvHandler         reader = new CsvHandler();
            IBuildErosionModel sut    = new WeppBuilder();

            // Act
            List <string> actual = sut.BuildScenarios(
                reader.ReadCsipLocationFile(@"Assets\location_verification_01.csv"),
                sut.GetTemplate(),
                sut.GetRotations());

            // Assert
            string strippedJson = Regex.Replace(actual.FirstOrDefault(), @"\s+", "");

            // Check soil cokey, soil slope, soil length, rotation soil length
            Assert.Contains("{\"name\":\"soilPtr\",\"value\":[\"17389235\"]}", strippedJson);
            Assert.Contains("{\"name\":\"slope_steepness\",\"value\":4.0}", strippedJson);
            Assert.Contains("{\"name\":\"length\",\"value\":350.0}", strippedJson);
            Assert.Contains("{\"duration\":2,\"length\":350.0", strippedJson);
        }