Exemple #1
0
        public async Task Test_SummarySpeedStatistics_SiteModelWithSingleTAGFile_FullExtents_WithSpeedTargetRange
            (ushort minTarget, ushort maxTarget, double percentBelow, double percentWithin, double percentAbove)
        {
            AddClusterComputeGridRouting();
            AddApplicationGridRouting();

            var tagFiles = new[]
            {
                Path.Combine(TestHelper.CommonTestDataPath, "TestTAGFile.tag"),
            };

            var siteModel = DITAGFileAndSubGridRequestsFixture.BuildModel(tagFiles, out _);
            var operation = new SpeedStatisticsOperation();

            var cmvSummaryResult = await operation.ExecuteAsync(SimpleSpeedStatisticsArgument(siteModel, minTarget, maxTarget));

            cmvSummaryResult.Should().NotBeNull();
            cmvSummaryResult.ResultStatus.Should().Be(RequestErrorStatus.OK);
            cmvSummaryResult.Counts.Should().BeNull();
            cmvSummaryResult.Percents.Should().BeNull();
            cmvSummaryResult.BelowTargetPercent.Should().BeApproximately(percentBelow, 0.001);
            cmvSummaryResult.AboveTargetPercent.Should().BeApproximately(percentAbove, 0.001);
            cmvSummaryResult.WithinTargetPercent.Should().BeApproximately(percentWithin, 0.001);
            cmvSummaryResult.TotalAreaCoveredSqMeters.Should().BeApproximately(3054 * SubGridTreeConsts.DefaultCellSize * SubGridTreeConsts.DefaultCellSize, 0.000001);
        }
Exemple #2
0
        public async Task <JsonResult> GetMachineSpeedSummary([FromRoute] string siteModelID, [FromBody] OverrideParameters overrides)
        {
            string resultToReturn;

            if (!Guid.TryParse(siteModelID, out var UID))
            {
                resultToReturn = $"<b>Invalid Site Model UID: {siteModelID}</b>";
            }
            else
            {
                var siteModel = DIContext.Obtain <ISiteModels>().GetSiteModel(UID, false);

                if (siteModel == null)
                {
                    resultToReturn = $"<b>Site model {UID} is unavailable</b>";
                }
                else
                {
                    var sw = new Stopwatch();
                    sw.Start();

                    var operation = new SpeedStatisticsOperation();
                    var result    = await operation.ExecuteAsync(
                        new SpeedStatisticsArgument()
                    {
                        ProjectID = siteModel.ID,
                        Filters   = new FilterSet()
                        {
                            Filters = new[] { new CombinedFilter() }
                        },
                        Overrides = overrides
                    }
                        );

                    if (result != null)
                    {
                        string resultString = $"<b>Machine Speed Summary Results (in {sw.Elapsed}) :</b><br/>";
                        resultString += "<b>================================================</b><br/>";
                        resultString += $"<b>Above Machine Speed Percentage:</b> {result.AboveTargetPercent}<br/>";
                        resultString += $"<b>Within Machine Speed Percentage Range:</b> {result.WithinTargetPercent}<br/>";
                        resultString += $"<b>Below Machine Speed Percentage:</b> {result.BelowTargetPercent}<br/>";
                        resultString += $"<b>Total Area Covered in Sq Meters:</b> {result.TotalAreaCoveredSqMeters}<br/>";

                        resultToReturn = resultString;
                    }
                    else
                    {
                        resultToReturn = "<b>No result</b>";
                    }
                }
            }

            return(new JsonResult(resultToReturn));
        }
Exemple #3
0
        public async Task Test_SummarySpeedStatistics_EmptySiteModel_FullExtents_NoSpeedTargetOverride()
        {
            AddClusterComputeGridRouting();
            AddApplicationGridRouting();

            var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel();
            var operation = new SpeedStatisticsOperation();

            var mdpSummaryResult = await operation.ExecuteAsync(SimpleSpeedStatisticsArgument(siteModel, 0, 0));

            mdpSummaryResult.Should().NotBeNull();
            mdpSummaryResult.ResultStatus.Should().Be(RequestErrorStatus.FailedToRequestDatamodelStatistics);
        }
Exemple #4
0
        public async Task Test_SummarySpeedStatistics_SiteModelWithSingleCell_FullExtents_NoSpeedTargetRange()
        {
            AddClusterComputeGridRouting();
            AddApplicationGridRouting();

            var siteModel = BuildModelForSingleCellSpeed(10);

            var operation = new SpeedStatisticsOperation();

            var speedSummaryResult = await operation.ExecuteAsync(SimpleSpeedStatisticsArgument(siteModel, CellPassConsts.NullMachineSpeed, CellPassConsts.NullMachineSpeed));

            speedSummaryResult.Should().NotBeNull();
            speedSummaryResult.ResultStatus.Should().Be(RequestErrorStatus.OK);
            speedSummaryResult.Counts.Should().BeNull();
            speedSummaryResult.Percents.Should().BeNull();
            speedSummaryResult.AboveTargetPercent.Should().Be(0.0);
            speedSummaryResult.WithinTargetPercent.Should().Be(0.0);
            speedSummaryResult.BelowTargetPercent.Should().Be(100.0);
            speedSummaryResult.TotalAreaCoveredSqMeters.Should().BeApproximately(SubGridTreeConsts.DefaultCellSize * SubGridTreeConsts.DefaultCellSize, 0.000001);
        }
Exemple #5
0
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            var request = item as SpeedSummaryRequest;

            if (request == null)
            {
                ThrowRequestTypeCastException <SpeedSummaryRequest>();
            }

            var siteModel = GetSiteModel(request.ProjectUid);

            var filter = ConvertFilter(request.Filter, siteModel);

            var operation          = new SpeedStatisticsOperation();
            var speedSummaryResult = await operation.ExecuteAsync(
                new SpeedStatisticsArgument()
            {
                ProjectID  = siteModel.ID,
                Filters    = new FilterSet(filter),
                Overrides  = AutoMapperUtility.Automapper.Map <OverrideParameters>(request.Overrides),
                LiftParams = ConvertLift(request.LiftSettings, request.Filter?.LayerType)
            }
                );

            if (speedSummaryResult != null)
            {
                if (speedSummaryResult.ResultStatus == RequestErrorStatus.OK)
                {
                    return(ConvertResult(speedSummaryResult));
                }

                throw CreateServiceException <SummarySpeedExecutor>(speedSummaryResult.ResultStatus);
            }

            throw CreateServiceException <SummarySpeedExecutor>();
        }
Exemple #6
0
        public void Test_SummarySpeedStatistics_Creation()
        {
            var operation = new SpeedStatisticsOperation();

            operation.Should().NotBeNull();
        }