< Summary

Class:Coordinates2
Assembly:bamlab.micromissiles
File(s):/github/workspace/Assets/Scripts/Utils/Coordinates2.cs
Covered lines:10
Uncovered lines:6
Coverable lines:16
Total lines:26
Line coverage:62.5% (10 of 16)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:4
Method coverage:50% (2 of 4)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ConvertCartesianToPolar(...)0%110100%
ConvertCartesianToPolar(...)0%2100%
ConvertPolarToCartesian(...)0%110100%
ConvertPolarToCartesian(...)0%2100%

File(s)

/github/workspace/Assets/Scripts/Utils/Coordinates2.cs

#LineLine coverage
 1using UnityEngine;
 2
 3// Utility functions for 2D coordinates.
 4// In Cartesian coordinates, the x-axis points right, and the y-axis points up. The coordinates are
 5// given by (x, y).
 6// In polar coordinates, the angle is measured in degrees from the x-axis counterclockwise to the
 7// y-axis. The coordinates are given by (r, theta).
 8public static class Coordinates2 {
 49  public static Vector2 ConvertCartesianToPolar(in Vector2 cartesian) {
 410    float r = cartesian.magnitude;
 411    float theta = Mathf.Atan2(cartesian.y, cartesian.x) * Mathf.Rad2Deg;
 412    return new Vector2(r, theta);
 413  }
 014  public static Vector2 ConvertCartesianToPolar(float x, float y) {
 015    return ConvertCartesianToPolar(new Vector2(x, y));
 016  }
 17
 1018  public static Vector2 ConvertPolarToCartesian(in Vector2 polar) {
 1019    float x = polar.x * Mathf.Cos(polar.y * Mathf.Deg2Rad);
 1020    float y = polar.x * Mathf.Sin(polar.y * Mathf.Deg2Rad);
 1021    return new Vector2(x, y);
 1022  }
 023  public static Vector2 ConvertPolarToCartesian(float r, float theta) {
 024    return ConvertPolarToCartesian(new Vector2(r, theta));
 025  }
 26}