Skip to content

Commit b7db397

Browse files
committed
PR add unit test for each method
1 parent 4907470 commit b7db397

File tree

2 files changed

+83
-4
lines changed

2 files changed

+83
-4
lines changed

Assets/com.unity.formats.fbx.tests/CustomExtensionsTest.cs

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Collections.Generic;
99
using System.Collections;
1010
using FbxExporters.CustomExtensions;
11+
using Unity.FbxSdk;
1112

1213
namespace FbxExporters.UnitTests
1314
{
@@ -24,15 +25,89 @@ public override void Term ()
2425
}
2526

2627
[Test]
27-
public void MetricDistanceTest()
28+
public void Vector3ExtensionTest()
29+
{
30+
var v3 = new Vector3(1f,2f,3f);
31+
Assert.That(v3.RightHanded(), Is.EqualTo(new Vector3(-1f,2f,3f)));
32+
Assert.That(v3.FbxVector4(), Is.EqualTo(new FbxVector4(1f,2f,3f)));
33+
}
34+
35+
[Test]
36+
public void AnimationCurveExtensionTest()
37+
{
38+
var ac = new AnimationCurve();
39+
ac.Dump();
40+
ac.Dump("hello world");
41+
ac.Dump(keyTimesExpected:new float[]{});
42+
ac.Dump(keyValuesExpected:new float[]{});
43+
ac.Dump(keyTimesExpected:new float[]{}, keyValuesExpected:new float[]{});
44+
}
45+
46+
[Test]
47+
public void FloatExtensionTest()
2848
{
2949
Assert.That(Value1.Meters().ToCentimeters(), Is.EqualTo(100f));
30-
50+
3151
Assert.That(1f.Meters(), Is.EqualTo(100f.Centimeters()));
3252
Assert.That(10f.Millimeters().ToMeters(), Is.EqualTo(1f.Centimeters().ToMeters()).Within(0.00001f));
3353
Assert.That(1f.Centimeters().ToMeters(), Is.EqualTo(10f.Millimeters().ToMeters()).Within(0.00001f));
3454
Assert.That(0.0254f.Meters(), Is.EqualTo(1f.Inches().ToMetric()));
3555
Assert.That(1f.Meters().ToImperial(), Is.EqualTo(39.3701f.Inches()));
3656
}
57+
58+
[Test]
59+
public void ImperialDistanceTest()
60+
{
61+
var one_inch = new ImperialDistance(1f); // 1 inch
62+
var one_foot = new ImperialDistance(12f); // 12 inches
63+
64+
Assert.That(ImperialDistance.Inch, Is.Not.EqualTo(new MetricDistance(1f)));
65+
Assert.That(ImperialDistance.Inch, Is.EqualTo(new ImperialDistance(1f)));
66+
Assert.That(ImperialDistance.Foot, Is.EqualTo(new ImperialDistance(12f)));
67+
68+
Assert.That(one_inch, Is.EqualTo(ImperialDistance.Inch));
69+
Assert.That(one_inch.ToInches(), Is.EqualTo(ImperialDistance.Inch.ToInches()));
70+
Assert.That(one_inch.ToMetric().ToMeters(), Is.EqualTo(0.0254f));
71+
Assert.That(one_inch.ToMeters(), Is.EqualTo(0.0254f));
72+
Assert.That(one_inch.ToInches(), Is.EqualTo(1f));
73+
Assert.That(one_inch.GetHashCode(), Is.GreaterThan(0));
74+
Assert.That(one_inch == ImperialDistance.Inch, Is.True);
75+
Assert.That(one_inch == ImperialDistance.Inch, Is.True);
76+
77+
Assert.That(one_foot, Is.EqualTo(ImperialDistance.Foot));
78+
Assert.That(one_foot!=one_inch, Is.True);
79+
80+
Assert.That(one_inch+one_inch, Is.EqualTo(new ImperialDistance(2f)));
81+
Assert.That(one_inch-one_inch, Is.EqualTo(new ImperialDistance(0f)));
82+
Assert.That(new ImperialDistance(2f)*new ImperialDistance(6f), Is.EqualTo(ImperialDistance.Foot));
83+
Assert.That(ImperialDistance.Foot / ImperialDistance.Inch, Is.EqualTo(ImperialDistance.Foot));
84+
}
85+
86+
[Test]
87+
public void MetricDistanceTest()
88+
{
89+
var one_cm = new MetricDistance(0.01f); // 1 cm
90+
var one_m = new MetricDistance(1f); // 100 cm
91+
92+
Assert.That(MetricDistance.Millimeter, Is.EqualTo(new MetricDistance(0.001f)));
93+
Assert.That(MetricDistance.Centimeter, Is.EqualTo(new MetricDistance(0.01f)));
94+
Assert.That(MetricDistance.Meter, Is.EqualTo(new MetricDistance(1f)));
95+
96+
Assert.That(one_m, Is.EqualTo(MetricDistance.Meter));
97+
Assert.That(one_m.ToMeters(), Is.EqualTo(MetricDistance.Meter.ToMeters()));
98+
Assert.That(one_m.ToImperial().ToInches(), Is.EqualTo(39.3701f));
99+
Assert.That(one_m.ToMeters(), Is.EqualTo(1f));
100+
Assert.That(one_m.GetHashCode(), Is.GreaterThan(0));
101+
Assert.That(one_m == MetricDistance.Meter, Is.True);
102+
Assert.That(one_cm == MetricDistance.Centimeter, Is.True);
103+
104+
Assert.That(one_m, Is.EqualTo(MetricDistance.Meter));
105+
Assert.That(one_m!=one_cm, Is.True);
106+
107+
Assert.That(one_m+one_cm, Is.EqualTo(new MetricDistance(1.01f)));
108+
Assert.That(one_m-one_cm, Is.EqualTo(new MetricDistance(0.99f)));
109+
Assert.That(MetricDistance.Centimeter*MetricDistance.Meter, Is.EqualTo(new MetricDistance(0.01f)));
110+
Assert.That(MetricDistance.Meter / MetricDistance.Centimeter, Is.EqualTo(new MetricDistance(100f)));
111+
}
37112
}
38113
}

Packages/com.unity.formats.fbx/Editor/Scripts/CustomExtensions.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public override bool Equals(object obj) {
9191
public class ImperialDistance {
9292

9393
public static readonly ImperialDistance Inch = new ImperialDistance(1.0f);
94+
public static readonly ImperialDistance Foot = new ImperialDistance(12.0f);
9495

9596
private float _inches;
9697

@@ -174,6 +175,9 @@ public static MetricDistance Centimeters(this float that) {
174175
public static ImperialDistance Inches(this float that) {
175176
return new ImperialDistance(that);
176177
}
178+
public static ImperialDistance Feet(this float that) {
179+
return new ImperialDistance(ImperialDistance.Foot.ToInches() * that);
180+
}
177181
}
178182

179183
//Extension methods must be defined in a static class
@@ -203,11 +207,11 @@ public static class AnimationCurveExtension
203207
// This is an extension method for the AnimationCurve class
204208
// The first parameter takes the "this" modifier
205209
// and specifies the type for which the method is defined.
206-
public static void Dump (this AnimationCurve animCurve, string message, float[] keyTimesExpected = null, float[] keyValuesExpected = null)
210+
public static void Dump (this AnimationCurve animCurve, string message="", float[] keyTimesExpected = null, float[] keyValuesExpected = null)
207211
{
208212
int idx = 0;
209213
foreach (var key in animCurve.keys) {
210-
if (keyTimesExpected != null && keyValuesExpected != null) {
214+
if (keyTimesExpected != null && keyValuesExpected != null && keyTimesExpected.Length==keyValuesExpected.Length) {
211215
Debug.Log (string.Format ("{5} keys[{0}] {1}({3}) {2} ({4})",
212216
idx, key.time, key.value,
213217
keyTimesExpected [idx], keyValuesExpected [idx],

0 commit comments

Comments
 (0)