'Test the _convert_date_time() method.'

def test_convert_date_time(self):

    excel_dates = [('1899-12-31T00:00:00.000', 0), ('1982-08-25T00:15:20.213', 30188.010650613425), ('2065-04-19T00:16:48.290', 60376.011670023145), ('2147-12-15T00:55:25.446', 90565.03848895834), ('2230-08-10T01:02:46.891', 120753.04359827546), ('2313-04-06T01:04:15.597', 150942.0446249653), ('2395-11-30T01:09:40.889', 181130.048389919), ('2478-07-25T01:11:32.560', 211318.0496824074), ('2561-03-21T01:30:19.169', 241507.06272186342), ('2643-11-15T01:48:25.580', 271695.07529606484), ('2726-07-12T02:03:31.919', 301884.08578609955), ('2809-03-06T02:11:11.986', 332072.09111094906), ('2891-10-31T02:24:37.095', 362261.10042934027), ('2974-06-26T02:35:07.220', 392449.1077224537), ('3057-02-19T02:45:12.109', 422637.1147234838), ('3139-10-17T03:06:39.990', 452826.1296295139), ('3222-06-11T03:08:08.251', 483014.1306510532), ('3305-02-05T03:19:12.576', 513203.13834), ('3387-10-01T03:29:42.574', 543391.1456316435), ('3470-05-27T03:37:30.813', 573579.1510510764), ('3553-01-21T04:14:38.231', 603768.1768313773), ('3635-09-16T04:16:28.559', 633956.1781083217), ('3718-05-13T04:17:58.222', 664145.179146088), ('3801-01-06T04:21:41.794', 694333.1817337269), ('3883-09-02T04:56:35.792', 724522.2059698148), ('3966-04-28T05:25:14.885', 754710.2258667245), ('4048-12-21T05:26:05.724', 784898.2264551389), ('4131-08-18T05:46:44.068', 815087.240787824), ('4214-04-13T05:48:01.141', 845275.2416798727), ('4296-12-07T05:53:52.315', 875464.2457443866), ('4379-08-03T06:14:48.580', 905652.2602844908), ('4462-03-28T06:46:15.738', 935840.2821265972), ('4544-11-22T07:31:20.407', 966029.3134306365), ('4627-07-19T07:58:33.754', 996217.3323351158), ('4710-03-15T08:07:43.130', 1026406.3386936343), ('4792-11-07T08:29:11.091', 1056594.3536005903), ('4875-07-04T09:08:15.328', 1086783.3807329629), ('4958-02-27T09:30:41.781', 1116971.3963169097), ('5040-10-23T09:34:04.462', 1147159.3986627546), ('5123-06-20T09:37:23.945', 1177348.4009715857), ('5206-02-12T09:37:56.655', 1207536.4013501736), ('5288-10-08T09:45:12.230', 1237725.406391551), ('5371-06-04T09:54:14.782', 1267913.412671088), ('5454-01-28T09:54:22.108', 1298101.4127558796), ('5536-09-24T10:01:36.151', 1328290.4177795255), ('5619-05-20T12:09:48.602', 1358478.5068125231), ('5702-01-14T12:34:08.549', 1388667.5237100578), ('5784-09-08T12:56:06.495', 1418855.5389640625), ('5867-05-06T12:58:58.217', 1449044.5409515856), ('5949-12-30T12:59:54.263', 1479232.5416002662), ('6032-08-24T13:34:41.331', 1509420.5657561459), ('6115-04-21T13:58:28.601', 1539609.5822754744), ('6197-12-14T14:02:16.899', 1569797.5849178126), ('6280-08-10T14:36:17.444', 1599986.6085352316), ('6363-04-06T14:37:57.451', 1630174.60969272), ('6445-11-30T14:57:42.757', 1660363.6234115392), ('6528-07-26T15:10:48.307', 1690551.6325035533), ('6611-03-22T15:14:39.890', 1720739.635183912), ('6693-11-15T15:19:47.988', 1750928.6387498612), ('6776-07-11T16:04:24.344', 1781116.6697262037), ('6859-03-07T16:22:23.952', 1811305.6822216667), ('6941-10-31T16:29:55.999', 1841493.687453692), ('7024-06-26T16:58:20.259', 1871681.7071789235), ('7107-02-21T17:04:02.415', 1901870.7111390624), ('7189-10-16T17:18:29.630', 1932058.7211762732), ('7272-06-11T17:47:21.323', 1962247.7412190163), ('7355-02-05T17:53:29.866', 1992435.7454845603), ('7437-10-02T17:53:41.076', 2022624.7456143056), ('7520-05-28T17:55:06.044', 2052812.7465977315), ('7603-01-21T18:14:49.151', 2083000.7602910995), ('7685-09-16T18:17:45.738', 2113189.7623349307), ('7768-05-12T18:29:59.700', 2143377.770829861), ('7851-01-07T18:33:21.233', 2173566.773162419), ('7933-09-02T19:14:24.673', 2203754.801674456), ('8016-04-27T19:17:12.816', 2233942.8036205554), ('8098-12-22T19:23:36.418', 2264131.8080603937), ('8181-08-17T19:46:25.908', 2294319.823910972), ('8264-04-13T20:07:47.314', 2324508.83874206), ('8346-12-08T20:31:37.603', 2354696.855296331), ('8429-08-03T20:39:57.770', 2384885.861085301), ('8512-03-29T20:50:17.067', 2415073.8682530904), ('8594-11-22T21:02:57.827', 2445261.877058183), ('8677-07-19T21:23:05.519', 2475450.8910360998), ('8760-03-14T21:34:49.572', 2505638.899184861), ('8842-11-08T21:39:05.944', 2535827.9021521294), ('8925-07-04T21:39:18.426', 2566015.902296597), ('9008-02-28T21:46:07.769', 2596203.9070343636), ('9090-10-24T21:57:55.662', 2626392.9152275696), ('9173-06-19T22:19:11.732', 2656580.929996898), ('9256-02-13T22:23:51.376', 2686769.9332335186), ('9338-10-09T22:27:58.771', 2716957.9360968866), ('9421-06-05T22:43:30.392', 2747146.946879537), ('9504-01-30T22:48:25.834', 2777334.9502990046), ('9586-09-24T22:53:51.727', 2807522.9540709145), ('9669-05-20T23:12:56.536', 2837711.9673210187), ('9752-01-14T23:15:54.109', 2867899.9693762613), ('9834-09-10T23:17:12.632', 2898088.9702850925), ('9999-12-31T23:59:59.000', 2958465.999988426)]
    epoch = datetime(1899, 12, 31)
    for excel_date in excel_dates:
        date = datetime.strptime(excel_date[0], '%Y-%m-%dT%H:%M:%S.%f')
        got = self.worksheet._convert_date_time(date)
        exp = excel_date[1]
        self.assertEqual(got, exp)
        delta = (date - epoch)
        got = self.worksheet._convert_date_time(delta)
        exp = excel_date[1]
        self.assertEqual(got, exp)
