1+ using NUnit . Framework ;
2+ using static Box2D . NET . B2AABBs ;
3+
4+ namespace Box2D . NET . Test ;
5+
6+ public class B2AABBTests
7+ {
8+ [ Test ]
9+ public void Test_b2Perimeter ( )
10+ {
11+ // zero
12+ {
13+ B2AABB aabb = new B2AABB ( ) ;
14+ aabb . lowerBound = new B2Vec2 ( 1.0f , 1.0f ) ;
15+ aabb . upperBound = new B2Vec2 ( 1.0f , 1.0f ) ;
16+
17+ float result = b2Perimeter ( aabb ) ;
18+ Assert . That ( result , Is . EqualTo ( 0.0f ) ) ;
19+ }
20+
21+ {
22+ B2AABB aabb = new B2AABB ( ) ;
23+ aabb . lowerBound = new B2Vec2 ( 0.0f , 0.0f ) ;
24+ aabb . upperBound = new B2Vec2 ( 3.0f , 4.0f ) ;
25+
26+ float result = b2Perimeter ( aabb ) ;
27+
28+ Assert . That ( result , Is . EqualTo ( 14.0f ) ) ;
29+ }
30+
31+ {
32+ B2AABB aabb = new B2AABB ( ) ;
33+ aabb . lowerBound = new B2Vec2 ( - 2.0f , - 2.0f ) ;
34+ aabb . upperBound = new B2Vec2 ( 2.0f , 3.0f ) ;
35+
36+ float result = b2Perimeter ( aabb ) ;
37+ Assert . That ( result , Is . EqualTo ( 18.0f ) ) ;
38+ }
39+
40+ {
41+ B2AABB aabb = new B2AABB ( ) ;
42+ aabb . lowerBound = new B2Vec2 ( 0.0f , 0.0f ) ;
43+ aabb . upperBound = new B2Vec2 ( float . MaxValue , float . MaxValue ) ;
44+
45+ float result = b2Perimeter ( aabb ) ;
46+
47+ Assert . That ( result , Is . EqualTo ( float . PositiveInfinity ) ) ;
48+ }
49+
50+ {
51+ B2AABB aabb = new B2AABB ( ) ;
52+ aabb . lowerBound = new B2Vec2 ( 0.0f , 0.0f ) ;
53+ aabb . upperBound = new B2Vec2 ( float . MinValue , float . MinValue ) ;
54+
55+ float result = b2Perimeter ( aabb ) ;
56+
57+ Assert . That ( result , Is . EqualTo ( 4 * float . MinValue ) ) ;
58+ }
59+ }
60+
61+ [ Test ]
62+ public void Test_b2EnlargeAABB ( )
63+ {
64+ // enlarge
65+ {
66+ var a = new B2AABB ( ) ;
67+ a . lowerBound = new B2Vec2 ( 0 , 0 ) ;
68+ a . upperBound = new B2Vec2 ( 1 , 1 ) ;
69+
70+ var b = new B2AABB ( ) ;
71+ b . lowerBound = new B2Vec2 ( - 1 , - 1 ) ;
72+ b . upperBound = new B2Vec2 ( 2 , 2 ) ;
73+
74+ var result = b2EnlargeAABB ( ref a , b ) ;
75+
76+ Assert . That ( result ) ;
77+ Assert . That ( a . lowerBound , Is . EqualTo ( new B2Vec2 ( - 1 , - 1 ) ) ) ;
78+ Assert . That ( a . upperBound , Is . EqualTo ( new B2Vec2 ( 2 , 2 ) ) ) ;
79+ }
80+
81+ // no enlarge
82+ {
83+ var a = new B2AABB ( ) ;
84+ a . lowerBound = new B2Vec2 ( 0 , 0 ) ;
85+ a . upperBound = new B2Vec2 ( 5 , 5 ) ;
86+
87+ var b = new B2AABB ( ) ;
88+ b . lowerBound = new B2Vec2 ( 3 , 2 ) ;
89+ b . upperBound = new B2Vec2 ( 4 , 5 ) ;
90+
91+ var result = b2EnlargeAABB ( ref a , b ) ;
92+
93+ Assert . That ( ! result ) ;
94+ Assert . That ( a . lowerBound , Is . EqualTo ( new B2Vec2 ( 0 , 0 ) ) ) ;
95+ Assert . That ( a . upperBound , Is . EqualTo ( new B2Vec2 ( 5 , 5 ) ) ) ;
96+ }
97+ }
98+ }
0 commit comments