Skip to content

Instantly share code, notes, and snippets.

@mdaffin
Last active December 22, 2015 02:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mdaffin/6405501 to your computer and use it in GitHub Desktop.
Save mdaffin/6405501 to your computer and use it in GitHub Desktop.
A test harness for the first assignment on the learning to program course: https://class.coursera.org/programming1-002/class/index
import unittest
from a1 import *
class TestA1Functions(unittest.TestCase):
def test_seconds_difference(self):
self.assertEqual(seconds_difference(1800.0, 3600.0), 1800.0)
self.assertEqual(seconds_difference(3600.0, 1800.0), -1800.0)
self.assertEqual(seconds_difference(1800.0, 2160.0), 360.0)
self.assertEqual(seconds_difference(1800.0, 1800.0), 0.0)
def test_hours_difference(self):
self.assertAlmostEqual(hours_difference(1800.0, 3600.0), 0.5, 5)
self.assertAlmostEqual(hours_difference(3600.0, 1800.0), -0.5, 5)
self.assertAlmostEqual(hours_difference(1800.0, 2160.0), 0.1, 5)
self.assertAlmostEqual(hours_difference(1800.0, 1800.0), 0.0, 5)
def test_to_float_hours(self):
self.assertEqual(to_float_hours(0, 15, 0), 0.25)
self.assertEqual(to_float_hours(2, 45, 9), 2.7525)
self.assertEqual(to_float_hours(1, 0, 36), 1.01)
def test_to_24_hour_clock(self):
self.assertEqual(to_24_hour_clock(24), 0)
self.assertEqual(to_24_hour_clock(48), 0)
self.assertEqual(to_24_hour_clock(25), 1)
self.assertEqual(to_24_hour_clock(4), 4)
self.assertEqual(to_24_hour_clock(28.5), 4.5)
def test_get_hours(self):
self.assertEqual(get_hours(3600), 1)
self.assertEqual(get_hours(3800), 1)
self.assertEqual(get_hours(7200), 2)
def test_get_minutes(self):
self.assertEqual(get_minutes(3600), 0)
self.assertEqual(get_minutes(3800), 3)
self.assertEqual(get_minutes(7200), 0)
self.assertEqual(get_minutes(7500), 5)
def test_seconds(self):
self.assertEqual(get_seconds(3600), 0)
self.assertEqual(get_seconds(3800), 20)
self.assertEqual(get_seconds(7200), 0)
self.assertEqual(get_seconds(7198), 58)
self.assertEqual(get_seconds(3640), 40)
def test_time_to_utc(self):
self.assertAlmostEqual(time_to_utc(+0, 12.0), 12.0, 5)
self.assertAlmostEqual(time_to_utc(+1, 12.0), 11.0, 5)
self.assertAlmostEqual(time_to_utc(-1, 12.0), 13.0, 5)
self.assertAlmostEqual(time_to_utc(-11, 18.0), 5.0, 5)
self.assertAlmostEqual(time_to_utc(-1, 0.0), 1.0, 5)
self.assertAlmostEqual(time_to_utc(-1, 23.0), 0.0, 5)
def test_time_from_utc(self):
self.assertAlmostEqual(time_from_utc(+0, 12.0), 12.0, 5)
self.assertAlmostEqual(time_from_utc(+1, 12.0), 13.0, 5)
self.assertAlmostEqual(time_from_utc(+1.5, 12.0), 13.5, 5)
self.assertAlmostEqual(time_from_utc(-1, 12.0), 11.0, 5)
self.assertAlmostEqual(time_from_utc(+6, 6.0), 12.0, 5)
self.assertAlmostEqual(time_from_utc(-7, 6.0), 23.0, 5)
self.assertAlmostEqual(time_from_utc(-1, 0.0), 23.0, 5)
self.assertAlmostEqual(time_from_utc(-1, 23.0), 22.0, 5)
self.assertAlmostEqual(time_from_utc(+1, 23.0), 0.0, 5)
if __name__ == "__main__":
unittest.main(exit=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment