From f3368b0ac67cfa6ca88bc633161fff86fcc0323a Mon Sep 17 00:00:00 2001 From: Chris Hondl Date: Tue, 4 Dec 2012 14:31:10 -0800 Subject: [PATCH] Add test that pivot group respects filters --- test/pivot-test.js | 51 +++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/test/pivot-test.js b/test/pivot-test.js index 577915eb..aa5a1ea0 100644 --- a/test/pivot-test.js +++ b/test/pivot-test.js @@ -6,32 +6,41 @@ var suite = vows.describe("pivot"); suite.addBatch({ "pivot all": { - topic: [ - { gender:'Female', handed:'Right-handed'}, - { gender:'Male', handed:'Left-handed'}, - { gender:'Female', handed:'Right-handed'}, - { gender:'Male', handed:'Right-handed'}, - { gender:'Male', handed:'Left-handed'}, - { gender:'Male', handed:'Right-handed'}, - { gender:'Female', handed:'Right-handed'}, - { gender:'Female', handed:'Left-handed'}, - { gender:'Male', handed:'Right-handed'}, - { gender:'Female', handed:'Right-handed'}, - ], - "counts records by default": function(data) { - var c = crossfilter(data), - dimGender = c.dimension(function(v) { return v.gender }), - groupGender = dimGender.group(), - dimHanded = c.dimension(function(v) { return v.handed }), - groupHanded = dimHanded.group(), - p = c.pivotGroup([groupGender, groupHanded]) + topic: function() { + var rslt = {} + rslt.data = [ { gender:'Female', handed:'Right-handed'}, + { gender:'Male', handed:'Left-handed'}, + { gender:'Female', handed:'Right-handed'}, + { gender:'Male', handed:'Right-handed'}, + { gender:'Male', handed:'Left-handed'}, + { gender:'Male', handed:'Right-handed'}, + { gender:'Female', handed:'Right-handed'}, + { gender:'Female', handed:'Left-handed'}, + { gender:'Male', handed:'Right-handed'}, + { gender:'Female', handed:'Right-handed'}, + ] + rslt.c = crossfilter(rslt.data) + rslt.dim = { gender: rslt.c.dimension(function(v) { return v.gender }), handed: rslt.c.dimension(function(v) { return v.handed }) } + rslt.group = { gender: rslt.dim.gender.group(), handed: rslt.dim.handed.group() } + return rslt + }, + "counts records by default": function(fixture) { + var p = fixture.c.pivotGroup([fixture.group.gender, fixture.group.handed]) - assert.deepEqual(groupGender.all(), [{key:'Female', value:5}, {key:'Male', value:5}]) - assert.deepEqual(groupHanded.all(), [{key:'Left-handed', value:3}, {key:'Right-handed', value:7}]) assert.deepEqual(p.all(), [{key:['Female', 'Left-handed'], value:1}, {key:['Female', 'Right-handed'], value:4}, {key:['Male', 'Left-handed'], value:2}, {key:['Male', 'Right-handed'], value:3}]) + }, + "respects filters": function(fixture) { + var p = fixture.c.pivotGroup([fixture.group.gender, fixture.group.handed]) + + fixture.dim.gender.filter('Female') + + assert.deepEqual(p.all(), [{key:['Female', 'Left-handed'], value:1}, + {key:['Female', 'Right-handed'], value:4}, + {key:['Male', 'Left-handed'], value:0}, + {key:['Male', 'Right-handed'], value:0}]) } } })