diff options
| author | Terry Truong <terry06890@gmail.com> | 2022-12-28 19:46:34 +1100 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2022-12-28 19:46:34 +1100 |
| commit | db9321ca32f283f7fd59e2e8b5f8a695c66fce98 (patch) | |
| tree | 656e6ae784773029c28d9dcf75ed308d41b6dd7a /backend/tests | |
| parent | 6b8d7fcda5dc884086bfb5df914e3f13dca5ac3c (diff) | |
Use scale-associated event scores for uniform spread
Add 'dist' and 'scores' db tables
Add 'scale' server query parameter (and remove 'excl')
Disregard event-end when querying database
Diffstat (limited to 'backend/tests')
| -rw-r--r-- | backend/tests/test_gen_score_data.py | 82 | ||||
| -rw-r--r-- | backend/tests/test_histplorer.py | 24 | ||||
| -rw-r--r-- | backend/tests/test_reduce_event_data.py | 2 |
3 files changed, 105 insertions, 3 deletions
diff --git a/backend/tests/test_gen_score_data.py b/backend/tests/test_gen_score_data.py new file mode 100644 index 0000000..a466679 --- /dev/null +++ b/backend/tests/test_gen_score_data.py @@ -0,0 +1,82 @@ +import unittest +import tempfile, os + +from tests.common import createTestDbTable, readTestDbTable +from hist_data.gen_score_data import genData, MONTH_SCALE, DAY_SCALE +from hist_data.cal import gregorianToJdn + +class TestGenData(unittest.TestCase): + def test_gen(self): + with tempfile.TemporaryDirectory() as tempDir: + # Create temp history db + dbFile = os.path.join(tempDir, 'data.db') + createTestDbTable( + dbFile, + 'CREATE TABLE events (id INT PRIMARY KEY, title TEXT UNIQUE, ' \ + 'start INT, start_upper INT, end INT, end_upper INT, fmt INT, ctg TEXT)', + '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 + (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 + } + ) + createTestDbTable( + dbFile, + 'CREATE TABLE pop (id INT PRIMARY KEY, pop INT)', + 'INSERT INTO pop VALUES (?, ?)', + { + (1, 11), + (2, 21), + (4, 5), + (5, 50), + (6, 10), + } + ) + # Run + genData(dbFile, [10, 1, MONTH_SCALE, DAY_SCALE], 2) + # Check + self.assertEqual( + readTestDbTable(dbFile, 'SELECT scale, unit, count FROM dist'), + { + (10, 190, 4), + (10, 200, 1), + (1, 1900, 3), + (1, 1901, 1), + (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), + (DAY_SCALE, gregorianToJdn(1900, 1, 1), 1), + (DAY_SCALE, gregorianToJdn(1900, 1, 10), 1), + (DAY_SCALE, gregorianToJdn(1900, 10, 1), 1), + (DAY_SCALE, gregorianToJdn(1901, 1, 1), 1), + (DAY_SCALE, gregorianToJdn(2002, 11, 15), 1), + } + ) + self.assertEqual( + readTestDbTable(dbFile, 'SELECT id, scale, score FROM scores'), + { + (5, 10, 50), + (1, 10, 11), + (2, 10, 21), + (5, 1, 50), + (1, 1, 11), + (4, 1, 5), + (2, 1, 21), + (1, MONTH_SCALE, 11), + (6, MONTH_SCALE, 10), + (4, MONTH_SCALE, 5), + (5, MONTH_SCALE, 50), + (2, MONTH_SCALE, 21), + (1, DAY_SCALE, 11), + (4, DAY_SCALE, 5), + (5, DAY_SCALE, 50), + (6, DAY_SCALE, 10), + (2, DAY_SCALE, 21), + } + ) diff --git a/backend/tests/test_histplorer.py b/backend/tests/test_histplorer.py index 6487977..eb89f50 100644 --- a/backend/tests/test_histplorer.py +++ b/backend/tests/test_histplorer.py @@ -16,6 +16,7 @@ def initTestDb(dbFile: str) -> None: (3, 'event three', 2448175, 2451828, None, None, 2, 'discovery'), # 10/10/1990 to 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'), } ) createTestDbTable( @@ -28,6 +29,21 @@ def initTestDb(dbFile: str) -> None: (3, 0), (4, 1000), (5, 51), + (6, 60), + } + ) + createTestDbTable( + dbFile, + 'CREATE TABLE scores (id INT, scale INT, score INT, PRIMARY KEY (id, scale))', + 'INSERT INTO scores VALUES (?, ?, ?)', + { + (1, 1, 11), + (1, 10, 11), + (2, 1, 21), + (3, 1, 0), + (4, 1, 1000), + (5, 1, 51), + (6, 10, 60), } ) createTestDbTable( @@ -40,6 +56,7 @@ def initTestDb(dbFile: str) -> None: (3, 30), (4, 20), (5, 50), + (6, 60), } ) createTestDbTable( @@ -51,6 +68,7 @@ def initTestDb(dbFile: str) -> None: (20, 'example.com/2', 'cc-by', 'artist two', 'credits two'), (30, 'example.com/3', 'cc-by-sa 3.0', 'artist three', 'credits three'), (50, 'example.com/5', 'cc-by', 'artist five', 'credits five'), + (60, 'example.com/6', 'cc-by', 'artist six', 'credits six'), } ) createTestDbTable( @@ -63,6 +81,7 @@ def initTestDb(dbFile: str) -> None: (3, 300, 'desc three'), (4, 400, 'desc four'), (5, 500, 'desc five'), + (6, 600, 'desc six'), } ) @@ -75,17 +94,18 @@ class TestHandleReq(unittest.TestCase): def tearDown(self): self.tempDir.cleanup() def test_events_req(self): - response = handleReq(self.dbFile, {'QUERY_STRING': 'type=events&range=-1999.2002-11-1&incl=3&limit=2'}) + response = handleReq(self.dbFile, {'QUERY_STRING': 'type=events&range=-1999.2002-11-1&scale=1&incl=3&limit=2'}) self.assertEqual(response, [ 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), ]) - response = handleReq(self.dbFile, {'QUERY_STRING': 'type=events&range=.1999-11-27&excl=1&ctg=event'}) + response = handleReq(self.dbFile, {'QUERY_STRING': 'type=events&range=.1999-11-27&scale=1&ctg=event'}) self.assertEqual(response, [ 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), ]) def test_info_req(self): response = handleReq(self.dbFile, {'QUERY_STRING': 'type=info&event=3'}) diff --git a/backend/tests/test_reduce_event_data.py b/backend/tests/test_reduce_event_data.py index cb54758..c879150 100644 --- a/backend/tests/test_reduce_event_data.py +++ b/backend/tests/test_reduce_event_data.py @@ -57,7 +57,7 @@ class TestReduceData(unittest.TestCase): reduceData(dbFile) # Check self.assertEqual( - readTestDbTable(dbFile, 'SELECT id, title, start, start_upper, end, end_upper, fmt, ctg from events'), + readTestDbTable(dbFile, 'SELECT id, title, start, start_upper, end, end_upper, fmt, ctg FROM events'), { (1, 'event one', 1900, None, None, None, 0, 'event'), } |
