From 20d69469a4c80a196de23625d0420487b0ed04a6 Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Thu, 29 Dec 2022 16:17:39 +1100 Subject: Show event-count data on timeline Backend: Send event-count data to client in EventResponse instance Fix certain usages of gregorian calendar instead of julian Move HistDate, SCALES, etc, into cal.py Frontend: Make App update a unitCountMaps object using event-count data from server Make TimeLine show visual indication of unit counts Add showEventCounts option to store Update unit tests --- backend/tests/test_cal.py | 13 ++++++++++++- backend/tests/test_gen_disp_data.py | 18 +++++++++--------- backend/tests/test_histplorer.py | 26 +++++++++++++++++++++----- 3 files changed, 42 insertions(+), 15 deletions(-) (limited to 'backend/tests') diff --git a/backend/tests/test_cal.py b/backend/tests/test_cal.py index 7f2aa41..d5f2860 100644 --- a/backend/tests/test_cal.py +++ b/backend/tests/test_cal.py @@ -2,7 +2,8 @@ import unittest from hist_data.cal import \ gregorianToJdn, julianToJdn, jdnToGregorian, jdnToJulian, \ - julianToGregorian, gregorianToJulian + julianToGregorian, gregorianToJulian, \ + MONTH_SCALE, DAY_SCALE, HistDate, dbDateToHistDate, dateToUnit class TestCal(unittest.TestCase): def test_gregorian_to_jdn(self): @@ -27,3 +28,13 @@ class TestCal(unittest.TestCase): def test_julian_to_gregorian(self): self.assertEqual(julianToGregorian(2022, 9, 17), (2022, 9, 30)) self.assertEqual(julianToGregorian(1616, 4, 23), (1616, 5, 3)) + def test_db_to_hist_date(self): + self.assertEqual(dbDateToHistDate(2001, 0), HistDate(True, 2001, 1, 1)) + self.assertEqual(dbDateToHistDate(1721455, 1), HistDate(False, 1, 2, 1)) + self.assertEqual(dbDateToHistDate(1356438, 2), HistDate(True, -1000, 9, 13)) + self.assertEqual(dbDateToHistDate(2268942, 3, False), HistDate(False, 1500, 1, 10)) + self.assertEqual(dbDateToHistDate(2268933, 3, True), HistDate(True, 1500, 1, 10)) + def test_date_to_unit(self): + self.assertEqual(dateToUnit(HistDate(None, 1914, 1, 1), 10), 191) + self.assertEqual(dateToUnit(HistDate(True, 1500, 10, 5), MONTH_SCALE), 2269197) + self.assertEqual(dateToUnit(HistDate(False, 1500, 1, 10), DAY_SCALE), 2268942) diff --git a/backend/tests/test_gen_disp_data.py b/backend/tests/test_gen_disp_data.py index b806958..464405a 100644 --- a/backend/tests/test_gen_disp_data.py +++ b/backend/tests/test_gen_disp_data.py @@ -2,8 +2,8 @@ import unittest import tempfile, os from tests.common import createTestDbTable, readTestDbTable -from hist_data.gen_disp_data import genData, MONTH_SCALE, DAY_SCALE -from hist_data.cal import gregorianToJdn +from hist_data.gen_disp_data import genData +from hist_data.cal import gregorianToJdn, julianToJdn, MONTH_SCALE, DAY_SCALE class TestGenData(unittest.TestCase): def test_gen(self): @@ -17,11 +17,11 @@ class TestGenData(unittest.TestCase): 'INSERT INTO events VALUES (?, ?, ?, ?, ?, ?, ?, ?)', { (1, 'event one', 1900, None, None, None, 0, 'event'), - (2, 'event two', 2452594, None, 2455369, None, 3, 'human'), # 15/11/2002 to 21/06/2010 + (2, 'event two', 2452607, None, 2455369, None, 3, 'human'), # 15/11/2002 to 21/06/2010 (3, 'event three', 1900, None, 2000, None, 0, 'event'), (4, 'event four', 1901, None, 2000, 2010, 0, 'event'), - (5, 'event five', 2415294, None, None, None, 1, 'event'), # 01/10/1900 - (6, 'event six', 2415030, None, None, None, 1, 'event'), # 10/01/1900 + (5, 'event five', 2415307, None, None, None, 1, 'event'), # 01/10/1900 + (6, 'event six', 2415030, None, None, None, 2, 'event'), # 10/01/1900 } ) createTestDbTable( @@ -49,13 +49,13 @@ class TestGenData(unittest.TestCase): (1, 2002, 1), (MONTH_SCALE, gregorianToJdn(1900, 1, 1), 2), (MONTH_SCALE, gregorianToJdn(1901, 1, 1), 1), - (MONTH_SCALE, gregorianToJdn(1900, 10, 1), 1), - (MONTH_SCALE, gregorianToJdn(2002, 11, 1), 1), + (MONTH_SCALE, julianToJdn(1900, 10, 1), 1), + (MONTH_SCALE, julianToJdn(2002, 11, 1), 1), (DAY_SCALE, gregorianToJdn(1900, 1, 1), 1), (DAY_SCALE, gregorianToJdn(1900, 1, 10), 1), - (DAY_SCALE, gregorianToJdn(1900, 10, 1), 1), + (DAY_SCALE, julianToJdn(1900, 10, 1), 1), (DAY_SCALE, gregorianToJdn(1901, 1, 1), 1), - (DAY_SCALE, gregorianToJdn(2002, 11, 15), 1), + (DAY_SCALE, julianToJdn(2002, 11, 15), 1), } ) self.assertEqual( diff --git a/backend/tests/test_histplorer.py b/backend/tests/test_histplorer.py index a2b4623..be01a90 100644 --- a/backend/tests/test_histplorer.py +++ b/backend/tests/test_histplorer.py @@ -2,7 +2,7 @@ import unittest import tempfile, os from tests.common import createTestDbTable -from histplorer import handleReq, HistDate, Event, ImgInfo, EventInfo, SuggResponse +from histplorer import handleReq, HistDate, Event, EventResponse, ImgInfo, EventInfo, SuggResponse def initTestDb(dbFile: str) -> None: createTestDbTable( @@ -13,10 +13,24 @@ def initTestDb(dbFile: str) -> None: { (1, 'event one', 1900, None, None, None, 0, 'event'), (2, 'event two', 2452594, None, 2455369, None, 3, 'human'), # 2/11/2002 to 21/06/2010 - (3, 'event three', 2448175, 2451828, None, None, 2, 'discovery'), # 10/10/1990 to 10/10/2000 + (3, 'event three', 2448175, 2451828, None, None, 2, 'discovery'), # 10/10/1990 til 10/10/2000 (4, 'event four', 991206, None, 1721706, None, 1, 'event'), # 10/10/-2000 to 10/10/1 (5, 'event five', 2000, None, 2001, None, 0, 'event'), - (6, 'event six', 1500, None, 2000, None, 0, 'event'), + (6, 'event six', 1900, None, 2000, None, 0, 'event'), + } + ) + createTestDbTable( + dbFile, + 'CREATE TABLE dist (scale INT, unit INT, count INT, PRIMARY KEY (scale, unit))', + 'INSERT INTO dist VALUES (?, ?, ?)', + { + (1, -2000, 1), + (1, 1900, 2), + (1, 1990, 1), + (1, 2000, 1), + (1, 2001, 1), + (1, 2002, 1), + (10, 190, 2), } ) createTestDbTable( @@ -95,18 +109,20 @@ class TestHandleReq(unittest.TestCase): self.tempDir.cleanup() def test_events_req(self): response = handleReq(self.dbFile, {'QUERY_STRING': 'type=events&range=-1999.2002-11-1&scale=1&incl=3&limit=2'}) - self.assertEqual(response, [ + self.assertEqual(response.events, [ Event(5, 'event five', HistDate(True, 2000, 1, 1), None, HistDate(True, 2001, 1, 1), None, 'event', 50, 51), Event(3, 'event three', HistDate(True, 1990, 10, 10), HistDate(True, 2000, 10, 10), None, None, 'discovery', 30, 0), ]) + self.assertEqual(response.unitCounts, {1900: 2, 1990: 1, 2000: 1, 2001: 1, 2002: 1}) response = handleReq(self.dbFile, {'QUERY_STRING': 'type=events&range=.1999-11-27&scale=1&ctg=event'}) - self.assertEqual(response, [ + self.assertEqual(response.events, [ Event(4, 'event four', HistDate(False, -2000, 10, 10), None, HistDate(False, 1, 10, 10), None, 'event', 20, 1000), Event(1, 'event one', HistDate(True, 1900, 1, 1), None, None, None, 'event', 10, 11), ]) + self.assertEqual(response.unitCounts, {-2000: 1, 1900: 2, 1990: 1}) def test_info_req(self): response = handleReq(self.dbFile, {'QUERY_STRING': 'type=info&event=3'}) self.assertEqual(response, -- cgit v1.2.3