Esempio n. 1
0
        public void Serialization_Complex()
        {
            var arg = new ProgressiveVolumesRequestArgument
            {
                Interval                = new TimeSpan(1, 0, 0, 0),
                StartDate               = new DateTime(2020, 1, 1, 1, 1, 1),
                EndDate                 = new DateTime(2020, 1, 1, 1, 1, 1),
                CutTolerance            = 0.05,
                FillTolerance           = 0.01,
                AdditionalSpatialFilter = new CombinedFilter(),
                ExternalDescriptor      = Guid.NewGuid(),
                Filters                 = new FilterSet(new CombinedFilter()),
                LiftParams              = new LiftParameters(),
                OriginatingIgniteNodeId = Guid.NewGuid(),
                Overrides               = new OverrideParameters(),
                ProjectID               = Guid.NewGuid(),
                BaseDesign              = new DesignOffset(Guid.NewGuid(), 1.23),
                TopDesign               = new DesignOffset(Guid.NewGuid(), 1.33),
                VolumeType              = VolumeComputationType.BetweenDesignAndFilter
            };

            var writer = new TestBinaryWriter();

            arg.ToBinary(writer);

            var cp2 = new ProgressiveVolumesRequestArgument();

            cp2.FromBinary(new TestBinaryReader(writer._stream.BaseStream as MemoryStream));

            arg.Should().BeEquivalentTo(cp2);
        }
Esempio n. 2
0
        public async Task <ProgressiveVolumesResponse> ExecuteAsync(ProgressiveVolumesRequestArgument arg)
        {
            var request = new ProgressiveVolumesRequest_ClusterCompute();

            _log.LogInformation("Executing ProgressiveVolumesRequestComputeFunc_ApplicationService.ExecuteAsync()");

            // Calculate the volumes and convert the grid bounding rectangle into WGS 84 lat/long to return to the caller.
            return(ConvertBoundaryFromGridToWGS84(arg.ProjectID, await request.ExecuteAsync(arg)));
        }
Esempio n. 3
0
        public async Task ApplicationService_DefaultFilterToFilter_Execute_SingleCell_CutOnly()
        {
            const int numProgressiveVolumes = 10;

            AddApplicationGridRouting();
            AddClusterComputeGridRouting();
            AddSimpleNEEToLLHConversionMock();

            var baseTime                = DateTime.UtcNow;
            var timeIncrement           = new TimeSpan(0, 1, 0);
            var cellPassHeightIncrement = -ELEVATION_INCREMENT_0_5;

            var siteModel = BuildModelForSingleCellProgressiveVolume(numProgressiveVolumes + 1, baseTime, timeIncrement, 1.0f, cellPassHeightIncrement);

            var(startUtc, endUtc) = siteModel.GetDateRange();

            startUtc.Should().Be(baseTime);
            endUtc.Should().Be(baseTime + numProgressiveVolumes * timeIncrement);

            var request = new ProgressiveVolumesRequest_ApplicationService();
            var arg     = new ProgressiveVolumesRequestArgument
            {
                StartDate     = startUtc,
                EndDate       = endUtc,
                Interval      = new TimeSpan((endUtc.Ticks - startUtc.Ticks) / numProgressiveVolumes),
                ProjectID     = siteModel.ID,
                VolumeType    = VolumeComputationType.Between2Filters,
                Filters       = new FilterSet(new CombinedFilter()),
                BaseDesign    = new DesignOffset(),
                TopDesign     = new DesignOffset(),
                CutTolerance  = 0.001,
                FillTolerance = 0.001
            };

            var response = await request.ExecuteAsync(arg);

            CheckDefaultSingleCellAtOriginResponse(response);

            response.Volumes.Length.Should().Be(numProgressiveVolumes);

            for (var i = 0; i < response.Volumes.Length - 1; i++)
            {
                response.Volumes[i].Date.Should().BeBefore(response.Volumes[i + 1].Date);
            }

            for (var i = 0; i < response.Volumes.Length; i++)
            {
                response.Volumes[i].Date.Should().Be(baseTime + (i + 1) * timeIncrement);
                response.Volumes[i].Volume.TotalCoverageArea.Should().Be(SubGridTreeConsts.DefaultCellSize * SubGridTreeConsts.DefaultCellSize);
                response.Volumes[i].Volume.Fill.Should().Be(0);
                response.Volumes[i].Volume.Cut.Should().Be(-(cellPassHeightIncrement * SubGridTreeConsts.DefaultCellSize * SubGridTreeConsts.DefaultCellSize));

                response.Volumes[i].Volume.FillArea.Should().Be(0);
                response.Volumes[i].Volume.CutArea.Should().Be(SubGridTreeConsts.DefaultCellSize * SubGridTreeConsts.DefaultCellSize);
            }
        }
Esempio n. 4
0
        public void Serialization_Null()
        {
            var arg = new ProgressiveVolumesRequestArgument();

            var writer = new TestBinaryWriter();

            arg.ToBinary(writer);

            var cp2 = new ProgressiveVolumesRequestArgument();

            cp2.FromBinary(new TestBinaryReader(writer._stream.BaseStream as MemoryStream));

            arg.Should().BeEquivalentTo(cp2);
        }
Esempio n. 5
0
        public void Creation()
        {
            var arg = new ProgressiveVolumesRequestArgument();

            Assert.NotNull(arg);
        }