ilpcw/docs/reports/jacoco/test/jacocoTestReport.xml
js0ny 32cd6bcb21
Some checks failed
Polyglot CI / tests (push) Has been cancelled
chore(assets): Upload report assets
2026-01-22 12:36:30 +00:00

1 line
No EOL
56 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="ilp-coursework"><sessioninfo id="zephyrus-b3d5005c" start="1769073072115" dump="1769073078168"/><package name="io/github/js0ny/ilp_coursework/service"><class name="io/github/js0ny/ilp_coursework/service/PathFinderService$TripResult" sourcefilename="PathFinderService.java"><method name="&lt;init&gt;" desc="(Lio/github/js0ny/ilp_coursework/data/response/DeliveryPathResponse$DronePath;IF)V" line="548"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/><counter type="CLASS" missed="0" covered="1"/></class><class name="io/github/js0ny/ilp_coursework/service/DroneAttrComparatorService" sourcefilename="DroneAttrComparatorService.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="13" covered="20"/><counter type="BRANCH" missed="5" covered="1"/><counter type="LINE" missed="3" covered="7"/><counter type="COMPLEXITY" missed="3" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="dronesWithAttribute" desc="(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;" line="57"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="dronesSatisfyingAttributes" desc="([Lio/github/js0ny/ilp_coursework/data/request/AttrQueryRequest;)Ljava/util/List;" line="67"><counter type="INSTRUCTION" missed="0" covered="58"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="13"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="dronesWithAttributeCompared" desc="(Ljava/lang/String;Ljava/lang/String;Lio/github/js0ny/ilp_coursework/util/AttrOperator;)Ljava/util/List;" line="102"><counter type="INSTRUCTION" missed="4" covered="33"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="1" covered="8"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$dronesWithAttributeCompared$0" desc="(Lcom/fasterxml/jackson/databind/ObjectMapper;Ljava/lang/String;Ljava/lang/String;Lio/github/js0ny/ilp_coursework/util/AttrOperator;Lio/github/js0ny/ilp_coursework/data/external/Drone;)Z" line="117"><counter type="INSTRUCTION" missed="2" covered="15"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="1" covered="4"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="19" covered="132"/><counter type="BRANCH" missed="7" covered="9"/><counter type="LINE" missed="5" covered="33"/><counter type="COMPLEXITY" missed="5" covered="8"/><counter type="METHOD" missed="0" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="io/github/js0ny/ilp_coursework/service/PathFinderService" sourcefilename="PathFinderService.java"><method name="&lt;init&gt;" desc="(Lio/github/js0ny/ilp_coursework/service/GpsCalculationService;Lio/github/js0ny/ilp_coursework/service/DroneInfoService;)V" line="75"><counter type="INSTRUCTION" missed="2" covered="122"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="2" covered="26"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="calculateDeliveryPath" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Lio/github/js0ny/ilp_coursework/data/response/DeliveryPathResponse;" line="122"><counter type="INSTRUCTION" missed="23" covered="166"/><counter type="BRANCH" missed="10" covered="16"/><counter type="LINE" missed="7" covered="36"/><counter type="COMPLEXITY" missed="10" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="calculateDeliveryPathAsGeoJson" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Ljava/lang/String;" line="203"><counter type="INSTRUCTION" missed="8" covered="150"/><counter type="BRANCH" missed="5" covered="11"/><counter type="LINE" missed="3" covered="27"/><counter type="COMPLEXITY" missed="5" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="assignDeliveries" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Ljava/util/Map;" line="256"><counter type="INSTRUCTION" missed="1" covered="39"/><counter type="BRANCH" missed="2" covered="4"/><counter type="LINE" missed="1" covered="6"/><counter type="COMPLEXITY" missed="2" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="findBestDrone" desc="(Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Ljava/lang/String;" line="276"><counter type="INSTRUCTION" missed="10" covered="60"/><counter type="BRANCH" missed="5" covered="7"/><counter type="LINE" missed="4" covered="18"/><counter type="COMPLEXITY" missed="5" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="splitTrips" desc="(Ljava/util/List;Lio/github/js0ny/ilp_coursework/data/external/Drone;Lio/github/js0ny/ilp_coursework/data/common/LngLat;)Ljava/util/List;" line="320"><counter type="INSTRUCTION" missed="39" covered="55"/><counter type="BRANCH" missed="5" covered="5"/><counter type="LINE" missed="10" covered="12"/><counter type="COMPLEXITY" missed="4" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="buildTrip" desc="(Lio/github/js0ny/ilp_coursework/data/external/Drone;Lio/github/js0ny/ilp_coursework/data/common/LngLat;Ljava/util/List;)Lio/github/js0ny/ilp_coursework/service/PathFinderService$TripResult;" line="364"><counter type="INSTRUCTION" missed="19" covered="126"/><counter type="BRANCH" missed="5" covered="7"/><counter type="LINE" missed="5" covered="27"/><counter type="COMPLEXITY" missed="5" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="estimateTripMoves" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Ljava/util/List;)I" line="417"><counter type="INSTRUCTION" missed="2" covered="42"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="1" covered="10"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="computePath" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/LngLat;)Lio/github/js0ny/ilp_coursework/service/PathFinderService$PathSegment;" line="441"><counter type="INSTRUCTION" missed="11" covered="63"/><counter type="BRANCH" missed="5" covered="7"/><counter type="LINE" missed="3" covered="14"/><counter type="COMPLEXITY" missed="5" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="nextPosition" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/LngLat;)Lio/github/js0ny/ilp_coursework/data/common/LngLat;" line="474"><counter type="INSTRUCTION" missed="3" covered="39"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="2" covered="8"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="buildAngleCandidates" desc="(D)Ljava/util/List;" line="497"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isRestricted" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;)Z" line="515"><counter type="INSTRUCTION" missed="13" covered="9"/><counter type="BRANCH" missed="3" covered="1"/><counter type="LINE" missed="3" covered="2"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$assignDeliveries$3" desc="(Ljava/lang/String;)Ljava/util/List;" line="262"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$calculateDeliveryPath$2" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)D" line="165"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="lambda$new$1" desc="(Lio/github/js0ny/ilp_coursework/data/external/ServicePoint;)Lio/github/js0ny/ilp_coursework/data/common/LngLat;" line="108"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$new$0" desc="(Lio/github/js0ny/ilp_coursework/data/external/Drone;)Lio/github/js0ny/ilp_coursework/data/external/Drone;" line="89"><counter type="INSTRUCTION" missed="0" covered="2"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="138" covered="916"/><counter type="BRANCH" missed="47" covered="73"/><counter type="LINE" missed="43" covered="194"/><counter type="COMPLEXITY" missed="46" covered="30"/><counter type="METHOD" missed="1" covered="15"/><counter type="CLASS" missed="0" covered="1"/></class><class name="io/github/js0ny/ilp_coursework/service/PathFinderService$PathSegment" sourcefilename="PathFinderService.java"><method name="&lt;init&gt;" desc="(Ljava/util/List;I)V" line="530"><counter type="INSTRUCTION" missed="0" covered="9"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="appendSkippingStart" desc="(Ljava/util/List;)V" line="538"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="27"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="io/github/js0ny/ilp_coursework/service/DroneInfoService" sourcefilename="DroneInfoService.java"><method name="&lt;init&gt;" desc="()V" line="33"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/springframework/web/client/RestTemplate;)V" line="25"><counter type="INSTRUCTION" missed="13" covered="18"/><counter type="BRANCH" missed="5" covered="1"/><counter type="LINE" missed="3" covered="7"/><counter type="COMPLEXITY" missed="3" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="dronesWithCooling" desc="(Z)Ljava/util/List;" line="64"><counter type="INSTRUCTION" missed="4" covered="16"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="1" covered="6"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="droneDetail" desc="(Ljava/lang/String;)Lio/github/js0ny/ilp_coursework/data/external/Drone;" line="89"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="dronesMatchesRequirements" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Ljava/util/List;" line="112"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="droneMatchesRequirement" desc="(Lio/github/js0ny/ilp_coursework/data/external/Drone;Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Z" line="145"><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="BRANCH" missed="9" covered="13"/><counter type="LINE" missed="0" covered="14"/><counter type="COMPLEXITY" missed="8" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="checkAvailability" desc="(Ljava/lang/String;Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Z" line="186"><counter type="INSTRUCTION" missed="8" covered="50"/><counter type="BRANCH" missed="3" covered="3"/><counter type="LINE" missed="1" covered="11"/><counter type="COMPLEXITY" missed="3" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="queryServicePointLocationByDroneId" desc="(Ljava/lang/String;)Lio/github/js0ny/ilp_coursework/data/common/LngLat;" line="206"><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="queryServicePointLocation" desc="(I)Lio/github/js0ny/ilp_coursework/data/common/LngLat;" line="223"><counter type="INSTRUCTION" missed="48" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="fetchAllDrones" desc="()Ljava/util/List;" line="239"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="fetchRestrictedAreas" desc="()Ljava/util/List;" line="248"><counter type="INSTRUCTION" missed="4" covered="19"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="fetchServicePoints" desc="()Ljava/util/List;" line="256"><counter type="INSTRUCTION" missed="4" covered="19"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="fetchDronesForServicePoints" desc="()Ljava/util/List;" line="264"><counter type="INSTRUCTION" missed="4" covered="19"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$dronesMatchesRequirements$4" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;Lio/github/js0ny/ilp_coursework/data/external/Drone;)Z" line="128"><counter type="INSTRUCTION" missed="0" covered="9"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$dronesMatchesRequirements$3" desc="(Lio/github/js0ny/ilp_coursework/data/external/Drone;Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Z" line="130"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$dronesMatchesRequirements$2" desc="(Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Z" line="129"><counter type="INSTRUCTION" missed="1" covered="8"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$dronesMatchesRequirements$1" desc="(Lio/github/js0ny/ilp_coursework/data/external/Drone;)Z" line="125"><counter type="INSTRUCTION" missed="1" covered="8"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$dronesWithCooling$0" desc="(ZLio/github/js0ny/ilp_coursework/data/external/Drone;)Z" line="71"><counter type="INSTRUCTION" missed="0" covered="9"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="0" covered="1"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="142" covered="343"/><counter type="BRANCH" missed="37" covered="37"/><counter type="LINE" missed="22" covered="82"/><counter type="COMPLEXITY" missed="30" covered="26"/><counter type="METHOD" missed="2" covered="17"/><counter type="CLASS" missed="0" covered="1"/></class><class name="io/github/js0ny/ilp_coursework/service/GpsCalculationService" sourcefilename="GpsCalculationService.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="calculateDistance" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/LngLat;)D" line="47"><counter type="INSTRUCTION" missed="0" covered="21"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="calculateSteps" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/LngLat;)D" line="54"><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="isCloseTo" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/LngLat;)Z" line="71"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="nextPosition" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/Angle;)Lio/github/js0ny/ilp_coursework/data/common/LngLat;" line="86"><counter type="INSTRUCTION" missed="0" covered="25"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="checkIsInRegion" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/Region;)Z" line="105"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="rayCasting" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Ljava/util/List;)Z" line="123"><counter type="INSTRUCTION" missed="1" covered="101"/><counter type="BRANCH" missed="1" covered="15"/><counter type="LINE" missed="1" covered="19"/><counter type="COMPLEXITY" missed="1" covered="8"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPointOnEdge" desc="(Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/LngLat;Lio/github/js0ny/ilp_coursework/data/common/LngLat;)Z" line="175"><counter type="INSTRUCTION" missed="0" covered="83"/><counter type="BRANCH" missed="1" covered="13"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="1" covered="7"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="10" covered="260"/><counter type="BRANCH" missed="2" covered="32"/><counter type="LINE" missed="3" covered="42"/><counter type="COMPLEXITY" missed="3" covered="22"/><counter type="METHOD" missed="1" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="DroneAttrComparatorService.java"><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="5" mb="0" cb="0"/><line nr="31" mi="0" ci="2" mb="0" cb="0"/><line nr="32" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="3" ci="2" mb="3" cb="1"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="2" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="3" ci="0" mb="0" cb="0"/><line nr="42" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="6" mb="0" cb="0"/><line nr="67" mi="0" ci="2" mb="0" cb="0"/><line nr="68" mi="0" ci="16" mb="0" cb="2"/><line nr="69" mi="0" ci="3" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="71" mi="0" ci="3" mb="0" cb="0"/><line nr="72" mi="0" ci="3" mb="0" cb="0"/><line nr="73" mi="0" ci="6" mb="0" cb="0"/><line nr="74" mi="0" ci="2" mb="0" cb="2"/><line nr="75" mi="0" ci="6" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="2" mb="0" cb="2"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="102" mi="0" ci="6" mb="0" cb="0"/><line nr="104" mi="0" ci="7" mb="0" cb="0"/><line nr="106" mi="0" ci="2" mb="1" cb="1"/><line nr="107" mi="4" ci="0" mb="0" cb="0"/><line nr="112" mi="0" ci="4" mb="0" cb="0"/><line nr="114" mi="0" ci="8" mb="0" cb="0"/><line nr="115" mi="0" ci="2" mb="0" cb="0"/><line nr="117" mi="0" ci="4" mb="0" cb="0"/><line nr="118" mi="0" ci="4" mb="0" cb="0"/><line nr="119" mi="0" ci="2" mb="1" cb="1"/><line nr="121" mi="0" ci="5" mb="0" cb="0"/><line nr="123" mi="2" ci="0" mb="0" cb="0"/><line nr="126" mi="0" ci="1" mb="0" cb="0"/><line nr="127" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="19" covered="132"/><counter type="BRANCH" missed="7" covered="9"/><counter type="LINE" missed="5" covered="33"/><counter type="COMPLEXITY" missed="5" covered="8"/><counter type="METHOD" missed="0" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="DroneInfoService.java"><line nr="21" mi="0" ci="1" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="5" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="36" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="3" mb="0" cb="0"/><line nr="39" mi="3" ci="2" mb="3" cb="1"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="4" ci="0" mb="2" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="48" mi="0" ci="1" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="2" mb="1" cb="1"/><line nr="67" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="0" ci="5" mb="0" cb="0"/><line nr="71" mi="0" ci="11" mb="0" cb="2"/><line nr="72" mi="0" ci="1" mb="0" cb="0"/><line nr="73" mi="0" ci="3" mb="0" cb="0"/><line nr="89" mi="0" ci="3" mb="0" cb="0"/><line nr="91" mi="0" ci="10" mb="0" cb="2"/><line nr="92" mi="0" ci="5" mb="0" cb="2"/><line nr="93" mi="0" ci="2" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="98" mi="0" ci="5" mb="0" cb="0"/><line nr="112" mi="0" ci="3" mb="0" cb="0"/><line nr="114" mi="0" ci="5" mb="0" cb="4"/><line nr="115" mi="0" ci="4" mb="0" cb="0"/><line nr="116" mi="0" ci="2" mb="0" cb="0"/><line nr="117" mi="0" ci="1" mb="0" cb="0"/><line nr="118" mi="0" ci="3" mb="0" cb="0"/><line nr="124" mi="0" ci="4" mb="0" cb="0"/><line nr="125" mi="1" ci="12" mb="2" cb="2"/><line nr="126" mi="0" ci="2" mb="0" cb="0"/><line nr="128" mi="0" ci="4" mb="0" cb="0"/><line nr="129" mi="1" ci="12" mb="2" cb="2"/><line nr="130" mi="0" ci="6" mb="0" cb="0"/><line nr="131" mi="0" ci="1" mb="0" cb="0"/><line nr="132" mi="0" ci="3" mb="0" cb="0"/><line nr="145" mi="0" ci="3" mb="0" cb="0"/><line nr="146" mi="0" ci="2" mb="0" cb="2"/><line nr="147" mi="0" ci="5" mb="0" cb="0"/><line nr="149" mi="0" ci="3" mb="0" cb="0"/><line nr="150" mi="0" ci="2" mb="0" cb="2"/><line nr="151" mi="0" ci="5" mb="0" cb="0"/><line nr="154" mi="0" ci="3" mb="0" cb="0"/><line nr="155" mi="0" ci="9" mb="1" cb="3"/><line nr="156" mi="0" ci="2" mb="0" cb="0"/><line nr="160" mi="0" ci="3" mb="0" cb="0"/><line nr="161" mi="0" ci="3" mb="0" cb="0"/><line nr="168" mi="1" ci="8" mb="2" cb="2"/><line nr="169" mi="4" ci="5" mb="3" cb="1"/><line nr="173" mi="1" ci="13" mb="3" cb="3"/><line nr="186" mi="0" ci="6" mb="0" cb="0"/><line nr="187" mi="0" ci="4" mb="0" cb="0"/><line nr="188" mi="0" ci="3" mb="0" cb="0"/><line nr="190" mi="0" ci="3" mb="0" cb="0"/><line nr="191" mi="0" ci="3" mb="0" cb="0"/><line nr="192" mi="0" ci="3" mb="0" cb="0"/><line nr="194" mi="4" ci="3" mb="1" cb="1"/><line nr="195" mi="2" ci="14" mb="1" cb="1"/><line nr="196" mi="0" ci="4" mb="0" cb="0"/><line nr="197" mi="0" ci="2" mb="1" cb="1"/><line nr="198" mi="0" ci="5" mb="0" cb="0"/><line nr="202" mi="2" ci="0" mb="0" cb="0"/><line nr="206" mi="6" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="3" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="2" cb="0"/><line nr="211" mi="16" ci="0" mb="2" cb="0"/><line nr="212" mi="4" ci="0" mb="0" cb="0"/><line nr="213" mi="2" ci="0" mb="2" cb="0"/><line nr="214" mi="5" ci="0" mb="0" cb="0"/><line nr="218" mi="2" ci="0" mb="0" cb="0"/><line nr="223" mi="6" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="0" cb="0"/><line nr="228" mi="7" ci="0" mb="2" cb="0"/><line nr="229" mi="16" ci="0" mb="2" cb="0"/><line nr="230" mi="4" ci="0" mb="2" cb="0"/><line nr="232" mi="6" ci="0" mb="0" cb="0"/><line nr="235" mi="2" ci="0" mb="0" cb="0"/><line nr="239" mi="0" ci="3" mb="0" cb="0"/><line nr="240" mi="0" ci="2" mb="0" cb="0"/><line nr="241" mi="0" ci="6" mb="0" cb="0"/><line nr="242" mi="0" ci="5" mb="0" cb="0"/><line nr="243" mi="0" ci="7" mb="0" cb="0"/><line nr="244" mi="0" ci="9" mb="0" cb="2"/><line nr="248" mi="0" ci="6" mb="0" cb="0"/><line nr="249" mi="0" ci="4" mb="0" cb="0"/><line nr="250" mi="0" ci="3" mb="0" cb="0"/><line nr="251" mi="4" ci="3" mb="1" cb="1"/><line nr="252" mi="0" ci="3" mb="0" cb="0"/><line nr="256" mi="0" ci="6" mb="0" cb="0"/><line nr="257" mi="0" ci="4" mb="0" cb="0"/><line nr="258" mi="0" ci="3" mb="0" cb="0"/><line nr="259" mi="4" ci="3" mb="1" cb="1"/><line nr="260" mi="0" ci="3" mb="0" cb="0"/><line nr="264" mi="0" ci="6" mb="0" cb="0"/><line nr="265" mi="0" ci="4" mb="0" cb="0"/><line nr="266" mi="0" ci="3" mb="0" cb="0"/><line nr="267" mi="4" ci="3" mb="1" cb="1"/><line nr="268" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="142" covered="343"/><counter type="BRANCH" missed="37" covered="37"/><counter type="LINE" missed="22" covered="82"/><counter type="COMPLEXITY" missed="30" covered="26"/><counter type="METHOD" missed="2" covered="17"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="PathFinderService.java"><line nr="75" mi="0" ci="2" mb="0" cb="0"/><line nr="76" mi="0" ci="3" mb="0" cb="0"/><line nr="77" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="5" mb="0" cb="0"/><line nr="79" mi="0" ci="7" mb="0" cb="0"/><line nr="80" mi="0" ci="5" mb="0" cb="0"/><line nr="81" mi="0" ci="5" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="3" mb="0" cb="0"/><line nr="85" mi="0" ci="1" mb="0" cb="0"/><line nr="86" mi="0" ci="2" mb="0" cb="0"/><line nr="87" mi="0" ci="3" mb="0" cb="0"/><line nr="89" mi="0" ci="12" mb="0" cb="0"/><line nr="91" mi="0" ci="5" mb="0" cb="0"/><line nr="92" mi="0" ci="10" mb="0" cb="2"/><line nr="93" mi="0" ci="5" mb="2" cb="2"/><line nr="94" mi="1" ci="0" mb="0" cb="0"/><line nr="96" mi="0" ci="17" mb="0" cb="2"/><line nr="97" mi="0" ci="5" mb="2" cb="2"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><line nr="100" mi="0" ci="9" mb="0" cb="0"/><line nr="102" mi="0" ci="1" mb="0" cb="0"/><line nr="104" mi="0" ci="2" mb="0" cb="0"/><line nr="105" mi="0" ci="3" mb="0" cb="0"/><line nr="106" mi="0" ci="3" mb="0" cb="0"/><line nr="107" mi="0" ci="1" mb="0" cb="0"/><line nr="108" mi="0" ci="6" mb="0" cb="0"/><line nr="110" mi="0" ci="7" mb="0" cb="0"/><line nr="111" mi="0" ci="1" mb="0" cb="0"/><line nr="122" mi="0" ci="5" mb="2" cb="2"/><line nr="123" mi="8" ci="0" mb="0" cb="0"/><line nr="126" mi="0" ci="4" mb="0" cb="0"/><line nr="127" mi="0" ci="16" mb="0" cb="2"/><line nr="128" mi="0" ci="5" mb="1" cb="1"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="134" mi="0" ci="6" mb="2" cb="2"/><line nr="135" mi="0" ci="11" mb="0" cb="0"/><line nr="139" mi="0" ci="4" mb="0" cb="0"/><line nr="141" mi="0" ci="4" mb="0" cb="0"/><line nr="142" mi="0" ci="2" mb="0" cb="0"/><line nr="143" mi="0" ci="2" mb="0" cb="0"/><line nr="145" mi="0" ci="11" mb="0" cb="2"/><line nr="146" mi="0" ci="4" mb="0" cb="0"/><line nr="147" mi="0" ci="6" mb="0" cb="0"/><line nr="148" mi="0" ci="2" mb="1" cb="1"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="151" mi="0" ci="6" mb="0" cb="0"/><line nr="152" mi="0" ci="2" mb="1" cb="1"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="155" mi="0" ci="6" mb="0" cb="0"/><line nr="156" mi="0" ci="2" mb="1" cb="1"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="160" mi="0" ci="1" mb="0" cb="0"/><line nr="161" mi="0" ci="6" mb="0" cb="0"/><line nr="162" mi="0" ci="1" mb="0" cb="0"/><line nr="163" mi="0" ci="1" mb="0" cb="0"/><line nr="165" mi="6" ci="0" mb="0" cb="0"/><line nr="166" mi="1" ci="0" mb="0" cb="0"/><line nr="167" mi="0" ci="2" mb="0" cb="0"/><line nr="169" mi="0" ci="4" mb="0" cb="0"/><line nr="170" mi="0" ci="2" mb="0" cb="0"/><line nr="172" mi="0" ci="10" mb="0" cb="2"/><line nr="173" mi="0" ci="6" mb="0" cb="0"/><line nr="174" mi="0" ci="2" mb="1" cb="1"/><line nr="175" mi="0" ci="5" mb="0" cb="0"/><line nr="176" mi="0" ci="5" mb="0" cb="0"/><line nr="177" mi="0" ci="5" mb="0" cb="0"/><line nr="179" mi="0" ci="1" mb="0" cb="0"/><line nr="180" mi="0" ci="1" mb="0" cb="0"/><line nr="182" mi="0" ci="11" mb="0" cb="0"/><line nr="184" mi="0" ci="3" mb="1" cb="1"/><line nr="185" mi="5" ci="0" mb="0" cb="0"/><line nr="188" mi="0" ci="2" mb="0" cb="0"/><line nr="203" mi="0" ci="4" mb="0" cb="0"/><line nr="204" mi="0" ci="4" mb="0" cb="0"/><line nr="205" mi="0" ci="5" mb="0" cb="0"/><line nr="206" mi="0" ci="4" mb="0" cb="0"/><line nr="208" mi="0" ci="5" mb="2" cb="2"/><line nr="209" mi="0" ci="17" mb="0" cb="2"/><line nr="210" mi="0" ci="5" mb="2" cb="2"/><line nr="211" mi="1" ci="0" mb="0" cb="0"/><line nr="213" mi="0" ci="11" mb="0" cb="2"/><line nr="214" mi="0" ci="4" mb="0" cb="0"/><line nr="215" mi="0" ci="5" mb="0" cb="0"/><line nr="217" mi="0" ci="4" mb="0" cb="0"/><line nr="218" mi="0" ci="7" mb="0" cb="0"/><line nr="219" mi="0" ci="7" mb="0" cb="0"/><line nr="220" mi="0" ci="5" mb="0" cb="0"/><line nr="222" mi="0" ci="4" mb="0" cb="0"/><line nr="223" mi="0" ci="5" mb="0" cb="0"/><line nr="225" mi="0" ci="4" mb="0" cb="0"/><line nr="226" mi="0" ci="3" mb="1" cb="1"/><line nr="227" mi="0" ci="11" mb="0" cb="2"/><line nr="228" mi="0" ci="10" mb="0" cb="0"/><line nr="229" mi="0" ci="1" mb="0" cb="0"/><line nr="231" mi="0" ci="5" mb="0" cb="0"/><line nr="232" mi="0" ci="5" mb="0" cb="0"/><line nr="233" mi="0" ci="4" mb="0" cb="0"/><line nr="234" mi="0" ci="1" mb="0" cb="0"/><line nr="238" mi="0" ci="5" mb="0" cb="0"/><line nr="241" mi="0" ci="5" mb="0" cb="0"/><line nr="242" mi="1" ci="0" mb="0" cb="0"/><line nr="243" mi="6" ci="0" mb="0" cb="0"/><line nr="256" mi="0" ci="4" mb="0" cb="0"/><line nr="257" mi="0" ci="16" mb="0" cb="2"/><line nr="258" mi="0" ci="5" mb="2" cb="2"/><line nr="259" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="0" ci="4" mb="0" cb="0"/><line nr="262" mi="0" ci="12" mb="0" cb="0"/><line nr="264" mi="0" ci="2" mb="0" cb="0"/><line nr="276" mi="0" ci="2" mb="0" cb="0"/><line nr="277" mi="0" ci="2" mb="0" cb="0"/><line nr="279" mi="0" ci="11" mb="0" cb="2"/><line nr="280" mi="0" ci="6" mb="1" cb="1"/><line nr="281" mi="1" ci="0" mb="0" cb="0"/><line nr="283" mi="0" ci="3" mb="0" cb="0"/><line nr="284" mi="0" ci="6" mb="0" cb="0"/><line nr="285" mi="0" ci="2" mb="1" cb="1"/><line nr="286" mi="1" ci="0" mb="0" cb="0"/><line nr="288" mi="0" ci="6" mb="0" cb="0"/><line nr="289" mi="0" ci="2" mb="1" cb="1"/><line nr="290" mi="1" ci="0" mb="0" cb="0"/><line nr="293" mi="0" ci="4" mb="0" cb="0"/><line nr="294" mi="0" ci="2" mb="0" cb="0"/><line nr="295" mi="0" ci="1" mb="0" cb="0"/><line nr="297" mi="0" ci="4" mb="1" cb="1"/><line nr="298" mi="0" ci="2" mb="0" cb="0"/><line nr="299" mi="0" ci="2" mb="0" cb="0"/><line nr="301" mi="0" ci="1" mb="0" cb="0"/><line nr="302" mi="0" ci="2" mb="1" cb="1"/><line nr="303" mi="7" ci="0" mb="0" cb="0"/><line nr="305" mi="0" ci="2" mb="0" cb="0"/><line nr="320" mi="0" ci="4" mb="0" cb="0"/><line nr="321" mi="0" ci="4" mb="0" cb="0"/><line nr="322" mi="0" ci="10" mb="0" cb="2"/><line nr="323" mi="0" ci="4" mb="0" cb="0"/><line nr="324" mi="0" ci="5" mb="0" cb="0"/><line nr="325" mi="0" ci="5" mb="1" cb="1"/><line nr="326" mi="7" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="3" ci="0" mb="0" cb="0"/><line nr="330" mi="2" ci="0" mb="0" cb="0"/><line nr="332" mi="4" ci="0" mb="0" cb="0"/><line nr="335" mi="7" ci="0" mb="0" cb="0"/><line nr="336" mi="2" ci="0" mb="0" cb="0"/><line nr="337" mi="4" ci="0" mb="0" cb="0"/><line nr="339" mi="0" ci="1" mb="0" cb="0"/><line nr="340" mi="0" ci="3" mb="1" cb="1"/><line nr="341" mi="0" ci="5" mb="0" cb="0"/><line nr="342" mi="0" ci="5" mb="1" cb="1"/><line nr="343" mi="3" ci="0" mb="0" cb="0"/><line nr="344" mi="4" ci="0" mb="0" cb="0"/><line nr="346" mi="0" ci="7" mb="0" cb="0"/><line nr="348" mi="0" ci="2" mb="0" cb="0"/><line nr="364" mi="0" ci="5" mb="2" cb="2"/><line nr="365" mi="2" ci="0" mb="0" cb="0"/><line nr="367" mi="0" ci="4" mb="0" cb="0"/><line nr="368" mi="0" ci="2" mb="0" cb="0"/><line nr="369" mi="0" ci="2" mb="0" cb="0"/><line nr="371" mi="0" ci="8" mb="0" cb="2"/><line nr="372" mi="0" ci="5" mb="0" cb="0"/><line nr="373" mi="0" ci="6" mb="0" cb="0"/><line nr="374" mi="0" ci="6" mb="0" cb="0"/><line nr="375" mi="0" ci="3" mb="1" cb="1"/><line nr="376" mi="0" ci="8" mb="0" cb="0"/><line nr="377" mi="0" ci="5" mb="1" cb="1"/><line nr="378" mi="5" ci="0" mb="0" cb="0"/><line nr="380" mi="0" ci="1" mb="0" cb="0"/><line nr="381" mi="4" ci="0" mb="0" cb="0"/><line nr="382" mi="5" ci="0" mb="0" cb="0"/><line nr="384" mi="0" ci="5" mb="0" cb="0"/><line nr="385" mi="0" ci="5" mb="0" cb="0"/><line nr="387" mi="0" ci="6" mb="1" cb="1"/><line nr="388" mi="0" ci="6" mb="0" cb="0"/><line nr="389" mi="0" ci="3" mb="0" cb="0"/><line nr="390" mi="0" ci="5" mb="0" cb="0"/><line nr="391" mi="0" ci="2" mb="0" cb="0"/><line nr="392" mi="0" ci="1" mb="0" cb="0"/><line nr="393" mi="3" ci="0" mb="0" cb="0"/><line nr="395" mi="0" ci="9" mb="0" cb="0"/><line nr="398" mi="0" ci="1" mb="0" cb="0"/><line nr="399" mi="0" ci="3" mb="0" cb="0"/><line nr="400" mi="0" ci="4" mb="0" cb="0"/><line nr="401" mi="0" ci="7" mb="0" cb="0"/><line nr="403" mi="0" ci="7" mb="0" cb="0"/><line nr="405" mi="0" ci="7" mb="0" cb="0"/><line nr="417" mi="0" ci="3" mb="1" cb="1"/><line nr="418" mi="2" ci="0" mb="0" cb="0"/><line nr="420" mi="0" ci="2" mb="0" cb="0"/><line nr="421" mi="0" ci="2" mb="0" cb="0"/><line nr="422" mi="0" ci="10" mb="0" cb="2"/><line nr="423" mi="0" ci="6" mb="0" cb="0"/><line nr="424" mi="0" ci="5" mb="0" cb="0"/><line nr="425" mi="0" ci="3" mb="0" cb="0"/><line nr="426" mi="0" ci="1" mb="0" cb="0"/><line nr="427" mi="0" ci="8" mb="0" cb="0"/><line nr="428" mi="0" ci="2" mb="0" cb="0"/><line nr="441" mi="0" ci="4" mb="0" cb="0"/><line nr="442" mi="0" ci="4" mb="2" cb="2"/><line nr="443" mi="6" ci="0" mb="0" cb="0"/><line nr="445" mi="0" ci="4" mb="0" cb="0"/><line nr="446" mi="0" ci="2" mb="0" cb="0"/><line nr="447" mi="0" ci="2" mb="0" cb="0"/><line nr="448" mi="0" ci="9" mb="1" cb="3"/><line nr="450" mi="0" ci="5" mb="0" cb="0"/><line nr="451" mi="0" ci="4" mb="1" cb="1"/><line nr="452" mi="1" ci="0" mb="0" cb="0"/><line nr="454" mi="0" ci="4" mb="0" cb="0"/><line nr="455" mi="0" ci="2" mb="0" cb="0"/><line nr="456" mi="0" ci="1" mb="0" cb="0"/><line nr="457" mi="0" ci="1" mb="0" cb="0"/><line nr="458" mi="0" ci="10" mb="1" cb="1"/><line nr="459" mi="4" ci="0" mb="0" cb="0"/><line nr="461" mi="0" ci="11" mb="0" cb="0"/><line nr="474" mi="0" ci="1" mb="0" cb="0"/><line nr="475" mi="0" ci="2" mb="0" cb="0"/><line nr="476" mi="0" ci="10" mb="0" cb="0"/><line nr="477" mi="0" ci="4" mb="0" cb="0"/><line nr="478" mi="0" ci="10" mb="1" cb="1"/><line nr="479" mi="0" ci="6" mb="0" cb="0"/><line nr="480" mi="0" ci="4" mb="1" cb="1"/><line nr="481" mi="0" ci="2" mb="0" cb="0"/><line nr="483" mi="1" ci="0" mb="0" cb="0"/><line nr="484" mi="2" ci="0" mb="0" cb="0"/><line nr="497" mi="0" ci="4" mb="0" cb="0"/><line nr="498" mi="0" ci="3" mb="0" cb="0"/><line nr="499" mi="0" ci="4" mb="0" cb="0"/><line nr="500" mi="0" ci="7" mb="0" cb="2"/><line nr="501" mi="0" ci="6" mb="0" cb="0"/><line nr="502" mi="0" ci="7" mb="0" cb="0"/><line nr="504" mi="0" ci="2" mb="0" cb="0"/><line nr="515" mi="4" ci="7" mb="1" cb="1"/><line nr="516" mi="6" ci="0" mb="2" cb="0"/><line nr="517" mi="2" ci="0" mb="0" cb="0"/><line nr="519" mi="1" ci="0" mb="0" cb="0"/><line nr="520" mi="0" ci="2" mb="0" cb="0"/><line nr="530" mi="0" ci="9" mb="0" cb="0"/><line nr="538" mi="0" ci="9" mb="0" cb="2"/><line nr="539" mi="0" ci="8" mb="0" cb="0"/><line nr="541" mi="0" ci="1" mb="0" cb="0"/><line nr="548" mi="0" ci="12" mb="0" cb="0"/><counter type="INSTRUCTION" missed="138" covered="955"/><counter type="BRANCH" missed="47" covered="75"/><counter type="LINE" missed="43" covered="199"/><counter type="COMPLEXITY" missed="46" covered="34"/><counter type="METHOD" missed="1" covered="18"/><counter type="CLASS" missed="0" covered="3"/></sourcefile><sourcefile name="GpsCalculationService.java"><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="47" mi="0" ci="6" mb="0" cb="0"/><line nr="48" mi="0" ci="6" mb="0" cb="0"/><line nr="50" mi="0" ci="9" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="4" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="5" mb="0" cb="0"/><line nr="72" mi="0" ci="8" mb="0" cb="2"/><line nr="86" mi="0" ci="3" mb="0" cb="0"/><line nr="87" mi="0" ci="8" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="6" mb="0" cb="0"/><line nr="105" mi="0" ci="3" mb="0" cb="2"/><line nr="107" mi="0" ci="5" mb="0" cb="0"/><line nr="109" mi="0" ci="6" mb="0" cb="0"/><line nr="123" mi="0" ci="2" mb="0" cb="0"/><line nr="124" mi="0" ci="3" mb="0" cb="0"/><line nr="125" mi="0" ci="7" mb="0" cb="2"/><line nr="126" mi="0" ci="5" mb="0" cb="0"/><line nr="127" mi="0" ci="9" mb="0" cb="0"/><line nr="129" mi="0" ci="6" mb="0" cb="2"/><line nr="130" mi="0" ci="2" mb="0" cb="0"/><line nr="134" mi="0" ci="6" mb="0" cb="2"/><line nr="135" mi="0" ci="2" mb="0" cb="0"/><line nr="136" mi="0" ci="2" mb="0" cb="0"/><line nr="137" mi="0" ci="2" mb="0" cb="0"/><line nr="141" mi="0" ci="12" mb="0" cb="4"/><line nr="142" mi="0" ci="1" mb="0" cb="0"/><line nr="146" mi="0" ci="6" mb="1" cb="1"/><line nr="147" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="0" ci="1" mb="0" cb="0"/><line nr="151" mi="0" ci="20" mb="0" cb="0"/><line nr="153" mi="0" ci="5" mb="0" cb="2"/><line nr="154" mi="0" ci="1" mb="0" cb="0"/><line nr="160" mi="0" ci="9" mb="0" cb="2"/><line nr="175" mi="0" ci="1" mb="0" cb="0"/><line nr="176" mi="0" ci="11" mb="0" cb="0"/><line nr="177" mi="0" ci="12" mb="0" cb="0"/><line nr="178" mi="0" ci="5" mb="0" cb="2"/><line nr="179" mi="0" ci="2" mb="0" cb="0"/><line nr="182" mi="0" ci="1" mb="0" cb="0"/><line nr="183" mi="0" ci="21" mb="1" cb="3"/><line nr="184" mi="0" ci="1" mb="0" cb="0"/><line nr="185" mi="0" ci="21" mb="0" cb="4"/><line nr="187" mi="0" ci="8" mb="0" cb="4"/><counter type="INSTRUCTION" missed="10" covered="260"/><counter type="BRANCH" missed="2" covered="32"/><counter type="LINE" missed="3" covered="42"/><counter type="COMPLEXITY" missed="3" covered="22"/><counter type="METHOD" missed="1" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="309" covered="1690"/><counter type="BRANCH" missed="93" covered="153"/><counter type="LINE" missed="73" covered="356"/><counter type="COMPLEXITY" missed="84" covered="90"/><counter type="METHOD" missed="4" covered="47"/><counter type="CLASS" missed="0" covered="6"/></package><package name="io/github/js0ny/ilp_coursework/controller"><class name="io/github/js0ny/ilp_coursework/controller/MapMetaController" sourcefilename="MapMetaController.java"><method name="&lt;init&gt;" desc="(Lio/github/js0ny/ilp_coursework/service/DroneInfoService;)V" line="23"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getRestrictedAreas" desc="()Ljava/util/List;" line="29"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getServicePoints" desc="()Ljava/util/List;" line="35"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="19"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="24"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><class name="io/github/js0ny/ilp_coursework/controller/DroneController" sourcefilename="DroneController.java"><method name="&lt;init&gt;" desc="(Lio/github/js0ny/ilp_coursework/service/DroneInfoService;Lio/github/js0ny/ilp_coursework/service/DroneAttrComparatorService;Lio/github/js0ny/ilp_coursework/service/PathFinderService;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getDronesWithCoolingCapability" desc="(Z)Ljava/util/List;" line="62"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getDroneDetail" desc="(Ljava/lang/String;)Lorg/springframework/http/ResponseEntity;" line="76"><counter type="INSTRUCTION" missed="0" covered="20"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getIdByAttrMap" desc="(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;" line="96"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getIdByAttrMapPost" desc="([Lio/github/js0ny/ilp_coursework/data/request/AttrQueryRequest;)Ljava/util/List;" line="102"><counter type="INSTRUCTION" missed="2" covered="15"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="queryAvailableDrones" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Ljava/util/List;" line="109"><counter type="INSTRUCTION" missed="2" covered="15"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="calculateDeliveryPath" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Lio/github/js0ny/ilp_coursework/data/response/DeliveryPathResponse;" line="116"><counter type="INSTRUCTION" missed="2" covered="15"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="calculateDeliveryPathAsGeoJson" desc="([Lio/github/js0ny/ilp_coursework/data/request/MedDispatchRecRequest;)Ljava/lang/String;" line="123"><counter type="INSTRUCTION" missed="2" covered="15"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="28"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="8" covered="117"/><counter type="BRANCH" missed="4" covered="4"/><counter type="LINE" missed="0" covered="28"/><counter type="COMPLEXITY" missed="4" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="1"/></class><class name="io/github/js0ny/ilp_coursework/controller/ApiController" sourcefilename="ApiController.java"><method name="&lt;init&gt;" desc="(Lio/github/js0ny/ilp_coursework/service/GpsCalculationService;)V" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUid" desc="()Ljava/lang/String;" line="52"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getDistance" desc="(Lio/github/js0ny/ilp_coursework/data/request/DistanceRequest;)D" line="64"><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getIsCloseTo" desc="(Lio/github/js0ny/ilp_coursework/data/request/DistanceRequest;)Z" line="79"><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getNextPosition" desc="(Lio/github/js0ny/ilp_coursework/data/request/MovementRequest;)Lio/github/js0ny/ilp_coursework/data/common/LngLat;" line="94"><counter type="INSTRUCTION" missed="0" covered="20"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getIsInRegion" desc="(Lio/github/js0ny/ilp_coursework/data/request/RegionCheckRequest;)Z" line="108"><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="30"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="86"/><counter type="LINE" missed="0" covered="22"/><counter type="COMPLEXITY" missed="0" covered="7"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="ApiController.java"><line nr="30" mi="0" ci="4" mb="0" cb="0"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="3" mb="0" cb="0"/><line nr="43" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="3" mb="0" cb="0"/><line nr="53" mi="0" ci="2" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="65" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="6" mb="0" cb="0"/><line nr="79" mi="0" ci="3" mb="0" cb="0"/><line nr="80" mi="0" ci="3" mb="0" cb="0"/><line nr="81" mi="0" ci="5" mb="0" cb="0"/><line nr="82" mi="0" ci="6" mb="0" cb="0"/><line nr="94" mi="0" ci="3" mb="0" cb="0"/><line nr="95" mi="0" ci="6" mb="0" cb="0"/><line nr="96" mi="0" ci="5" mb="0" cb="0"/><line nr="97" mi="0" ci="6" mb="0" cb="0"/><line nr="108" mi="0" ci="3" mb="0" cb="0"/><line nr="109" mi="0" ci="3" mb="0" cb="0"/><line nr="110" mi="0" ci="5" mb="0" cb="0"/><line nr="111" mi="0" ci="6" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="86"/><counter type="LINE" missed="0" covered="22"/><counter type="COMPLEXITY" missed="0" covered="7"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="MapMetaController.java"><line nr="19" mi="0" ci="4" mb="0" cb="0"/><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="1" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="4" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="24"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="DroneController.java"><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="47" mi="0" ci="3" mb="0" cb="0"/><line nr="48" mi="0" ci="3" mb="0" cb="0"/><line nr="49" mi="0" ci="3" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="62" mi="0" ci="5" mb="0" cb="0"/><line nr="63" mi="0" ci="5" mb="0" cb="0"/><line nr="76" mi="0" ci="4" mb="0" cb="0"/><line nr="77" mi="0" ci="5" mb="0" cb="0"/><line nr="78" mi="0" ci="3" mb="0" cb="0"/><line nr="79" mi="0" ci="1" mb="0" cb="0"/><line nr="80" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="3" mb="0" cb="0"/><line nr="96" mi="0" ci="5" mb="0" cb="0"/><line nr="97" mi="0" ci="6" mb="0" cb="0"/><line nr="102" mi="2" ci="5" mb="1" cb="1"/><line nr="103" mi="0" ci="5" mb="0" cb="0"/><line nr="104" mi="0" ci="5" mb="0" cb="0"/><line nr="109" mi="2" ci="5" mb="1" cb="1"/><line nr="110" mi="0" ci="5" mb="0" cb="0"/><line nr="111" mi="0" ci="5" mb="0" cb="0"/><line nr="116" mi="2" ci="5" mb="1" cb="1"/><line nr="117" mi="0" ci="5" mb="0" cb="0"/><line nr="118" mi="0" ci="5" mb="0" cb="0"/><line nr="123" mi="2" ci="5" mb="1" cb="1"/><line nr="124" mi="0" ci="5" mb="0" cb="0"/><line nr="125" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="8" covered="117"/><counter type="BRANCH" missed="4" covered="4"/><counter type="LINE" missed="0" covered="28"/><counter type="COMPLEXITY" missed="4" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="8" covered="227"/><counter type="BRANCH" missed="4" covered="4"/><counter type="LINE" missed="0" covered="58"/><counter type="COMPLEXITY" missed="4" covered="20"/><counter type="METHOD" missed="0" covered="20"/><counter type="CLASS" missed="0" covered="3"/></package><package name="io/github/js0ny/ilp_coursework/exception"><class name="io/github/js0ny/ilp_coursework/exception/GlobalExceptionHandler" sourcefilename="GlobalExceptionHandler.java"><method name="&lt;init&gt;" desc="()V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="handleHttpMessageNotReadable" desc="(Lorg/springframework/http/converter/HttpMessageNotReadableException;)Ljava/util/Map;" line="26"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="handleIllegalArgument" desc="(Ljava/lang/IllegalArgumentException;)Ljava/util/Map;" line="33"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="handleNullPointerException" desc="(Ljava/lang/Exception;)Ljava/util/Map;" line="42"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="handleGeneralException" desc="(Ljava/lang/Exception;)Ljava/util/Map;" line="49"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="19"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="51"/><counter type="LINE" missed="0" covered="14"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="6"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="GlobalExceptionHandler.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="19" mi="0" ci="4" mb="0" cb="0"/><line nr="20" mi="0" ci="6" mb="0" cb="0"/><line nr="21" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="1" mb="0" cb="0"/><line nr="34" mi="0" ci="6" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="42" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="51"/><counter type="LINE" missed="0" covered="14"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="6"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="0" covered="51"/><counter type="LINE" missed="0" covered="14"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="6"/><counter type="CLASS" missed="0" covered="1"/></package><counter type="INSTRUCTION" missed="317" covered="1968"/><counter type="BRANCH" missed="97" covered="157"/><counter type="LINE" missed="73" covered="428"/><counter type="COMPLEXITY" missed="88" covered="116"/><counter type="METHOD" missed="4" covered="73"/><counter type="CLASS" missed="0" covered="10"/></report>