From 28a2e937c7ed48c2432f2a03f2164a6bef5eae72 Mon Sep 17 00:00:00 2001 From: Arvind Satyanarayan Date: Thu, 20 Jan 2022 15:07:00 -0500 Subject: [PATCH] Update unit tests --- test/compile/selection/clear.test.ts | 6 +++--- test/compile/selection/point.test.ts | 27 +++++++++++++++++------- test/compile/selection/predicate.test.ts | 26 +++++++++++++---------- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/test/compile/selection/clear.test.ts b/test/compile/selection/clear.test.ts index 197a73125a..4878656600 100644 --- a/test/compile/selection/clear.test.ts +++ b/test/compile/selection/clear.test.ts @@ -61,7 +61,7 @@ describe('Clear selection transform, point types', () => { { events: selCmpts['one'].events, update: - 'datum && item().mark.marktype !== \'group\' ? {unit: "", fields: one_tuple_fields, values: [(item().isVoronoi ? datum.datum : datum)["_vgsid_"]]} : null', + 'datum && item().mark.marktype !== \'group\' ? {unit: "", _vgsid_: (item().isVoronoi ? datum.datum : datum)["_vgsid_"]} : null', force: true }, {events: parseSelector('dblclick', 'view'), update: 'null'} @@ -78,7 +78,7 @@ describe('Clear selection transform, point types', () => { { events: selCmpts['three'].events, update: - 'datum && item().mark.marktype !== \'group\' ? {unit: "", fields: three_tuple_fields, values: [(item().isVoronoi ? datum.datum : datum)["_vgsid_"]]} : null', + 'datum && item().mark.marktype !== \'group\' ? {unit: "", _vgsid_: (item().isVoronoi ? datum.datum : datum)["_vgsid_"]} : null', force: true }, {events: parseSelector('mouseout', 'view'), update: 'null'} @@ -95,7 +95,7 @@ describe('Clear selection transform, point types', () => { { events: selCmpts['four'].events, update: - 'datum && item().mark.marktype !== \'group\' ? {unit: "", fields: four_tuple_fields, values: [(item().isVoronoi ? datum.datum : datum)["_vgsid_"]]} : null', + 'datum && item().mark.marktype !== \'group\' ? {unit: "", _vgsid_: (item().isVoronoi ? datum.datum : datum)["_vgsid_"]} : null', force: true }, {events: parseSelector('mouseout', 'view'), update: 'null'} diff --git a/test/compile/selection/point.test.ts b/test/compile/selection/point.test.ts index 90ee24a406..dc281b29a7 100644 --- a/test/compile/selection/point.test.ts +++ b/test/compile/selection/point.test.ts @@ -90,6 +90,11 @@ describe('Multi Selection', () => { name: 'eight', value: 75, select: 'point' + }, + { + name: 'nine', + value: [{_vgsid_: 75}, {_vgsid_: 80}], + select: 'point' } ])); @@ -102,7 +107,7 @@ describe('Multi Selection', () => { { events: selCmpts['one'].events, update: - 'datum && item().mark.marktype !== \'group\' ? {unit: "", fields: one_tuple_fields, values: [(item().isVoronoi ? datum.datum : datum)["_vgsid_"]]} : null', + 'datum && item().mark.marktype !== \'group\' ? {unit: "", _vgsid_: (item().isVoronoi ? datum.datum : datum)["_vgsid_"]} : null', force: true } ] @@ -203,7 +208,7 @@ describe('Multi Selection', () => { { events: selCmpts['one'].events, update: - "datum && item().mark.marktype !== 'group' && indexof(item().mark.name, 'two_brush') < 0 && indexof(item().mark.name, 'three_brush') < 0 ? {unit: \"\", fields: one_tuple_fields, values: [(item().isVoronoi ? datum.datum : datum)[\"_vgsid_\"]]} : null", + "datum && item().mark.marktype !== 'group' && indexof(item().mark.name, 'two_brush') < 0 && indexof(item().mark.name, 'three_brush') < 0 ? {unit: \"\", _vgsid_: (item().isVoronoi ? datum.datum : datum)[\"_vgsid_\"]} : null", force: true } ] @@ -261,7 +266,10 @@ describe('Multi Selection', () => { it('builds unit datasets', () => { expect(assembleUnitSelectionData(model, [])).toEqual([ - {name: 'one_store'}, + { + name: 'one_store', + transform: [{type: 'collect', sort: {field: '_vgsid_'}}] + }, {name: 'two_store'}, { name: 'thr_ee_store', @@ -320,12 +328,15 @@ describe('Multi Selection', () => { }, { name: 'eight_store', + transform: [{type: 'collect', sort: {field: '_vgsid_'}}], + values: [{unit: '', _vgsid_: 75}] + }, + { + name: 'nine_store', + transform: [{type: 'collect', sort: {field: '_vgsid_'}}], values: [ - { - unit: '', - fields: [{type: 'E', field: '_vgsid_'}], - values: [75] - } + {unit: '', _vgsid_: 75}, + {unit: '', _vgsid_: 80} ] } ]); diff --git a/test/compile/selection/predicate.test.ts b/test/compile/selection/predicate.test.ts index edd36dd1b5..1bd8261276 100644 --- a/test/compile/selection/predicate.test.ts +++ b/test/compile/selection/predicate.test.ts @@ -21,7 +21,7 @@ describe('Selection Predicate', () => { field: 'Acceleration', type: 'quantitative', condition: { - param: 'one', + param: 'two', empty: false, value: 0.5 } @@ -47,9 +47,11 @@ describe('Selection Predicate', () => { it('generates the predicate expression', () => { // Different resolutions - expect(predicate(model, {param: 'one'})).toBe('!length(data("one_store")) || vlSelectionTest("one_store", datum)'); + expect(predicate(model, {param: 'one'})).toBe( + '!length(data("one_store")) || vlSelectionIdTest("one_store", datum)' + ); expect(predicate(model, {param: 'two'})).toBe( - '!length(data("two_store")) || vlSelectionTest("two_store", datum, "union")' + '!length(data("two_store")) || vlSelectionIdTest("two_store", datum, "union")' ); expect(predicate(model, {param: 'thr-ee'})).toBe( '!length(data("thr_ee_store")) || vlSelectionTest("thr_ee_store", datum, "intersect")' @@ -57,10 +59,10 @@ describe('Selection Predicate', () => { // Different emptiness expect(predicate(model, {param: 'one', empty: true})).toBe( - '!length(data("one_store")) || vlSelectionTest("one_store", datum)' + '!length(data("one_store")) || vlSelectionIdTest("one_store", datum)' ); - expect(predicate(model, {param: 'one', empty: false})).toBe( - 'length(data("one_store")) && vlSelectionTest("one_store", datum)' + expect(predicate(model, {param: 'two', empty: false})).toBe( + 'length(data("two_store")) && vlSelectionIdTest("two_store", datum, "union")' ); // Variable parameters @@ -70,7 +72,7 @@ describe('Selection Predicate', () => { it('generates Vega production rules', () => { expect(nonPosition('color', model, {vgChannel: 'fill'})).toEqual({ fill: [ - {test: '!length(data("one_store")) || vlSelectionTest("one_store", datum)', value: 'grey'}, + {test: '!length(data("one_store")) || vlSelectionIdTest("one_store", datum)', value: 'grey'}, {scale: 'color', field: 'Cylinders'} ] }); @@ -78,7 +80,7 @@ describe('Selection Predicate', () => { expect(nonPosition('opacity', model)).toEqual({ opacity: [ { - test: 'length(data("one_store")) && vlSelectionTest("one_store", datum)', + test: 'length(data("two_store")) && vlSelectionIdTest("two_store", datum, "union")', value: 0.5 }, {scale: 'opacity', field: 'Acceleration'} @@ -98,10 +100,12 @@ describe('Selection Predicate', () => { }); it('generates a selection filter', () => { - expect(expression(model, {param: 'one'})).toBe('!length(data("one_store")) || vlSelectionTest("one_store", datum)'); + expect(expression(model, {param: 'one'})).toBe( + '!length(data("one_store")) || vlSelectionIdTest("one_store", datum)' + ); - expect(expression(model, {not: {param: 'one', empty: false}})).toBe( - '!(length(data("one_store")) && vlSelectionTest("one_store", datum))' + expect(expression(model, {not: {param: 'two', empty: false}})).toBe( + '!(length(data("two_store")) && vlSelectionIdTest("two_store", datum, "union"))' ); expect(expression(model, {not: {param: 'varHelloWorld'}})).toBe('!(!!varHelloWorld)');