test_empty (test_studylog.StudyLogTests.test_empty) ... ERROR
test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) ... 
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=True) ... ERROR
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=False) ... ERROR
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=-1) ... ERROR
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=1.5) ... ERROR
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value='-2') ... ERROR
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value='2.5') ... ERROR
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value='') ... ERROR
  test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=None) ... ERROR
test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) ... 
  test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value=None) ... ERROR
  test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value=[]) ... ERROR
  test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={}) ... ERROR
  test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={'name': ' ', 'minutes': 2}) ... ERROR
  test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={'name': 4, 'minutes': 2}) ... ERROR
  test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={'name': 'Ada'}) ... ERROR
test_normalize_immutable (test_studylog.StudyLogTests.test_normalize_immutable) ... ERROR
test_summary (test_studylog.StudyLogTests.test_summary) ... ERROR
test_summary_immutable (test_studylog.StudyLogTests.test_summary_immutable) ... ERROR
test_summary_invalid (test_studylog.StudyLogTests.test_summary_invalid) ... ERROR
test_trim (test_studylog.StudyLogTests.test_trim) ... ERROR
test_zero (test_studylog.StudyLogTests.test_zero) ... ERROR

======================================================================
ERROR: test_empty (test_studylog.StudyLogTests.test_empty)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 16, in test_empty
    def test_empty(self): self.assertEqual(summarize([]),{"count":0,"minutes_by_name":{}})
                                           ^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/summary.py", line 7, in summarize
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=True)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=False)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=-1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=1.5)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value='-2')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value='2.5')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value='')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_minutes (test_studylog.StudyLogTests.test_invalid_minutes) (value=None)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 9, in test_invalid_minutes
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record({"name":"Ada","minutes":v})
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value=None)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 12, in test_invalid_records
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record(v)
                                                               ^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value=[])
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 12, in test_invalid_records
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record(v)
                                                               ^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={})
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 12, in test_invalid_records
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record(v)
                                                               ^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={'name': ' ', 'minutes': 2})
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 12, in test_invalid_records
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record(v)
                                                               ^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={'name': 4, 'minutes': 2})
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 12, in test_invalid_records
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record(v)
                                                               ^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_invalid_records (test_studylog.StudyLogTests.test_invalid_records) (value={'name': 'Ada'})
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 12, in test_invalid_records
    with self.subTest(value=v), self.assertRaises(ValueError): normalize_record(v)
                                                               ^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_normalize_immutable (test_studylog.StudyLogTests.test_normalize_immutable)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 14, in test_normalize_immutable
    r={"name":" Ada ","minutes":"2","extra":3};old=r.copy();normalize_record(r);self.assertEqual(r,old)
                                                            ^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_summary (test_studylog.StudyLogTests.test_summary)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 15, in test_summary
    def test_summary(self): self.assertEqual(summarize([{"name":" Ada ","minutes":"2"},{"name":"ADA","minutes":3},{"name":"Bob","minutes":0}]),{"count":3,"minutes_by_name":{"ada":5,"bob":0}})
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/summary.py", line 7, in summarize
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_summary_immutable (test_studylog.StudyLogTests.test_summary_immutable)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 20, in test_summary_immutable
    r=[{"name":" Ada ","minutes":"2"}];old=[x.copy() for x in r];summarize(r);self.assertEqual(r,old)
                                                                 ^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/summary.py", line 7, in summarize
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_summary_invalid (test_studylog.StudyLogTests.test_summary_invalid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 18, in test_summary_invalid
    with self.assertRaises(ValueError): summarize([{"name":"Ada","minutes":-1}])
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/summary.py", line 7, in summarize
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_trim (test_studylog.StudyLogTests.test_trim)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 5, in test_trim
    def test_trim(self): self.assertEqual(normalize_record({"name":" Ada ","minutes":" 12 "}),{"name":"Ada","minutes":12})
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

======================================================================
ERROR: test_zero (test_studylog.StudyLogTests.test_zero)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/test_studylog.py", line 6, in test_zero
    def test_zero(self): self.assertEqual(normalize_record({"name":"Ada","minutes":0})["minutes"],0)
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/ljc-jcode-0lzuzls0/repo/normalize.py", line 6, in normalize_record
    raise NotImplementedError
NotImplementedError

----------------------------------------------------------------------
Ran 9 tests in 0.001s

FAILED (errors=21)
