From ae74fbd8f985ddc8c0fbad89dda52a358b6126a4 Mon Sep 17 00:00:00 2001 From: Fabian Kovacs Date: Mon, 23 Mar 2026 12:04:33 +0100 Subject: [PATCH 1/2] adds testcases for TEMPORAL where elements enter/leave due to date-restrictions in compare --- .../query/TEMPORAL/AFTER/ALL/ALL/content.csv | 8 + .../tests/query/TEMPORAL/AND/content.csv | 16 ++ .../tests/query/TEMPORAL/AND/expected.csv | 2 + .../tests/query/TEMPORAL/AND/query.test.json | 155 ++++++++++++++++++ 4 files changed, 181 insertions(+) create mode 100644 backend/src/test/resources/tests/query/TEMPORAL/AND/content.csv create mode 100644 backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv create mode 100644 backend/src/test/resources/tests/query/TEMPORAL/AND/query.test.json diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv index 8ab8a5d7f3..4e7b6c94c4 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv @@ -27,3 +27,11 @@ pid,datum,value,sum,description 5,2011-01-11,index,, 5,2011-01-16,compare,, 5,2011-01-18,compare,1, + + +6,2011-01-01,index,, +6,2011-01-06,compare,1, + +6,2011-01-11,index,,the sum brings them below 1 again +6,2011-01-16,compare,1, +6,2011-01-17,compare,-1, diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AND/content.csv b/backend/src/test/resources/tests/query/TEMPORAL/AND/content.csv new file mode 100644 index 0000000000..5d901af15f --- /dev/null +++ b/backend/src/test/resources/tests/query/TEMPORAL/AND/content.csv @@ -0,0 +1,16 @@ +pid,datum,value,sum +00,2011-01-01,index, +01,2011-01-01,compare, + +1,2011-01-01,index, +1,2011-01-05/2011-01-10,compare_1,1 +1,2011-01-05/2011-01-10,compare_2,1 + +2,2011-01-01,index, +2,2011-01-05/2011-01-10,compare_1,1 +2,2011-01-01/2011-01-10,compare_2,1 + +3,2011-01-01,index, +3,2011-01-05/2011-01-10,compare_1,1 +3,2011-01-05/2011-01-10,compare_2,2 +3,2011-01-01/2011-01-01,compare_2,-1 \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv b/backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv new file mode 100644 index 0000000000..14460aea5a --- /dev/null +++ b/backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv @@ -0,0 +1,2 @@ +result,dates,concept - Compare Dates,concept agg +1,{2011-01-01/2011-01-01},"{2011-01-01/2011-01-01,2011-01-05/2011-01-10}","{1,3}" \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AND/query.test.json b/backend/src/test/resources/tests/query/TEMPORAL/AND/query.test.json new file mode 100644 index 0000000000..bcea4f5671 --- /dev/null +++ b/backend/src/test/resources/tests/query/TEMPORAL/AND/query.test.json @@ -0,0 +1,155 @@ +{ + "type": "QUERY_TEST", + "label": "Temporal Test AND in compare", + "expectedCsv": "tests/query/TEMPORAL/AND/expected.csv", + "query": { + "type": "CONCEPT_QUERY", + "root": { + "type": "TEMPORAL", + "indexSelector": "ALL", + "compareSelector": "ALL", + "mode": { + "type": "AFTER", + "days": { + "min": 0, + "max": 10 + } + }, + "index": { + "ids": [ + "concept" + ], + "type": "CONCEPT", + "tables": [ + { + "id": "concept.connector", + "filters": [ + { + "filter": "concept.connector.filter", + "type": "SELECT", + "value": "index" + } + ] + } + ] + }, + "compare": { + "type" : "AND", + "children" : [ + { + "ids": [ + "concept" + ], + "type": "CONCEPT", + "tables": [ + { + "id": "concept.connector", + "selects": [ + ], + "filters": [ + { + "filter": "concept.connector.filter", + "type": "SELECT", + "value": "compare_1" + }, + { + "filter": "concept.connector.sum", + "type": "INTEGER_RANGE", + "value": { + "min": 1, + "max": 1 + } + } + ] + } + ] + }, + { + "ids": [ + "concept" + ], + "type": "CONCEPT", + "tables": [ + { + "id": "concept.connector", + "selects": [ + ], + "filters": [ + { + "filter": "concept.connector.filter", + "type": "SELECT", + "value": "compare_2" + }, + { + "filter": "concept.connector.sum", + "type": "INTEGER_RANGE", + "value": { + "min": 1, + "max": 1 + } + } + ] + } + ] + } + ] + } + } + }, + "concepts": [ + { + "name": "concept", + "type": "TREE", + "connectors": [ + { + "name": "connector", + "table": "table", + "validityDates": { + "name": "datum", + "column": "table.datum" + }, + "selects": [ + ], + "filters": [ + { + "name": "filter", + "column": "table.value", + "type": "SINGLE_SELECT" + }, + { + "name": "sum", + "column": "table.sum", + "type": "SUM" + } + ] + } + ] + } + ], + "content": { + "tables": [ + { + "csv": "tests/query/TEMPORAL/AND/content.csv", + "name": "table", + "primaryColumn": { + "name": "pid", + "type": "STRING" + }, + "columns": [ + { + "name": "datum", + "type": "DATE_RANGE" + }, + { + "name": "value", + "type": "STRING" + }, + { + "name": "sum", + "type": "INTEGER" + } + ] + } + ] + } +} From 5d103b3fddd35abbe56e2f4b5ff177a178731111 Mon Sep 17 00:00:00 2001 From: Fabian Kovacs Date: Mon, 23 Mar 2026 15:47:19 +0100 Subject: [PATCH 2/2] adds testcases that are specific to EALIEST/LATEST --- .../tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv | 6 ++++++ .../tests/query/TEMPORAL/AFTER/ALL/ALL/expected.csv | 1 + .../tests/query/TEMPORAL/AFTER/EARLIEST/ALL/content.csv | 4 ++++ .../tests/query/TEMPORAL/AFTER/EARLIEST/ALL/expected.csv | 1 + .../tests/query/TEMPORAL/AFTER/LATEST/ALL/content.csv | 4 ++++ .../tests/query/TEMPORAL/AFTER/LATEST/ALL/expected.csv | 3 ++- .../test/resources/tests/query/TEMPORAL/AND/expected.csv | 5 +++-- 7 files changed, 21 insertions(+), 3 deletions(-) diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv index 4e7b6c94c4..d82f821993 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/content.csv @@ -35,3 +35,9 @@ pid,datum,value,sum,description 6,2011-01-11,index,,the sum brings them below 1 again 6,2011-01-16,compare,1, 6,2011-01-17,compare,-1, + + + +7,2010-01-01/2011-01-01,index,, +7,2011-01-06,compare,1, +7,2011-01-08,compare,1, \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/expected.csv b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/expected.csv index 9e3ce20071..3ac21a51b8 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/expected.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/ALL/ALL/expected.csv @@ -1,3 +1,4 @@ result,dates 2,{2011-01-01/2011-01-01} 4,"{2011-01-01/2011-01-01,2011-01-11/2011-01-11}" +7,{2010-01-01/2011-01-01} \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/content.csv b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/content.csv index 212f666f0b..17803f56b4 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/content.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/content.csv @@ -28,3 +28,7 @@ pid,datum,value,sum,description 4,2011-01-16,compare,0, 4,2011-01-18,compare,1, + +7,2011-01-01/2011-01-10,index,,this one is weird: the earliest day +7,2011-01-06,compare,1, +7,2011-01-08,compare,1, \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/expected.csv b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/expected.csv index 6370f509d9..2629b23f7c 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/expected.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/EARLIEST/ALL/expected.csv @@ -1,3 +1,4 @@ result,dates 1,{2011-01-01/2011-01-01} 3,{2011-01-01/2011-01-01} +7,{2011-01-01/2011-01-10} \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/content.csv b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/content.csv index 578d22e141..416a92e641 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/content.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/content.csv @@ -36,3 +36,7 @@ pid,datum,value,sum,description 5,2011-01-16,compare,1, 5,2011-01-18,compare,1, + +7,2010-01-01/2011-01-01,index,,this one is weird: the latest day +7,2011-01-06,compare,1, +7,2011-01-08,compare,1, \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/expected.csv b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/expected.csv index b68c77a395..fbe95de102 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/expected.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AFTER/LATEST/ALL/expected.csv @@ -1,3 +1,4 @@ result,dates 1,{2011-01-01/2011-01-01} -5,{2011-01-11/2011-01-11} \ No newline at end of file +5,{2011-01-11/2011-01-11} +7,{2010-01-01/2011-01-01} \ No newline at end of file diff --git a/backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv b/backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv index 14460aea5a..b898cc1ef6 100644 --- a/backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv +++ b/backend/src/test/resources/tests/query/TEMPORAL/AND/expected.csv @@ -1,2 +1,3 @@ -result,dates,concept - Compare Dates,concept agg -1,{2011-01-01/2011-01-01},"{2011-01-01/2011-01-01,2011-01-05/2011-01-10}","{1,3}" \ No newline at end of file +result,dates +1,{2011-01-01/2011-01-01} +2,{2011-01-01/2011-01-01} \ No newline at end of file