< Summary - ReFlex - Library

Information
Class: PointCloud.Benchmark.Benchmarks.Interactivity.MultiInteractionObserverBenchmark
Assembly: ReFlex.PointCloud.Benchmark
File(s): D:\a\reflex\reflex\test\Library\Performance\PointCloud.Benchmark\Benchmarks\Interactivity\MultiInteractionObserverBenchmark.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 50
Coverable lines: 50
Total lines: 100
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%210%
Update()100%210%
UpdateVectorField()100%210%
UpdateVectorFieldParallel()100%210%
UpdateVectorFieldParallelStepped()100%210%
UpdateVectorFieldStepped1d()100%210%
UpdateVectorFieldSteppedParallel1d()100%210%

File(s)

D:\a\reflex\reflex\test\Library\Performance\PointCloud.Benchmark\Benchmarks\Interactivity\MultiInteractionObserverBenchmark.cs

#LineLine coverage
 1using BenchmarkDotNet.Attributes;
 2using Implementation.Components;
 3using PointCloud.Benchmark.Interactivity;
 4using PointCloud.Benchmark.Util;
 5using ReFlex.Core.Common.Components;
 6using ReFlex.Core.Common.Util;
 7
 8namespace PointCloud.Benchmark.Benchmarks.Interactivity;
 9
 10[MemoryDiagnoser]
 11public class MultiInteractionObserverBenchmark
 12{
 13    private int _width;
 14    private int _height;
 15
 16    private readonly PointCloud3 _pCloud3;
 17    private readonly VectorField2 _vectorfield;
 18
 19    private readonly MultiInteractionObserver _observer;
 20
 21    private Point3[] _data;
 22
 023    public MultiInteractionObserverBenchmark()
 024    {
 025        var data = DataLoader.Load(0);
 026        _width = data.Item1;
 027        _height = data.Item2;
 028        _data = data.Item3;
 29
 030        _pCloud3 = new PointCloud3(_width, _height);
 031        _pCloud3.Update(data.Item3, 0f);
 32
 033        var filterMgr = new FilterManager();
 034        filterMgr.LimitationFilter.LeftBound = 42;
 035        filterMgr.LimitationFilter.RightBound = 613;
 036        filterMgr.LimitationFilter.LeftBound = 136;
 037        filterMgr.LimitationFilter.LeftBound = 413;
 38
 039        filterMgr.IsLimitationFilterEnabled = true;
 040        filterMgr.IsBoxFilterEnabled = true;
 041        filterMgr.IsValueFilterEnabled = true;
 042        filterMgr.MeasurePerformance = false;
 043        filterMgr.IsThresholdFilterEnabled = true;
 44
 045        filterMgr.LimitationFilterType = LimitationFilterType.LimitationFilter;
 46
 047        filterMgr.FilterAndUpdate(_data, _pCloud3);
 48
 049        _vectorfield = new VectorField2(_width, _height, 1);
 050        _vectorfield.Populate(_pCloud3);
 51
 052        _observer = new MultiInteractionObserver();
 053        _observer.PointCloud = _pCloud3;
 054        _observer.VectorField = _vectorfield;
 55
 056        _observer.MinDistance = 0.04f;
 057        _observer.MaxDistance = 0.3f;
 058        _observer.Distance = 1.45f;
 059        _observer.MinAngle = 0.5f;
 060        _observer.TouchMergeDistance2D = 19;
 061    }
 62
 63    [Benchmark]
 64    public async Task<ProcessingResult> Update()
 065    {
 066        var result = await _observer.Update();
 67
 068        return result;
 069    }
 70
 71    [Benchmark]
 72    public void UpdateVectorField()
 073    {
 074        _observer.UpdateVectorfield();
 075    }
 76
 77    [Benchmark]
 78    public void UpdateVectorFieldParallel()
 079    {
 080        _observer.UpdateVectorfieldParallel();
 081    }
 82
 83    [Benchmark]
 84    public void UpdateVectorFieldParallelStepped()
 085    {
 086        _observer.UpdateVectorfieldParallelStepped();
 087    }
 88
 89    [Benchmark]
 90    public void UpdateVectorFieldStepped1d()
 091    {
 092        _observer.UpdateVectorfieldStepped1d();
 093    }
 94
 95    [Benchmark]
 96    public void UpdateVectorFieldSteppedParallel1d()
 097    {
 098        _observer.UpdateVectorfieldSteppedParallel1d();
 099    }
 100}