@@ -59,5 +59,43 @@ public void TestSidrealTime(double res, int hh, int mm, int ss, int yyyy, int MM
59
59
Assert . GreaterOrEqual ( time , res ) ;
60
60
Assert . Less ( time , res + 0.000001 ) ;
61
61
}
62
+
63
+ [ TestCase ( 2000 , 11 , 2 , 14 , 25 , 23 , DateTimeKind . Utc ) ]
64
+ [ TestCase ( 2020 , 01 , 12 , 09 , 00 , 00 , DateTimeKind . Local ) ]
65
+ [ TestCase ( 1999 , 11 , 2 , 14 , 25 , 23 , DateTimeKind . Utc ) ]
66
+ [ TestCase ( 2013 , 05 , 19 , 23 , 00 , 15 , DateTimeKind . Utc ) ]
67
+ [ TestCase ( 2020 , 02 , 29 , 00 , 54 , 44 , DateTimeKind . Local ) ] //Leap Year
68
+ public void TestDateConversion ( int yyyy , int MM , int dd , int hh , int mm , int ss , DateTimeKind timeKind )
69
+ {
70
+ DateTime dt = new DateTime ( yyyy , MM , dd , hh , mm , ss , timeKind ) ;
71
+ EpochTime et = new EpochTime ( dt . ToUniversalTime ( ) ) ;
72
+ Assert . That ( et . getYear ( ) , Is . EqualTo ( dt . ToUniversalTime ( ) . Year ) ) ;
73
+ Assert . That ( et . getMonth ( ) , Is . EqualTo ( dt . ToUniversalTime ( ) . Month ) ) ;
74
+ Assert . That ( et . getDay ( ) , Is . EqualTo ( dt . ToUniversalTime ( ) . Day ) ) ;
75
+ Assert . That ( et . getHour ( ) , Is . EqualTo ( dt . ToUniversalTime ( ) . Hour ) ) ;
76
+ Assert . That ( et . getMin ( ) , Is . EqualTo ( dt . ToUniversalTime ( ) . Minute ) ) ;
77
+ Assert . That ( ( int ) et . getSec ( ) , Is . EqualTo ( dt . ToUniversalTime ( ) . Second ) ) ;
78
+
79
+ DateTime ndt = et . toDateTime ( ) ;
80
+ Assert . That ( ndt . Year , Is . EqualTo ( dt . ToUniversalTime ( ) . Year ) ) ;
81
+ Assert . That ( ndt . Month , Is . EqualTo ( dt . ToUniversalTime ( ) . Month ) ) ;
82
+ Assert . That ( ndt . Day , Is . EqualTo ( dt . ToUniversalTime ( ) . Day ) ) ;
83
+ Assert . That ( ndt . Hour , Is . EqualTo ( dt . ToUniversalTime ( ) . Hour ) ) ;
84
+ Assert . That ( ndt . Minute , Is . EqualTo ( dt . ToUniversalTime ( ) . Minute ) ) ;
85
+ Assert . That ( ndt . Second , Is . EqualTo ( dt . ToUniversalTime ( ) . Second ) ) ;
86
+ }
87
+
88
+ [ TestCase ( 1995 , 10 , 1 , 0 , 0 , 0 , 2449991.5 ) ]
89
+ [ TestCase ( 2020 , 01 , 12 , 09 , 00 , 00 , 2458860.875 ) ]
90
+ [ TestCase ( 1999 , 11 , 2 , 14 , 25 , 23 , 2451485.10096 ) ]
91
+ [ TestCase ( 2013 , 05 , 19 , 23 , 00 , 15 , 2456432.45851 ) ]
92
+ [ TestCase ( 2020 , 02 , 29 , 00 , 54 , 44 , 2458908.53801 ) ]
93
+ public void TestJulianDate ( int yyyy , int MM , int dd , int hh , int mm , int ss , double julianDate )
94
+ {
95
+ double e = 0.000005 ;
96
+ EpochTime et = new EpochTime ( hh , mm , ss , yyyy , MM , dd ) ;
97
+ double etJul = et . toJulianDate ( ) ;
98
+ Assert . That ( etJul , Is . InRange ( julianDate - e , julianDate + e ) ) ;
99
+ }
62
100
}
63
101
}
0 commit comments