Skip to content

Instantly share code, notes, and snippets.

@uolter
Created November 26, 2013 15:05
Show Gist options
  • Save uolter/7659892 to your computer and use it in GitHub Desktop.
Save uolter/7659892 to your computer and use it in GitHub Desktop.
from datetime import datetime
def time_average(time_1, time_2):
"""
return a the average time between time_1 and time_2
as a string in the same format as the input
"""
FMT = '%M:%S:%f'
try:
time_1 = datetime.strptime(time_1, FMT)
time_2 = datetime.strptime(time_2, FMT)
mid = time_1 + (time_2 - time_1) / 2
return mid.strftime(FMT)[:-4]
except TypeError, e:
print 'Wrong input parameter %s' % e
except ValueError, e:
print 'Time format not valid %s' % e
import unittest
class TestTimeAverage(unittest.TestCase):
def setUp(self):
pass
def test_none_time(self):
self.assertEqual(time_average(None, None), None)
def test_wrong_format(self):
self.assertEqual(time_average('test', 'test'), None)
def test_ok(self):
self.assertEqual(time_average( '30:00:00', '10:00:00'), '20:00:00')
def test_t1gt2(self):
"""
t1 is greater than t2
"""
self.assertEqual(time_average( '10:00:00', '20:00:00'), '15:00:00')
def test_ok_ms(self):
"""
t1 is greater than t2
"""
self.assertEqual(time_average( '00:55:00', '01:00:00'), '00:57:50')
def tearDown(self):
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment