3 import unittest, sys, os
4 sys.path.insert(0, os.path.abspath(
".."))
5 from gnsstk.test_utils
import args, run_unit_tests
8 from gnsstk
import CommonTime, SystemTime, CivilTime, BDSWeekSecond, GPSWeekSecond, GPSWeekZcount, TimeSystem
9 from gnsstk
import JulianDate, MJD, UnixTime, YDSTime
17 c = gnsstk.SEC_PER_DAY
18 self.assertIsNotNone(a)
19 self.assertIsNotNone(b)
20 self.assertIsNotNone(c)
25 self.assertEqual(str(a.getTimeSystem()),
"GPS")
38 t0 =
CivilTime(1980, 1, 6, 0, 0, 0, TimeSystem.GPS)
39 self.assertEqual(str(t0),
'01/06/1980 00:00:00 GPS')
40 ct = t0.toCommonTime()
41 self.assertEqual(str(ct),
'2444245 00000000 0.000000000000000 GPS')
43 self.assertEqual(str(t1), str(t0))
47 self.assertEqual(str(t0),
"0 0.000000 BDT")
49 self.assertEqual(str(t1),
"01/01/2006 00:00:00 BDT")
51 self.assertEqual(str(t2), str(t0))
55 self.assertEqual(str(t0),
"1023 604799.000000 GPS")
57 self.assertEqual(str(t1),
"1023 604799.000000 GPS")
59 self.assertEqual(str(t3),
"1024 0.000000 GPS")
61 self.assertEqual(str(t4),
"08/22/1999 00:00:00 GPS")
65 self.assertEqual(str(t0),
"1023 403199 GPS")
67 self.assertEqual(str(t1),
"1023 403199 GPS")
69 self.assertEqual(str(t2),
"1024 000000 GPS")
71 self.assertEqual(str(t3),
"08/22/1999 00:00:00 GPS")
75 self.assertEqual(str(t0),
"0.000000 UNK")
78 self.assertEqual(str(t1),
"01/01/-4713 12:00:00 UNK")
81 self.assertEqual(str(t3),
"01/06/1980 00:00:00 UNK")
86 self.assertEqual(str(t1),
"01/01/1997 00:00:00 UNK")
91 self.assertEqual(str(t1),
"01/06/1980 00:00:00 UNK")
92 t2 =
CivilTime(2038, 1, 19, 3, 14, 7.999999)
94 self.assertEqual(str(t3),
"2147483647 999999 UNK")
99 self.assertEqual(str(t1),
"01/06/1980 00:00:00 UNK")
108 self.assertAlmostEqual(1234.0, a.getDays())
109 self.assertEqual(
'0001234 00000000 0.000000000000000 UNK', str(a))
110 self.assertAlmostEqual(1234.0014282407408, b.getDays())
111 self.assertEqual(
'0001234 00123400 0.000000000000000 UNK', str(b))
112 self.assertAlmostEqual(123.4, c)
113 self.assertEqual(gnsstk.TimeSystem.Unknown, b.getTimeSystem())
114 self.assertEqual(str(b.getTimeSystem()),
'Unknown', msg=
'default time system should be Unknown')
120 self.assertRaises(gnsstk.InvalidRequest, a.__sub__, b)
121 self.assertEqual(str(a.getTimeSystem()),
'GPS', msg=
'TimeSystem enum should properly cast to string.')
122 self.assertEqual(str(b.getTimeSystem()),
'GLO', msg=
'TimeSystem enum should properly cast to string')
126 start.addSeconds(100.0)
128 end.addSeconds(900.0)
129 times = gnsstk.times(start, end, seconds=200.0)
130 self.assertEqual(100.0, next(times).getSecondOfDay())
131 self.assertEqual(300.0, next(times).getSecondOfDay())
132 self.assertEqual(500.0, next(times).getSecondOfDay())
133 self.assertEqual(700.0, next(times).getSecondOfDay())
134 self.assertEqual(900.0, next(times).getSecondOfDay())
135 if sys.version_info[0] < 3:
136 self.assertRaises(StopIteration, times.next)
138 self.assertRaises(StopIteration, times.__next__)
142 start.addSeconds(100.0)
144 end.addSeconds(900.0)
145 times = list(gnsstk.times(start, end, seconds=200.0))
146 self.assertEqual(100.0, times[0].getSecondOfDay())
147 self.assertEqual(300.0, times[1].getSecondOfDay())
148 self.assertEqual(500.0, times[2].getSecondOfDay())
149 self.assertEqual(700.0, times[3].getSecondOfDay())
150 self.assertEqual(900.0, times[4].getSecondOfDay())
152 times = list(gnsstk.times(start, end))
153 self.assertEqual(2, len(times))
154 self.assertEqual(times[0], start)
155 self.assertEqual(times[1], end)
160 def test(instr, fmt, expected='', raises=None):
161 if raises
is not None:
162 self.assertRaises(raises, gnsstk.scanTime, instr, fmt)
167 test(
'10000',
'%K',
'2440588 10000000 0.000000000000000 UNK')
168 test(
'100000000',
'%x', raises=gnsstk.InvalidRequest)
170 if __name__ ==
'__main__':