From 0e6151e5e3fe246b13eb0e363cb9d37a8c6392d3 Mon Sep 17 00:00:00 2001 From: Douglas Date: Fri, 26 Feb 2016 11:00:56 -0600 Subject: [PATCH 1/3] Fix CrossFilter.groupAll() to reduce to a different type --- crossfilter/crossfilter.d.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/crossfilter/crossfilter.d.ts b/crossfilter/crossfilter.d.ts index c98d208672..9e506aa43e 100644 --- a/crossfilter/crossfilter.d.ts +++ b/crossfilter/crossfilter.d.ts @@ -58,12 +58,12 @@ declare module CrossFilter { (array: T[], lo: number, hi: number): T[]; } - export interface GroupAll { - reduce(add: (p: TValue, v: T) => TValue, remove: (p: TValue, v: T) => TValue, initial: () => TValue): GroupAll; - reduceCount(): GroupAll; - reduceSum(value: Selector): GroupAll; - dispose(): GroupAll; - value(): T; + export interface GroupAll { + reduce(add: (p: TValue, v: T) => TValue, remove: (p: TValue, v: T) => TValue, initial: () => TValue): GroupAll; + reduceCount(): GroupAll; + reduceSum(value: Selector): GroupAll; + dispose(): GroupAll; + value(): TValue; } export interface Grouping { @@ -87,7 +87,8 @@ declare module CrossFilter { add(records: T[]): CrossFilter; remove(): CrossFilter; size(): number; - groupAll(): GroupAll; + GroupAll(): GroupAll; + groupAll(): GroupAll; dimension(value: (data: T) => TDimension): Dimension; } @@ -103,8 +104,9 @@ declare module CrossFilter { bottom(k: number): T[]; dispose(): void; group(): Group; - group(groupValue: (data: TDimension) => TGroup): Group; - groupAll(): GroupAll; + group(groupValue: (data: TDimension) => TGroup): Group; + groupAll(): GroupAll; + groupAll(): GroupAll; } } From 66f219903a75d6a1edc3f6c226792f45cd7135e5 Mon Sep 17 00:00:00 2001 From: Douglas Date: Fri, 26 Feb 2016 11:09:55 -0600 Subject: [PATCH 2/3] Add test for crossfilter.groupAll() --- crossfilter/crossfilter-tests.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crossfilter/crossfilter-tests.ts b/crossfilter/crossfilter-tests.ts index 745ed3aa48..8d98bef064 100644 --- a/crossfilter/crossfilter-tests.ts +++ b/crossfilter/crossfilter-tests.ts @@ -24,6 +24,11 @@ var payments = crossfilter([ {date: "2011-11-14T17:29:52Z", quantity: 1, total: 200, tip: 100, type: "visa"} ]); +var total_payments : number = payments.groupAll().reduce( + function(p,v) { return p+=v; }, + function(p,v) { return p-=v; }, + function() { return 0; } ).value(); + var paymentsByTotal = payments.dimension((d) => d.total); // Filters From 9c5b75e796e60afd729833887870ee5541f9bd4b Mon Sep 17 00:00:00 2001 From: Douglas Date: Fri, 26 Feb 2016 11:13:57 -0600 Subject: [PATCH 3/3] Fix test for crossfilter.groupAll() --- crossfilter/crossfilter-tests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crossfilter/crossfilter-tests.ts b/crossfilter/crossfilter-tests.ts index 8d98bef064..fb80ddd9bb 100644 --- a/crossfilter/crossfilter-tests.ts +++ b/crossfilter/crossfilter-tests.ts @@ -25,8 +25,8 @@ var payments = crossfilter([ ]); var total_payments : number = payments.groupAll().reduce( - function(p,v) { return p+=v; }, - function(p,v) { return p-=v; }, + function(p,v) { return p+=v.total; }, + function(p,v) { return p-=v.total; }, function() { return 0; } ).value(); var paymentsByTotal = payments.dimension((d) => d.total);