1
+ using System ;
2
+ using NUnit . Framework ;
3
+
4
+ namespace UnitsNet . Tests . net35
5
+ {
6
+ [ TestFixture ]
7
+ public class AngleTests
8
+ {
9
+ private const double Delta = 1E-5 ;
10
+ private readonly Angle _degrees90 = Angle . FromDegrees ( 90 ) ;
11
+
12
+ [ Test ]
13
+ public void DegreesToAngleUnits ( )
14
+ {
15
+ Assert . AreEqual ( Math . PI / 2 , _degrees90 . Radians , Delta ) ;
16
+ Assert . AreEqual ( 100 , _degrees90 . Gradians , Delta ) ;
17
+ }
18
+
19
+ [ Test ]
20
+ public void AngleUnitsRoundTrip ( )
21
+ {
22
+ Assert . AreEqual ( 90 , Angle . FromRadians ( _degrees90 . Radians ) . Degrees , Delta ) ;
23
+ Assert . AreEqual ( 90 , Angle . FromGradians ( _degrees90 . Gradians ) . Degrees , Delta ) ;
24
+ }
25
+
26
+ [ Test ]
27
+ public void ArithmeticOperatorsRoundtrip ( )
28
+ {
29
+ Angle a = Angle . FromDegrees ( 90 ) ;
30
+ Assert . AreEqual ( - 90 , - a . Degrees , Delta ) ;
31
+ Assert . AreEqual ( 180 , ( Angle . FromDegrees ( 270 ) - a ) . Degrees , Delta ) ;
32
+ Assert . AreEqual ( 180 , ( a + a ) . Degrees , Delta ) ;
33
+ Assert . AreEqual ( 900 , ( a * 10 ) . Degrees , Delta ) ;
34
+ Assert . AreEqual ( 900 , ( 10 * a ) . Degrees , Delta ) ;
35
+ Assert . AreEqual ( 18.0 , ( Angle . FromDegrees ( 90 ) / 5 ) . Degrees , Delta ) ;
36
+ Assert . AreEqual ( 18.0 , Angle . FromDegrees ( 90 ) / Angle . FromDegrees ( 5 ) , Delta ) ;
37
+ }
38
+
39
+ [ Test ]
40
+ public void ComparisonOperators ( )
41
+ {
42
+ Angle degrees90 = Angle . FromDegrees ( 90 ) ;
43
+ Angle degrees180 = Angle . FromDegrees ( 180 ) ;
44
+
45
+ Assert . True ( degrees90 < degrees180 ) ;
46
+ Assert . True ( degrees90 <= degrees180 ) ;
47
+ Assert . True ( degrees180 > degrees90 ) ;
48
+ Assert . True ( degrees180 >= degrees90 ) ;
49
+
50
+ Assert . False ( degrees90 > degrees180 ) ;
51
+ Assert . False ( degrees90 >= degrees180 ) ;
52
+ Assert . False ( degrees180 < degrees90 ) ;
53
+ Assert . False ( degrees180 <= degrees90 ) ;
54
+ }
55
+
56
+ [ Test ]
57
+ public void CompareToIsImplemented ( )
58
+ {
59
+ Angle degree = Angle . FromDegrees ( 1 ) ;
60
+ Assert . AreEqual ( 0 , degree . CompareTo ( degree ) ) ;
61
+ Assert . Greater ( degree . CompareTo ( Angle . Zero ) , 0 ) ;
62
+ Assert . Less ( Angle . Zero . CompareTo ( degree ) , 0 ) ;
63
+ }
64
+
65
+ [ Test ]
66
+ [ ExpectedException ( typeof ( ArgumentException ) ) ]
67
+ public void CompareToThrowsOnTypeMismatch ( )
68
+ {
69
+ Angle angle = Angle . FromDegrees ( 90 ) ;
70
+ angle . CompareTo ( new object ( ) ) ;
71
+ }
72
+
73
+ [ Test ]
74
+ [ ExpectedException ( typeof ( ArgumentNullException ) ) ]
75
+ public void CompareToThrowsOnNull ( )
76
+ {
77
+ Angle angle = Angle . FromDegrees ( 90 ) ;
78
+ angle . CompareTo ( null ) ;
79
+ }
80
+
81
+
82
+ [ Test ]
83
+ public void EqualityOperators ( )
84
+ {
85
+ Angle a = Angle . FromDegrees ( 90 ) ;
86
+ Angle b = Angle . FromDegrees ( 180 ) ;
87
+
88
+ Assert . True ( a == a ) ;
89
+ Assert . True ( a != b ) ;
90
+
91
+ Assert . False ( a == b ) ;
92
+ Assert . False ( a != a ) ;
93
+ }
94
+
95
+ [ Test ]
96
+ public void EqualsIsImplemented ( )
97
+ {
98
+ Angle a = Angle . FromDegrees ( 90 ) ;
99
+ Assert . IsTrue ( a . Equals ( Angle . FromDegrees ( 90 ) ) ) ;
100
+ Assert . IsFalse ( a . Equals ( Angle . Zero ) ) ;
101
+ }
102
+
103
+ [ Test ]
104
+ public void EqualsReturnsFalseOnTypeMismatch ( )
105
+ {
106
+ Angle angle = Angle . FromDegrees ( 0 ) ;
107
+ Assert . IsFalse ( angle . Equals ( new object ( ) ) ) ;
108
+ }
109
+
110
+ [ Test ]
111
+ public void EqualsReturnsFalseOnNull ( )
112
+ {
113
+ Angle angle = Angle . FromDegrees ( 0 ) ;
114
+ Assert . IsFalse ( angle . Equals ( null ) ) ;
115
+ }
116
+ }
117
+ }
0 commit comments