< Summary

Class:AgglomerativeClustererTest
Assembly:bamlab.test.editmode
File(s):/github/workspace/Assets/Tests/EditMode/AgglomerativeClustererTest.cs
Covered lines:42
Uncovered lines:0
Coverable lines:42
Total lines:69
Line coverage:100% (42 of 42)
Covered branches:0
Total branches:0
Covered methods:6
Total methods:6
Method coverage:100% (6 of 6)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
GenerateObject(...)0%110100%
AgglomerativeClustererTest()0%110100%
TestSingleCluster()0%110100%
TestMaxSizeOne()0%330100%
TestZeroRadius()0%330100%
TestSmallRadius()0%220100%

File(s)

/github/workspace/Assets/Tests/EditMode/AgglomerativeClustererTest.cs

#LineLine coverage
 1using NUnit.Framework;
 2using System.Collections;
 3using System.Collections.Generic;
 4using System.Linq;
 5using UnityEngine;
 6using UnityEngine.TestTools;
 7
 8public class AgglomerativeClustererTest {
 49  public static GameObject GenerateObject(in Vector3 position) {
 410    GameObject obj = new GameObject();
 411    obj.transform.position = position;
 412    return obj;
 413  }
 14
 115  public static readonly List<GameObject> Objects = new List<GameObject> {
 16    GenerateObject(new Vector3(0, 0, 0)),
 17    GenerateObject(new Vector3(0, 1, 0)),
 18    GenerateObject(new Vector3(0, 1.5f, 0)),
 19    GenerateObject(new Vector3(0, 2.5f, 0)),
 20  };
 21
 22  [Test]
 123  public void TestSingleCluster() {
 124    AgglomerativeClusterer clusterer =
 25        new AgglomerativeClusterer(Objects, maxSize: Objects.Count, maxRadius: Mathf.Infinity);
 126    clusterer.Cluster();
 127    Assert.AreEqual(1, clusterer.Clusters.Count);
 128    Cluster cluster = clusterer.Clusters[0];
 129    Assert.AreEqual(Objects.Count, cluster.Size());
 130    Assert.AreEqual(new Vector3(0, 1.25f, 0), cluster.Centroid());
 131  }
 32
 33  [Test]
 134  public void TestMaxSizeOne() {
 135    AgglomerativeClusterer clusterer =
 36        new AgglomerativeClusterer(Objects, maxSize: 1, maxRadius: Mathf.Infinity);
 137    clusterer.Cluster();
 138    Assert.AreEqual(Objects.Count, clusterer.Clusters.Count);
 1539    foreach (var cluster in clusterer.Clusters) {
 440      Assert.AreEqual(1, cluster.Size());
 441    }
 142  }
 43
 44  [Test]
 145  public void TestZeroRadius() {
 146    AgglomerativeClusterer clusterer =
 47        new AgglomerativeClusterer(Objects, maxSize: Objects.Count, maxRadius: 0);
 148    clusterer.Cluster();
 149    Assert.AreEqual(Objects.Count, clusterer.Clusters.Count);
 1550    foreach (var cluster in clusterer.Clusters) {
 451      Assert.AreEqual(1, cluster.Size());
 452    }
 153  }
 54
 55  [Test]
 156  public void TestSmallRadius() {
 157    AgglomerativeClusterer clusterer =
 58        new AgglomerativeClusterer(Objects, maxSize: Objects.Count, maxRadius: 1);
 159    clusterer.Cluster();
 160    Assert.AreEqual(3, clusterer.Clusters.Count);
 461    List<Cluster> clusters = clusterer.Clusters.OrderBy(cluster => cluster.Coordinates[1]).ToList();
 162    Assert.AreEqual(1, clusters[0].Size());
 163    Assert.AreEqual(new Vector3(0, 0, 0), clusters[0].Coordinates);
 164    Assert.AreEqual(2, clusters[1].Size());
 165    Assert.AreEqual(new Vector3(0, 1.25f, 0), clusters[1].Coordinates);
 166    Assert.AreEqual(1, clusters[2].Size());
 167    Assert.AreEqual(new Vector3(0, 2.5f, 0), clusters[2].Coordinates);
 168  }
 69}