< Summary

Class:HierarchicalBaseTests
Assembly:bamlab.test.editmode
File(s):/github/workspace/Assets/Tests/EditMode/HierarchicalBaseTests.cs
Covered lines:0
Uncovered lines:83
Coverable lines:83
Total lines:128
Line coverage:0% (0 of 83)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:14
Method coverage:0% (0 of 14)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FixedHierarchical(...)0%2100%
GetPosition()0%2100%
GetVelocity()0%2100%
Target_SetAndGet_WorksCorrectly()0%2100%
TargetModel_SetAndGet_WorksCorrectly()0%2100%
Position_ReturnsMeanOfSubHierarchicals()0%2100%
Position_WithNoSubHierarchicals_IsZero()0%2100%
Velocity_ReturnsMeanOfSubHierarchicals()0%2100%
Velocity_WithNoSubHierarchicals_IsZero()0%2100%
Speed_ReturnsMagnitudeOfVelocity()0%2100%
AddSubHierarchical_AddsCorrectly()0%2100%
AddSubHierarchical_DoesNotAddDuplicates()0%2100%
RemoveSubHierarchical_RemovesCorrectly()0%2100%
RemoveSubHierarchical_DoesNotRemoveNonExisting()0%2100%

File(s)

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

#LineLine coverage
 1using NUnit.Framework;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5public class HierarchicalBaseTests {
 6  private const float _epsilon = 1e-3f;
 7
 8  private class FixedHierarchical : HierarchicalBase {
 9    private Vector3 _position;
 10    private Vector3 _velocity;
 11
 012    public FixedHierarchical(in Vector3 position, in Vector3 velocity) {
 013      _position = position;
 014      _velocity = velocity;
 015    }
 16
 017    protected override Vector3 GetPosition() {
 018      return _position;
 019    }
 020    protected override Vector3 GetVelocity() {
 021      return _velocity;
 022    }
 23  }
 24
 25  [Test]
 026  public void Target_SetAndGet_WorksCorrectly() {
 027    var parent = new HierarchicalBase();
 028    var target = new HierarchicalBase();
 029    parent.Target = target;
 030    Assert.AreSame(target, parent.Target);
 031  }
 32
 33  [Test]
 034  public void TargetModel_SetAndGet_WorksCorrectly() {
 035    var parent = new HierarchicalBase();
 036    var model = new HierarchicalBase();
 037    parent.TargetModel = model;
 038    Assert.AreSame(model, parent.TargetModel);
 039  }
 40
 41  [Test]
 042  public void Position_ReturnsMeanOfSubHierarchicals() {
 043    var parent = new HierarchicalBase();
 044    var child1 = new FixedHierarchical(new Vector3(2, 0, 0), new Vector3(2, 1, 1));
 045    parent.AddSubHierarchical(child1);
 046    var child2 = new FixedHierarchical(new Vector3(-1, 2, 3), new Vector3(1, -2, 0));
 047    parent.AddSubHierarchical(child2);
 48
 049    Assert.AreEqual(new Vector3(0.5f, 1f, 1.5f), parent.Position);
 050  }
 51
 52  [Test]
 053  public void Position_WithNoSubHierarchicals_IsZero() {
 054    var parent = new HierarchicalBase();
 055    Assert.AreEqual(Vector3.zero, parent.Position);
 056  }
 57
 58  [Test]
 059  public void Velocity_ReturnsMeanOfSubHierarchicals() {
 060    var parent = new HierarchicalBase();
 061    var child1 = new FixedHierarchical(new Vector3(2, 0, 0), new Vector3(2, 1, 1));
 062    parent.AddSubHierarchical(child1);
 063    var child2 = new FixedHierarchical(new Vector3(-1, 2, 3), new Vector3(1, -2, 0));
 064    parent.AddSubHierarchical(child2);
 65
 066    Assert.AreEqual(new Vector3(1.5f, -0.5f, 0.5f), parent.Velocity);
 067  }
 68
 69  [Test]
 070  public void Velocity_WithNoSubHierarchicals_IsZero() {
 071    var parent = new HierarchicalBase();
 072    Assert.AreEqual(Vector3.zero, parent.Velocity);
 073  }
 74
 75  [Test]
 076  public void Speed_ReturnsMagnitudeOfVelocity() {
 077    var parent = new HierarchicalBase();
 078    var child = new FixedHierarchical(new Vector3(2, 0, 0), new Vector3(0, -4, 3));
 079    parent.AddSubHierarchical(child);
 80
 081    Assert.AreEqual(5f, parent.Speed, _epsilon);
 082  }
 83
 84  [Test]
 085  public void AddSubHierarchical_AddsCorrectly() {
 086    var parent = new HierarchicalBase();
 087    var child = new HierarchicalBase();
 088    parent.AddSubHierarchical(child);
 89
 090    Assert.AreEqual(1, parent.SubHierarchicals.Count);
 091    Assert.AreSame(child, parent.SubHierarchicals[0]);
 092  }
 93
 94  [Test]
 095  public void AddSubHierarchical_DoesNotAddDuplicates() {
 096    var parent = new HierarchicalBase();
 097    var child = new HierarchicalBase();
 098    parent.AddSubHierarchical(child);
 099    parent.AddSubHierarchical(child);
 100
 0101    Assert.AreEqual(1, parent.SubHierarchicals.Count);
 0102    Assert.AreSame(child, parent.SubHierarchicals[0]);
 0103  }
 104
 105  [Test]
 0106  public void RemoveSubHierarchical_RemovesCorrectly() {
 0107    var parent = new HierarchicalBase();
 0108    var child = new HierarchicalBase();
 109
 0110    parent.AddSubHierarchical(child);
 0111    parent.RemoveSubHierarchical(child);
 112
 0113    Assert.AreEqual(0, parent.SubHierarchicals.Count);
 0114  }
 115
 116  [Test]
 0117  public void RemoveSubHierarchical_DoesNotRemoveNonExisting() {
 0118    var parent = new HierarchicalBase();
 0119    var child1 = new HierarchicalBase();
 0120    var child2 = new HierarchicalBase();
 121
 0122    parent.AddSubHierarchical(child1);
 0123    parent.RemoveSubHierarchical(child2);
 124
 0125    Assert.AreEqual(1, parent.SubHierarchicals.Count);
 0126    Assert.AreSame(child1, parent.SubHierarchicals[0]);
 0127  }
 128}