Skip to content

Commit 8ff6f3a

Browse files
committed
refactoring editor tests and docs
1 parent e9a67c4 commit 8ff6f3a

8 files changed

+187
-167
lines changed
+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
using NUnit.Framework;
2+
using UnityEngine;
3+
using AWSIM;
4+
using UnityEngine.TestTools.Utils;
5+
6+
public class GnssSensorTest
7+
{
8+
FloatEqualityComparer floatComparer;
9+
Vector3EqualityComparer v3Comparer;
10+
11+
[OneTimeSetUp]
12+
public void OneTimeSetUp()
13+
{
14+
floatComparer = new FloatEqualityComparer(10e-6f);
15+
v3Comparer = new Vector3EqualityComparer(10e-6f);
16+
}
17+
18+
[Test]
19+
public void MgrsZero()
20+
{
21+
bool dataReceived = false;
22+
GameObject go = new GameObject();
23+
var sensor = go.AddComponent<GnssSensor>();
24+
sensor.OutputHz = 1;
25+
go.AddComponent<Environment>();
26+
27+
sensor.OnOutputData += (GnssSensor.OutputData data) =>
28+
{
29+
dataReceived = true;
30+
Assert.That(data.MgrsPosition, Is.EqualTo(Vector3.zero).Using(v3Comparer));
31+
};
32+
33+
sensor.Call("Start");
34+
sensor.SetPrivateFieldValue<float>("timer", 1.0f);
35+
sensor.Call("FixedUpdate");
36+
37+
Assert.IsTrue(dataReceived);
38+
UnityEngine.Object.DestroyImmediate(go);
39+
}
40+
41+
static Vector3[] gnssMgrsNonZeroValues = new Vector3[] {
42+
Vector3.one,
43+
new Vector3(-1.0f, 2.0f, 0.0f),
44+
Vector3.up
45+
};
46+
47+
[Test]
48+
public void MgrsNonZero([ValueSource("gnssMgrsNonZeroValues")] Vector3 value)
49+
{
50+
bool dataReceived = false;
51+
GameObject go = new GameObject();
52+
var sensor = go.AddComponent<GnssSensor>();
53+
var env = go.AddComponent<Environment>();
54+
env.SetPrivateFieldValue<Vector3>("mgrsOffsetPosition", value);
55+
56+
sensor.OnOutputData += (GnssSensor.OutputData data) =>
57+
{
58+
dataReceived = true;
59+
Assert.That(data.MgrsPosition, Is.EqualTo(value).Using(v3Comparer));
60+
};
61+
62+
sensor.Call("Start");
63+
sensor.SetPrivateFieldValue<float>("timer", 1.0f);
64+
sensor.Call("FixedUpdate");
65+
66+
Assert.IsTrue(dataReceived);
67+
UnityEngine.Object.DestroyImmediate(go);
68+
}
69+
70+
public static object[] gnssTranslateCases =
71+
{
72+
new object[] { new Vector3(1.0f, 0.0f, 1.0f), new Vector3(1.0f, -1.0f, 0.0f) },
73+
new object[] { new Vector3(-1.0f, 0.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f) },
74+
new object[] { new Vector3(-1.0f, -1.0f, -1.0f), new Vector3(-1.0f, 1.0f, -1.0f) },
75+
};
76+
[TestCaseSource(nameof(gnssTranslateCases))]
77+
public void Translate(Vector3 translate, Vector3 expectedResult)
78+
{
79+
bool dataReceived = false;
80+
GameObject go = new GameObject();
81+
var sensor = go.AddComponent<GnssSensor>();
82+
sensor.OutputHz = 1;
83+
var env = go.AddComponent<Environment>();
84+
85+
go.transform.Translate(translate);
86+
87+
sensor.OnOutputData += (GnssSensor.OutputData data) =>
88+
{
89+
dataReceived = true;
90+
Assert.That(data.MgrsPosition, Is.EqualTo(expectedResult).Using(v3Comparer));
91+
};
92+
93+
sensor.Call("Start");
94+
sensor.SetPrivateFieldValue<float>("timer", 1.0f);
95+
sensor.Call("FixedUpdate");
96+
97+
Assert.IsTrue(dataReceived);
98+
UnityEngine.Object.DestroyImmediate(go);
99+
}
100+
}

Assets/Tests/EditMode/SensorsEditTests.cs.meta Assets/Tests/EditMode/GnssSensorTest.cs.meta

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
using NUnit.Framework;
2+
using System.Collections;
3+
using System.Collections.Generic;
4+
using UnityEngine;
5+
using UnityEngine.TestTools.Utils;
6+
using AWSIM;
7+
8+
public class ImuSensorTest
9+
{
10+
FloatEqualityComparer floatComparer;
11+
Vector3EqualityComparer v3Comparer;
12+
13+
[OneTimeSetUp]
14+
public void OneTimeSetUp()
15+
{
16+
floatComparer = new FloatEqualityComparer(10e-6f);
17+
v3Comparer = new Vector3EqualityComparer(10e-6f);
18+
}
19+
20+
[Test]
21+
public void Gravity()
22+
{
23+
bool dataReceived = false;
24+
GameObject go = new GameObject();
25+
var sensor = go.AddComponent<ImuSensor>();
26+
sensor.EnableGravity = true;
27+
28+
sensor.OnOutputData += (ImuSensor.OutputData data) => {
29+
dataReceived = true;
30+
Assert.That(data.LinearAcceleration.y, Is.EqualTo(Physics.gravity.y).Using(floatComparer));
31+
};
32+
33+
sensor.Call("Start");
34+
sensor.SetPrivateFieldValue<float>("timer", 1.0f);
35+
sensor.Call("FixedUpdate");
36+
37+
Assert.IsTrue(dataReceived);
38+
UnityEngine.Object.DestroyImmediate(go);
39+
}
40+
41+
[Test]
42+
public void NoGravity()
43+
{
44+
bool dataReceived = false;
45+
GameObject go = new GameObject();
46+
var sensor = go.AddComponent<ImuSensor>();
47+
sensor.EnableGravity = false;
48+
49+
sensor.OnOutputData += (ImuSensor.OutputData data) => {
50+
dataReceived = true;
51+
Assert.That(data.LinearAcceleration, Is.EqualTo(Vector3.zero).Using(v3Comparer));
52+
};
53+
54+
sensor.Call("Start");
55+
sensor.SetPrivateFieldValue<float>("timer", 1.0f);
56+
sensor.Call("FixedUpdate");
57+
58+
Assert.IsTrue(dataReceived);
59+
UnityEngine.Object.DestroyImmediate(go);
60+
}
61+
}

Assets/Tests/EditMode/ImuSensorTest.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Tests/EditMode/SensorsEditTests.cs

-155
This file was deleted.

Assets/Tests/EditMode/EgoEditTests.cs Assets/Tests/EditMode/VehicleRos2InputTest.cs

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
using NUnit.Framework;
22
using AWSIM;
3-
43
using autoware_auto_vehicle_msgs.msg;
54

6-
namespace Ego
5+
public class VehicleRos2InputTest
76
{
87
public class TurnSignalInput
98
{
109
[OneTimeSetUp]
11-
public void OneTimeSetUp() {
10+
public void OneTimeSetUp()
11+
{
1212
// ROS 2 Unity handler is required to load ROS 2 message assemblies
1313
var ros2UnityCore = new ROS2.ROS2UnityCore();
1414
}
@@ -23,7 +23,7 @@ public void OneTimeSetUp() {
2323
[TestCaseSource(nameof(ros2UnityHazardTestCases))]
2424
public void Ros2Unity(byte light, Vehicle.TurnSignal result)
2525
{
26-
var command = new TurnIndicatorsCommand() {Command = light};
26+
var command = new TurnIndicatorsCommand() { Command = light };
2727
Assert.AreEqual(result, VehicleROS2Utility.RosToUnityTurnSignal(command));
2828
}
2929

@@ -44,7 +44,8 @@ public void Unity2Ros(Vehicle.TurnSignal signal, byte result)
4444
public class GearsInput
4545
{
4646
[OneTimeSetUp]
47-
public void OneTimeSetUp() {
47+
public void OneTimeSetUp()
48+
{
4849
// ROS 2 Unity handler is required to load ROS 2 message assemblies
4950
var ros2UnityCore = new ROS2.ROS2UnityCore();
5051
ros2UnityCore.DestroyNow();
@@ -62,7 +63,7 @@ public void OneTimeSetUp() {
6263
[TestCaseSource(nameof(ros2UnityGearTestCases))]
6364
public void Ros2Unity(byte gear, Vehicle.Shift result)
6465
{
65-
var command = new GearCommand() {Command = gear};
66+
var command = new GearCommand() { Command = gear };
6667
Assert.AreEqual(result, VehicleROS2Utility.RosToUnityShift(command));
6768
}
6869

@@ -79,5 +80,4 @@ public void Unity2Ros(Vehicle.Shift gear, byte result)
7980
Assert.AreEqual(VehicleROS2Utility.UnityToRosShift(gear), result);
8081
}
8182
}
82-
83-
}
83+
}

0 commit comments

Comments
 (0)