2018-09-05 15:52:38 -06:00
|
|
|
##
|
|
|
|
##
|
|
|
|
|
|
|
|
from dynamicserialize.dstypes.com.raytheon.uf.common.time import DataTime
|
|
|
|
|
|
|
|
import unittest
|
|
|
|
|
|
|
|
#
|
|
|
|
# Unit tests for Python implementation of RequestConstraint
|
|
|
|
#
|
|
|
|
# SOFTWARE HISTORY
|
|
|
|
#
|
|
|
|
# Date Ticket# Engineer Description
|
|
|
|
# ------------ ---------- ----------- --------------------------
|
|
|
|
# 08/02/16 2416 tgurney Initial creation
|
|
|
|
#
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
class DataTimeTestCase(unittest.TestCase):
|
|
|
|
|
|
|
|
def testFromStrRefTimeOnly(self):
|
|
|
|
s = '2016-08-02 01:23:45'
|
|
|
|
expected = s
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrRefTimeOnlyZeroMillis(self):
|
|
|
|
s = '2016-08-02 01:23:45.0'
|
|
|
|
# result of str() will always drop trailing .0 milliseconds
|
|
|
|
expected = '2016-08-02 01:23:45'
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrRefTimeOnlyWithMillis(self):
|
|
|
|
s = '2016-08-02 01:23:45.1'
|
|
|
|
expected = '2016-08-02 01:23:45.001000'
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithFcstTimeHr(self):
|
|
|
|
s = '2016-08-02 01:23:45 (17)'
|
|
|
|
expected = s
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithFcstTimeHrZeroMillis(self):
|
|
|
|
s = '2016-08-02 01:23:45.0 (17)'
|
|
|
|
expected = '2016-08-02 01:23:45 (17)'
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithFcstTimeHrAndMillis(self):
|
|
|
|
s = '2016-08-02 01:23:45.1 (17)'
|
|
|
|
expected = '2016-08-02 01:23:45.001000 (17)'
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithFcstTimeHrMin(self):
|
|
|
|
s = '2016-08-02 01:23:45 (17:34)'
|
|
|
|
expected = s
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithFcstTimeHrMinZeroMillis(self):
|
|
|
|
s = '2016-08-02 01:23:45.0 (17:34)'
|
|
|
|
expected = '2016-08-02 01:23:45 (17:34)'
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithPeriod(self):
|
|
|
|
s = '2016-08-02 01:23:45[2016-08-02 02:34:45--2016-08-02 03:45:56]'
|
|
|
|
expected = s
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithPeriodZeroMillis(self):
|
|
|
|
s = '2016-08-02 01:23:45.0[2016-08-02 02:34:45.0--2016-08-02 03:45:56.0]'
|
|
|
|
expected = '2016-08-02 01:23:45[2016-08-02 02:34:45--2016-08-02 03:45:56]'
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testFromStrWithEverything(self):
|
|
|
|
s = '2016-08-02 01:23:45.0_(17:34)[2016-08-02 02:34:45.0--2016-08-02 03:45:56.0]'
|
|
|
|
expected = '2016-08-02 01:23:45 (17:34)[2016-08-02 02:34:45--2016-08-02 03:45:56]'
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
s = s.replace(' ', '_')
|
|
|
|
self.assertEqual(expected, str(DataTime(s)))
|
|
|
|
|
|
|
|
def testDataTimeReconstructItselfFromString(self):
|
|
|
|
times = [
|
|
|
|
'2016-08-02 01:23:45',
|
|
|
|
'2016-08-02 01:23:45.0',
|
|
|
|
'2016-08-02 01:23:45.1',
|
|
|
|
'2016-08-02 01:23:45.123000',
|
|
|
|
'2016-08-02 01:23:45 (17)',
|
|
|
|
'2016-08-02 01:23:45.0 (17)',
|
|
|
|
'2016-08-02 01:23:45.1 (17)',
|
|
|
|
'2016-08-02 01:23:45 (17:34)',
|
|
|
|
'2016-08-02 01:23:45.0 (17:34)',
|
|
|
|
'2016-08-02 01:23:45.1 (17:34)',
|
|
|
|
'2016-08-02 01:23:45.0[2016-08-02_02:34:45.0--2016-08-02_03:45:56.0]',
|
|
|
|
'2016-08-02 01:23:45.0[2016-08-02_02:34:45.123--2016-08-02_03:45:56.456]',
|
|
|
|
'2016-08-02 01:23:45.456_(17:34)[2016-08-02_02:34:45.0--2016-08-02_03:45:56.0]'
|
|
|
|
]
|
|
|
|
for time in times:
|
2018-09-06 12:11:36 -06:00
|
|
|
self.assertEqual(DataTime(time), DataTime(str(DataTime(time))), time)
|