< Summary

Information
Class: CounterDrone.Core.Simulation.ControlZoneEntity
Assembly: CounterDrone.Core
File(s): C:\Users\Tellme\apps\CounterDroneBackend\src\CounterDrone.Core\Simulation\ControlZone.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 38
Line coverage: 100%
Branch coverage
75%
Covered branches: 6
Total branches: 8
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Id()100%11100%
get_Name()100%11100%
get_Vertices()100%11100%
get_MinAltitude()100%11100%
get_MaxAltitude()100%11100%
get_X()100%11100%
.ctor(...)50%22100%
ContainsPoint(...)83.33%66100%

File(s)

C:\Users\Tellme\apps\CounterDroneBackend\src\CounterDrone.Core\Simulation\ControlZone.cs

#LineLine coverage
 1using CounterDrone.Core.Algorithms;
 2using System;
 3using System.Collections.Generic;
 4using System.Text.Json;
 5
 6namespace CounterDrone.Core.Simulation
 7{
 8    public class ControlZoneEntity
 9    {
 110        public string Id { get; }
 111        public string Name { get; }
 105312        public List<Vector3> Vertices { get; }
 7613        public float MinAltitude { get; }
 7614        public float MaxAltitude { get; }
 15
 66216        public struct Vector3 { public float X { get; set; } public float Y { get; set; } public float Z { get; set; } }
 17
 518        public ControlZoneEntity(string id, string name, string verticesJson, float minAlt, float maxAlt)
 519        {
 520            Id = id;
 521            Name = name;
 522            MinAltitude = minAlt;
 523            MaxAltitude = maxAlt;
 524            Vertices = JsonSerializer.Deserialize<List<Vector3>>(verticesJson) ?? new();
 525        }
 26
 27        public bool ContainsPoint(float x, float y, float z)
 7628        {
 7729            if (y < MinAltitude || y > MaxAltitude) return false;
 30
 7531            var vertices2D = new (float X, float Z)[Vertices.Count];
 75032            for (int i = 0; i < Vertices.Count; i++)
 30033                vertices2D[i] = (Vertices[i].X, Vertices[i].Z);
 34
 7535            return Kinematics.PointInPolygon(x, z, vertices2D);
 7636        }
 37    }
 38}