-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathtest_time.py
More file actions
executable file
·140 lines (103 loc) · 6.54 KB
/
test_time.py
File metadata and controls
executable file
·140 lines (103 loc) · 6.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/usr/bin/env python3
import src.practical_astronomy.pa_datetime as PD
import unittest as UT
def get_civil_time(hours,minutes,seconds):
decimalHours = PD.civil_time_to_decimal_hours(hours,minutes,seconds)
return round(decimalHours,8)
class test_civil_time(UT.TestCase):
def setUp(self):
self.hours = 18
self.minutes = 31
self.seconds = 27
self.decimalHours = get_civil_time(self.hours,self.minutes,self.seconds)
def test_civil_time_to_decimal_hours(self):
print(f"Decimal hours for {self.hours}:{self.minutes}:{self.seconds} is {self.decimalHours}")
self.assertEqual(self.decimalHours,18.52416667,"Decimal Hours")
def test_decimal_hours_to_civil_time(self):
revertHours,revertMinutes,revertSeconds = PD.decimal_hours_to_civil_time(self.decimalHours)
print(f"Converting {self.decimalHours} back to Civil Time gives {revertHours}:{revertMinutes}:{revertSeconds}")
self.assertEqual(revertHours,18,"Civil Time: Hours")
self.assertEqual(revertMinutes,31,"Civil Time: Minutes")
self.assertEqual(revertSeconds,27,"Civil Time: Seconds")
def test_decimal_time_parts(self):
hourPart = PD.decimal_hour_hour(self.decimalHours)
minutesPart = PD.decimal_hour_minutes(self.decimalHours)
secondsPart = PD.decimal_hour_seconds(self.decimalHours)
print(f"The hour part of {self.decimalHours} is {hourPart}")
print(f"The minutes part of {self.decimalHours} is {minutesPart}")
print(f"The seconds part of {self.decimalHours} is {secondsPart}")
self.assertEqual(hourPart,18,"Hour Part")
self.assertEqual(minutesPart,31,"Minutes Part")
self.assertEqual(secondsPart,27,"Seconds Part")
class test_local_civil_time(UT.TestCase):
def setUp(self):
self.hours = 3
self.minutes = 37
self.seconds = 0
self.isDaylightSavings = True
self.zoneCorrection = 4
self.day = 1
self.month = 7
self.year = 2013
def test_local_civil_time_to_universal_time(self):
utHours,utMinutes,utSeconds,gwDay,gwMonth,gwYear = PD.local_civil_time_to_universal_time(self.hours,self.minutes,self.seconds,self.isDaylightSavings,self.zoneCorrection,self.day,self.month,self.year)
print(f"[LCT]{self.hours}:{self.minutes}:{self.seconds} [DS]{self.isDaylightSavings} [ZC]{self.zoneCorrection} [LD]{self.month}/{self.day}/{self.year} = [UT]{utHours}:{utMinutes}:{utSeconds} [GWD]{gwMonth}/{gwDay}/{gwYear}")
self.assertEqual(utHours,22,"UT Hours")
self.assertEqual(utMinutes,37,"UT Minutes")
self.assertEqual(utSeconds,0,"UT Seconds")
self.assertEqual(gwDay,30,"Greenwich Day")
self.assertEqual(gwMonth,6,"Greenwich Month")
self.assertEqual(gwYear,2013,"Greenwich Year")
def test_universal_time_to_local_civil_time(self):
utHours,utMinutes,utSeconds,gwDay,gwMonth,gwYear = PD.local_civil_time_to_universal_time(self.hours,self.minutes,self.seconds,self.isDaylightSavings,self.zoneCorrection,self.day,self.month,self.year)
revertLCTHours,revertLCTMinutes,revertLCTSeconds,revertDay,revertMonth,revertYear = PD.universal_time_to_local_civil_time(utHours,utMinutes,utSeconds,self.isDaylightSavings,self.zoneCorrection,gwDay,gwMonth,gwYear)
print(f"[UT]{utHours}:{utMinutes}:{utSeconds} [DS]{self.isDaylightSavings} [ZC]{self.zoneCorrection} [GWD]{gwMonth}/{gwDay}/{gwYear} = [LCT]{revertLCTHours}:{revertLCTMinutes}:{revertLCTSeconds} [LD]{self.month}/{self.day}/{self.year}")
self.assertEqual(revertLCTHours,3,"LCT Hours")
self.assertEqual(revertLCTMinutes,37, "LCT Minutes")
self.assertEqual(revertLCTSeconds,0, "LCT Seconds")
self.assertEqual(revertDay,1,"Local Day")
self.assertEqual(revertMonth,7,"Local Month")
self.assertEqual(revertYear,2013,"Local Year")
class test_sidereal_time_universal_time(UT.TestCase):
def setUp(self):
self.utHours = 14
self.utMinutes = 36
self.utSeconds = 51.67
self.greenwichDay = 22
self.greenwichMonth = 4
self.greenwichYear = 1980
def test_universal_time_to_greenwich_sidereal_time(self):
gstHours,gstMinutes,gstSeconds = PD.universal_time_to_greenwich_sidereal_time(self.utHours,self.utMinutes,self.utSeconds,self.greenwichDay,self.greenwichMonth,self.greenwichYear)
print(f"[UT] {self.utHours}:{self.utMinutes}:{self.utSeconds} {self.greenwichMonth}/{self.greenwichDay}/{self.greenwichYear} = [GST] {gstHours}:{gstMinutes}:{gstSeconds}")
self.assertEqual(gstHours,4,"GST Hours")
self.assertEqual(gstMinutes,40,"GST Minutes")
self.assertEqual(gstSeconds,5.23,"GST Seconds")
def test_greenwich_sidereal_time_to_universal_time(self):
gstHours,gstMinutes,gstSeconds = PD.universal_time_to_greenwich_sidereal_time(self.utHours,self.utMinutes,self.utSeconds,self.greenwichDay,self.greenwichMonth,self.greenwichYear)
revertUTHours,revertUTMinutes,revertUTSeconds,statusMessage = PD.greenwich_sidereal_time_to_universal_time(gstHours,gstMinutes,gstSeconds,self.greenwichDay,self.greenwichMonth,self.greenwichYear)
print(f"[GST] {gstHours}:{gstMinutes}:{gstSeconds} {self.greenwichMonth}/{self.greenwichDay}/{self.greenwichYear} = [UT] {revertUTHours}:{revertUTMinutes}:{revertUTSeconds} [Status] {statusMessage}")
self.assertEqual(revertUTHours,14,"UT Hours")
self.assertEqual(revertUTMinutes,36,"UT Minutes")
self.assertEqual(revertUTSeconds,51.67,"UT Seconds")
self.assertIn(statusMessage,["OK","Warning"],"Status Message")
class test_sidereal_time_local_time(UT.TestCase):
def setUp(self):
self.gstHours = 4
self.gstMinutes = 40
self.gstSeconds = 5.23
self.geographicalLongitude = -64
def test_greenwich_sidereal_time_to_local_sidereal_time(self):
lstHours,lstMinutes,lstSeconds = PD.greenwich_sidereal_time_to_local_sidereal_time(self.gstHours,self.gstMinutes,self.gstSeconds,self.geographicalLongitude)
print(f"[GST] {self.gstHours}:{self.gstMinutes}:{self.gstSeconds} [LON] {self.geographicalLongitude} = [LST] {lstHours}:{lstMinutes}:{lstSeconds}")
self.assertEqual(lstHours,0,"LST Hours")
self.assertEqual(lstMinutes,24,"LST Minutes")
self.assertEqual(lstSeconds,5.23,"LST Seconds")
def test_local_sidereal_time_to_greenwich_sidereal_time(self):
lstHours,lstMinutes,lstSeconds = PD.greenwich_sidereal_time_to_local_sidereal_time(self.gstHours,self.gstMinutes,self.gstSeconds,self.geographicalLongitude)
revertGSTHours,revertGSTMinutes,revertGSTSeconds = PD.local_sidereal_time_to_greenwich_sidereal_time(lstHours,lstMinutes,lstSeconds,self.geographicalLongitude)
print(f"[LST] {lstHours}:{lstMinutes}:{lstSeconds} [LON] {self.geographicalLongitude} = [GST] {revertGSTHours}:{revertGSTMinutes}:{revertGSTSeconds}")
self.assertEqual(revertGSTHours,4,"GST Hours")
self.assertEqual(revertGSTMinutes,40,"GST Minutes")
self.assertEqual(revertGSTSeconds,5.23,"GST Seconds")
if __name__ == '__main__':
UT.main()