aboutsummaryrefslogtreecommitdiff
path: root/backend/tests
diff options
context:
space:
mode:
Diffstat (limited to 'backend/tests')
-rw-r--r--backend/tests/enwiki/test_gen_img_data.py31
-rw-r--r--backend/tests/test_cal.py4
-rw-r--r--backend/tests/test_gen_desc_data.py15
-rw-r--r--backend/tests/test_gen_disp_data.py65
-rw-r--r--backend/tests/test_gen_events_data.py26
-rw-r--r--backend/tests/test_gen_imgs.py2
-rw-r--r--backend/tests/test_histplorer.py4
-rw-r--r--backend/tests/test_reduce_event_data.py91
8 files changed, 164 insertions, 74 deletions
diff --git a/backend/tests/enwiki/test_gen_img_data.py b/backend/tests/enwiki/test_gen_img_data.py
index 93bb196..d18dddf 100644
--- a/backend/tests/enwiki/test_gen_img_data.py
+++ b/backend/tests/enwiki/test_gen_img_data.py
@@ -9,7 +9,7 @@ TEST_DUMP_FILE = os.path.join(os.path.dirname(__file__), 'sample_enwiki_pages_ar
class TestGetInputPageIdsFromDb(unittest.TestCase):
def test_get(self):
with tempfile.TemporaryDirectory() as tempDir:
- # Create temp tree-of-life db
+ # Create temp history db
dbFile = os.path.join(tempDir, 'data.db')
createTestDbTable(
dbFile,
@@ -17,24 +17,11 @@ class TestGetInputPageIdsFromDb(unittest.TestCase):
'start INT, start_upper INT, end INT, end_upper INT, fmt INT, ctg TEXT)',
'INSERT INTO events VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
{
- (1, 'Belgium', 2389729, None, None, None, 2, 'country'),
- (2, 'George Washington', 2353711, None, 2378478, None, 2, 'human'),
- (3, 'Douglas Adams', 2434082, None, 2452040, None, 2, 'human'),
- (4, 'World War II', 2429507, None, 2431700, None, 2, 'event'),
- (5, 'Marie Curie', 2403277, None, 2427622, None, 2, 'human'),
- }
- )
- # Create temp pageviews db
- pageviewDb = os.path.join(tempDir, 'pageview_data.db')
- createTestDbTable(
- pageviewDb,
- 'CREATE TABLE views (title TEXT PRIMARY KEY, id INT, views INT)',
- 'INSERT INTO views VALUES (?, ?, ?)',
- {
- ('George Washington', 2, 8),
- ('Marie Curie', 5, 10),
- ('Douglas Adams', 3, 5),
- ('Belgium', 1, 100),
+ (1, 'Belgium', 2389729, None, None, None, 1, 'country'),
+ (2, 'George Washington', 2353711, None, 2378478, None, 1, 'human'),
+ (3, 'Douglas Adams', 2434082, None, 2452040, None, 1, 'human'),
+ (4, 'World War II', 2429507, None, 2431700, None, 1, 'event'),
+ (5, 'Marie Curie', 2403277, None, 2427622, None, 1, 'human'),
}
)
# Create temp dump-index db
@@ -46,15 +33,15 @@ class TestGetInputPageIdsFromDb(unittest.TestCase):
{
('Belgium',10,0,-1),
('George Washington',20,0,-1),
- ('Douglas Adamns',30,0,-1),
+ ('Douglas Adams',30,0,-1),
('Marie Curie',50,0,-1),
('Autism',25,0,-1),
}
)
# Run
- pageIds = getInputPageIdsFromDb(dbFile, pageviewDb, indexDb, 2)
+ pageIds = getInputPageIdsFromDb(dbFile, indexDb)
# Check
- self.assertEqual(pageIds, {50, 20, 10})
+ self.assertEqual(pageIds, {10, 20, 30, 50})
class TestGenData(unittest.TestCase):
def test_gen(self):
diff --git a/backend/tests/test_cal.py b/backend/tests/test_cal.py
index d5f2860..78b2c8b 100644
--- a/backend/tests/test_cal.py
+++ b/backend/tests/test_cal.py
@@ -30,8 +30,8 @@ class TestCal(unittest.TestCase):
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(1356438, 1), HistDate(True, -1000, 9, 13))
+ self.assertEqual(dbDateToHistDate(1721455, 2), HistDate(False, 1, 2, 1))
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):
diff --git a/backend/tests/test_gen_desc_data.py b/backend/tests/test_gen_desc_data.py
index 6f321b4..4c902ad 100644
--- a/backend/tests/test_gen_desc_data.py
+++ b/backend/tests/test_gen_desc_data.py
@@ -18,7 +18,6 @@ class TestGenData(unittest.TestCase):
(3, 'III'),
(4, 'IV'),
(5, 'V'),
- (6, 'VI'),
}
)
createTestDbTable(
@@ -38,7 +37,6 @@ class TestGenData(unittest.TestCase):
(3, 'Three'),
(4, 'Four'),
(5, 'Five'),
- (6, 'Six'),
}
)
# Create temp history db
@@ -52,18 +50,7 @@ class TestGenData(unittest.TestCase):
(10, 'I', 100, None, None, None, 0, 'event'),
(20, 'II', 200, None, None, None, 0, 'discovery'),
(30, 'III', 300, None, 350, None, 0, 'event'),
- (50, 'V', 5, 10, None, None, 1, 'human'),
- (60, 'VI', 6000, None, None, None, None, 'event'),
- }
- )
- createTestDbTable(
- dbFile,
- 'CREATE TABLE event_imgs (id INT PRIMARY KEY, img_id INT)',
- 'INSERT INTO event_imgs VALUES (?, ?)',
- {
- (10, 100),
- (30, 300),
- (50, 500),
+ (50, 'V', 5, 10, None, None, 2, 'human'),
}
)
# Run
diff --git a/backend/tests/test_gen_disp_data.py b/backend/tests/test_gen_disp_data.py
index 464405a..db6ddc0 100644
--- a/backend/tests/test_gen_disp_data.py
+++ b/backend/tests/test_gen_disp_data.py
@@ -17,11 +17,16 @@ class TestGenData(unittest.TestCase):
'INSERT INTO events VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
{
(1, 'event one', 1900, None, None, None, 0, 'event'),
- (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'),
+ (2, 'event two', 2452607, None, 2455369, None, 3, 'human'), # 15/11/2002
+ (3, 'event three', 1900, None, 2000, None, 0, 'event'), # version of 1 without pop score
(4, 'event four', 1901, None, 2000, 2010, 0, 'event'),
- (5, 'event five', 2415307, None, None, None, 1, 'event'), # 01/10/1900
- (6, 'event six', 2415030, None, None, None, 2, 'event'), # 10/01/1900
+ (5, 'event five', 2415307, None, None, None, 2, 'event'), # 01/10/1900
+ (6, 'event six', 2415030, None, None, None, 1, 'event'), # 10/01/1900
+ (7, 'event seven', 1900, None, None, None, 0, 'event'), # popular version of 1
+ (8, 'event eight', 1900, None, None, None, 0, 'event'), # less popular version of 1
+ (9, 'event nine', 1900, None, None, None, 0, 'event'), # less popular version of 1
+ (10, 'event ten', 2415307, None, None, None, 2, 'event'), # less popular version of 5
+ (11, 'event eleven', 2415307, None, None, None, 2, 'event'), # slightly less popular version of 5
}
)
createTestDbTable(
@@ -34,26 +39,55 @@ class TestGenData(unittest.TestCase):
(4, 5),
(5, 50),
(6, 10),
+ (7, 100),
+ (8, 1),
+ (9, 2),
+ (10, 40),
+ (11, 45),
}
)
# Run
genData(dbFile, [10, 1, MONTH_SCALE, DAY_SCALE], 2)
# Check
self.assertEqual(
+ readTestDbTable(dbFile, 'SELECT * FROM events'),
+ {
+ (1, 'event one', 1900, None, None, None, 0, 'event'),
+ (2, 'event two', 2452607, None, 2455369, None, 3, 'human'),
+ (4, 'event four', 1901, None, 2000, 2010, 0, 'event'),
+ (5, 'event five', 2415307, None, None, None, 2, 'event'),
+ (6, 'event six', 2415030, None, None, None, 1, 'event'),
+ (7, 'event seven', 1900, None, None, None, 0, 'event'),
+ (11, 'event eleven', 2415307, None, None, None, 2, 'event'), # 01/10/1900
+ }
+ )
+ self.assertEqual(
+ readTestDbTable(dbFile, 'SELECT * FROM pop'),
+ {
+ (1, 11),
+ (2, 21),
+ (4, 5),
+ (5, 50),
+ (6, 10),
+ (7, 100),
+ (11, 45),
+ }
+ )
+ self.assertEqual(
readTestDbTable(dbFile, 'SELECT scale, unit, count FROM dist'),
{
- (10, 190, 4),
+ (10, 190, 6),
(10, 200, 1),
- (1, 1900, 3),
+ (1, 1900, 5),
(1, 1901, 1),
(1, 2002, 1),
- (MONTH_SCALE, gregorianToJdn(1900, 1, 1), 2),
+ (MONTH_SCALE, gregorianToJdn(1900, 1, 1), 3),
(MONTH_SCALE, gregorianToJdn(1901, 1, 1), 1),
- (MONTH_SCALE, julianToJdn(1900, 10, 1), 1),
+ (MONTH_SCALE, julianToJdn(1900, 10, 1), 2),
(MONTH_SCALE, julianToJdn(2002, 11, 1), 1),
- (DAY_SCALE, gregorianToJdn(1900, 1, 1), 1),
+ (DAY_SCALE, gregorianToJdn(1900, 1, 1), 2),
(DAY_SCALE, gregorianToJdn(1900, 1, 10), 1),
- (DAY_SCALE, julianToJdn(1900, 10, 1), 1),
+ (DAY_SCALE, julianToJdn(1900, 10, 1), 2),
(DAY_SCALE, gregorianToJdn(1901, 1, 1), 1),
(DAY_SCALE, julianToJdn(2002, 11, 15), 1),
}
@@ -62,21 +96,24 @@ class TestGenData(unittest.TestCase):
readTestDbTable(dbFile, 'SELECT id, scale FROM event_disp'),
{
(5, 10),
- (1, 10),
+ (7, 10),
(2, 10),
(5, 1),
- (1, 1),
+ (7, 1),
(4, 1),
(2, 1),
(1, MONTH_SCALE),
- (6, MONTH_SCALE),
+ (7, MONTH_SCALE),
(4, MONTH_SCALE),
(5, MONTH_SCALE),
+ (11, MONTH_SCALE),
(2, MONTH_SCALE),
(1, DAY_SCALE),
+ (7, DAY_SCALE),
+ (6, DAY_SCALE),
(4, DAY_SCALE),
(5, DAY_SCALE),
- (6, DAY_SCALE),
+ (11, DAY_SCALE),
(2, DAY_SCALE),
}
)
diff --git a/backend/tests/test_gen_events_data.py b/backend/tests/test_gen_events_data.py
index 0f298ca..b3dfddc 100644
--- a/backend/tests/test_gen_events_data.py
+++ b/backend/tests/test_gen_events_data.py
@@ -1,6 +1,6 @@
import unittest
import tempfile, os, json, bz2, pickle, indexed_bzip2
-
+# Local imports
from tests.common import readTestDbTable
from hist_data.gen_events_data import genData
@@ -115,6 +115,7 @@ class TestGenData(unittest.TestCase):
'id': 'Q6',
'claims': {
'P31': [{'mainsnak': {'datavalue': {'value': {'id': 'Q7725634'}}}}], # 'instance of' 'literary work'
+ 'P170': [{'mainsnak': {'datavalue': {'value': {'id': 'Q180'}}}}], # 'creator'
'P1319': [{'mainsnak': {'datavalue': {'type': 'time', 'value': { # 'earliest date'
'time':'-0020-08-01T00:00:00Z',
'precision':11, # day precision
@@ -132,6 +133,7 @@ class TestGenData(unittest.TestCase):
'id': 'Q7',
'claims': {
'P31': [{'mainsnak': {'datavalue': {'value': {'id': 'Q11424'}}}}], # 'instance of' 'film'
+ 'P136': [{'mainsnak': {'datavalue': {'value': {'id': 'Q157394'}}}}], # 'genre'
'P577': [{'mainsnak': {'datavalue': {'type': 'time', 'value': { # 'publication date'
'time':'-2103-00-00T00:00:00Z',
'precision':7, # century precision
@@ -144,18 +146,24 @@ class TestGenData(unittest.TestCase):
'id': 'Q8',
'claims': {
'P31': [{'mainsnak': {'datavalue': {'value': {'id': 'Q16521'}}}}], # 'instance of' 'taxon'
- }
- # No title
+ 'P571': [{'mainsnak': {'datavalue': {'type': 'time', 'value': { # 'inception'
+ 'time':'-400000000-00-00T00:00:01Z',
+ 'precision':1, # hundred million years precision
+ 'calendarmodel':'http://www.wikidata.org/entity/Q1985727' # 'proleptic gregorian calendar'
+ }}}}],
+ },
+ 'sitelinks': {'enwiki': {'title': 'organism one'}},
},
]
self.expectedRows = {
- (1, 'event one', 2433617, 2433647, None, None, 2, 'event'),
- (2, 'Human One', 2452594, None, 2455369, None, 3, 'human'),
- (3, 'country one', -1001, None, -99, None, 0, 'country'),
- (4, 'country two', -9000, -7000, None, None, 0, 'country'),
+ (1, 'event one', 2433617, 2433647, None, None, 1, 'event'),
+ (2, 'Human One', 2452594, None, 2455369, None, 3, 'person'),
+ (3, 'country one', -1001, None, -99, None, 0, 'place'),
+ (4, 'country two', -9000, -7000, None, None, 0, 'place'),
(5, 'discovery one', 1, 1000, None, None, 0, 'discovery'),
- (6, 'media one', 1714331, None, 1714362, None, 1, 'media'),
- (7, 'media two', -2199, -2100, None, None, 0, 'media'),
+ (6, 'media one', 1714331, None, 1714362, None, 2, 'work'),
+ (7, 'media two', -2199, -2100, None, None, 0, 'work'),
+ (8, 'organism one', -400000000, -300000001, None, None, 0, 'organism'),
}
def test_wikiItems(self):
rows = runGenData(self.testWikiItems, False, 1)
diff --git a/backend/tests/test_gen_imgs.py b/backend/tests/test_gen_imgs.py
index f8bfeb6..ea4bd70 100644
--- a/backend/tests/test_gen_imgs.py
+++ b/backend/tests/test_gen_imgs.py
@@ -50,7 +50,7 @@ class TestGenImgs(unittest.TestCase):
{
(10, 'first', 100, 1000, None, None, 0, 'event'),
(20, 'second', 10, 20, None, None, 0, 'event'),
- (30, 'third', 1, 20, 30, 40, 2, 'event'),
+ (30, 'third', 1, 20, 30, 40, 1, 'event'),
}
)
# Run
diff --git a/backend/tests/test_histplorer.py b/backend/tests/test_histplorer.py
index be01a90..592d534 100644
--- a/backend/tests/test_histplorer.py
+++ b/backend/tests/test_histplorer.py
@@ -13,8 +13,8 @@ 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 til 10/10/2000
- (4, 'event four', 991206, None, 1721706, None, 1, 'event'), # 10/10/-2000 to 10/10/1
+ (3, 'event three', 2448175, 2451828, None, None, 1, 'discovery'), # 10/10/1990 til 10/10/2000
+ (4, 'event four', 991206, None, 1721706, None, 2, 'event'), # 10/10/-2000 to 10/10/1
(5, 'event five', 2000, None, 2001, None, 0, 'event'),
(6, 'event six', 1900, None, 2000, None, 0, 'event'),
}
diff --git a/backend/tests/test_reduce_event_data.py b/backend/tests/test_reduce_event_data.py
index c879150..22fe204 100644
--- a/backend/tests/test_reduce_event_data.py
+++ b/backend/tests/test_reduce_event_data.py
@@ -3,6 +3,7 @@ import tempfile, os
from tests.common import createTestDbTable, readTestDbTable
from hist_data.reduce_event_data import reduceData
+from hist_data.cal import gregorianToJdn, julianToJdn, MONTH_SCALE, DAY_SCALE
class TestReduceData(unittest.TestCase):
def test_reduce(self):
@@ -16,8 +17,10 @@ class TestReduceData(unittest.TestCase):
'INSERT INTO events VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
{
(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
+ (2, 'event two', 2452594, None, 2455369, None, 3, 'human'), # 2/11/2002
+ (3, 'event three', 2448175, 2448200, None, None, 1, 'discovery'), # 10/10/1990
+ (4, 'event four', 1900, None, None, None, 0, 'event'), # Copy of 1
+ (5, 'event five', 2452595, None, 2455369, None, 3, 'human'), # Day after 2
}
)
createTestDbTable(
@@ -25,8 +28,50 @@ class TestReduceData(unittest.TestCase):
'CREATE TABLE pop (id INT PRIMARY KEY, pop INT)',
'INSERT INTO pop VALUES (?, ?)',
{
- (1, 11),
- (2, 21),
+ (1, 10),
+ (2, 20),
+ (3, 30),
+ (4, 40),
+ (5, 50),
+ }
+ )
+ createTestDbTable(
+ dbFile,
+ 'CREATE TABLE dist (scale INT, unit INT, count INT, PRIMARY KEY (scale, unit))',
+ 'INSERT INTO dist VALUES (?, ?, ?)',
+ {
+ (1, 1900, 2),
+ (1, 1990, 1),
+ (1, 2002, 2),
+ (MONTH_SCALE, gregorianToJdn(1900, 1, 1), 2),
+ (MONTH_SCALE, gregorianToJdn(1990, 10, 1), 1),
+ (MONTH_SCALE, julianToJdn(2002, 11, 1), 2),
+ (DAY_SCALE, gregorianToJdn(1900, 1, 1), 2),
+ (DAY_SCALE, gregorianToJdn(1990, 10, 10), 1),
+ (DAY_SCALE, 2452594, 1),
+ (DAY_SCALE, 2452595, 1),
+ }
+ )
+ createTestDbTable(
+ dbFile,
+ 'CREATE TABLE event_disp (id INT, scale INT, PRIMARY KEY (id, scale))',
+ 'INSERT INTO event_disp VALUES (?, ?)',
+ {
+ (1, 1),
+ (1, MONTH_SCALE),
+ (1, DAY_SCALE),
+ (2, 1),
+ (2, MONTH_SCALE),
+ (2, DAY_SCALE),
+ (3, 1),
+ (3, MONTH_SCALE),
+ (3, DAY_SCALE),
+ (4, 1),
+ (4, MONTH_SCALE),
+ (4, DAY_SCALE),
+ (5, 1),
+ (5, MONTH_SCALE),
+ (5, DAY_SCALE),
}
)
createTestDbTable(
@@ -34,7 +79,8 @@ class TestReduceData(unittest.TestCase):
'CREATE TABLE event_imgs (id INT PRIMARY KEY, img_id INT)',
'INSERT INTO event_imgs VALUES (?, ?)',
{
- (1, 10),
+ (1, 11),
+ (2, 21),
}
)
createTestDbTable(
@@ -42,7 +88,8 @@ class TestReduceData(unittest.TestCase):
'CREATE TABLE images (id INT PRIMARY KEY, url TEXT, license TEXT, artist TEXT, credit TEXT)',
'INSERT INTO images VALUES (?, ?, ?, ?, ?)',
{
- (10, 'example.com/1', 'cc0', 'artist one', 'credits one'),
+ (11, 'example.com/1', 'cc0', 'artist one', 'credits one'),
+ (21, 'example.com/1', 'cc0', 'artist two', 'credits two'),
}
)
createTestDbTable(
@@ -54,17 +101,41 @@ class TestReduceData(unittest.TestCase):
}
)
# Run
- reduceData(dbFile)
+ reduceData(dbFile, [1, MONTH_SCALE, DAY_SCALE])
# Check
self.assertEqual(
- readTestDbTable(dbFile, 'SELECT id, title, start, start_upper, end, end_upper, fmt, ctg FROM events'),
+ readTestDbTable(dbFile, 'SELECT * FROM events'),
{
(1, 'event one', 1900, None, None, None, 0, 'event'),
+ (2, 'event two', 2452594, None, 2455369, None, 3, 'human'),
}
)
self.assertEqual(
- readTestDbTable(dbFile, 'SELECT id, pop from pop'),
+ readTestDbTable(dbFile, 'SELECT * from pop'),
{
- (1, 11),
+ (1, 10),
+ (2, 20),
+ }
+ )
+ self.assertEqual(
+ readTestDbTable(dbFile, 'SELECT * from dist'),
+ {
+ (1, 1900, 1),
+ (1, 2002, 1),
+ (MONTH_SCALE, gregorianToJdn(1900, 1, 1), 1),
+ (MONTH_SCALE, julianToJdn(2002, 11, 1), 1),
+ (DAY_SCALE, gregorianToJdn(1900, 1, 1), 1),
+ (DAY_SCALE, 2452594, 1),
+ }
+ )
+ self.assertEqual(
+ readTestDbTable(dbFile, 'SELECT * from event_disp'),
+ {
+ (1, 1),
+ (1, MONTH_SCALE),
+ (1, DAY_SCALE),
+ (2, 1),
+ (2, MONTH_SCALE),
+ (2, DAY_SCALE),
}
)