< Summary

Class:CoordinateUtils
Assembly:HUDUtils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Utils/CoordinateUtils.cs
Covered lines:13
Uncovered lines:0
Coverable lines:13
Total lines:53
Line coverage:100% (13 of 13)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
IsCoordinateInRange(...)0%440100%
GetTextCoordinates(...)0%440100%
HasValidTextCoordinates(...)0%110100%
ParseCoordinatesString(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Utils/CoordinateUtils.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3using UnityEngine.Events;
 4using UnityEngine.EventSystems;
 5using UnityEngine.Serialization;
 6using System.Collections.Generic;
 7using System.Text.RegularExpressions;
 8
 9public class CoordinateUtils
 10{
 11    public const string COORDINATE_MATCH_REGEX = "[-]?\\d{1,3},[-]?\\d{1,3}";
 12    public const int MAX_X_COORDINATE = 163;
 13    public const int MIN_X_COORDINATE = -150;
 14    public const int MAX_Y_COORDINATE = 158;
 15    public const int MIN_Y_COORDINATE = -150;
 16
 17    public static bool IsCoordinateInRange(int x, int y)
 18    {
 1019        return x <= MAX_X_COORDINATE && x >= MIN_X_COORDINATE && y <= MAX_Y_COORDINATE && y >= MIN_Y_COORDINATE;
 20    }
 21
 22    public static List<string> GetTextCoordinates(string text)
 23    {
 1524        Regex filter = new Regex(COORDINATE_MATCH_REGEX);
 1525        List<string> matchingWords = new List<string>();
 17226        foreach (var item in text.Split(' '))
 27        {
 7128            var match = filter.Match(item);
 29            int x;
 30            int y;
 7131            if (match.Success)
 32            {
 1033                Int32.TryParse(item.Split(',')[0], out x);
 1034                Int32.TryParse(item.Split(',')[1], out y);
 35
 1036                if (IsCoordinateInRange(x, y))
 1037                    matchingWords.Add(match.Value);
 38            }
 39        }
 40
 1541        return matchingWords;
 42    }
 43
 44    public static bool HasValidTextCoordinates(string text)
 45    {
 1246        return GetTextCoordinates(text).Count > 0;
 47    }
 48
 49    public static ParcelCoordinates ParseCoordinatesString(string coordinates)
 50    {
 551        return new ParcelCoordinates(Int32.Parse(coordinates.Split(',')[0]), Int32.Parse(coordinates.Split(',')[1]));
 52    }
 53}