@@ -171,6 +171,42 @@ var reductio_histogram = {
171
171
172
172
module . exports = reductio_histogram ;
173
173
} , { } ] , 6 :[ function ( _dereq_ , module , exports ) {
174
+ var reductio_max = {
175
+ add : function ( prior ) {
176
+ return function ( p , v ) {
177
+ if ( prior ) prior ( p , v ) ;
178
+
179
+ p . max = p . valueList [ p . valueList . length - 1 ] ;
180
+
181
+ return p ;
182
+ } ;
183
+ } ,
184
+ remove : function ( prior ) {
185
+ return function ( p , v ) {
186
+ if ( prior ) prior ( p , v ) ;
187
+
188
+ // Check for undefined.
189
+ if ( p . valueList . length === 0 ) {
190
+ p . max = undefined ;
191
+ return p ;
192
+ }
193
+
194
+ p . max = p . valueList [ p . valueList . length - 1 ] ;
195
+
196
+ return p ;
197
+ } ;
198
+ } ,
199
+ initial : function ( prior ) {
200
+ return function ( p ) {
201
+ p = prior ( p ) ;
202
+ p . max = undefined ;
203
+ return p ;
204
+ } ;
205
+ }
206
+ } ;
207
+
208
+ module . exports = reductio_max ;
209
+ } , { } ] , 7 :[ function ( _dereq_ , module , exports ) {
174
210
var reductio_median = {
175
211
add : function ( prior ) {
176
212
var half ;
@@ -220,11 +256,49 @@ var reductio_median = {
220
256
} ;
221
257
222
258
module . exports = reductio_median ;
223
- } , { } ] , 7 :[ function ( _dereq_ , module , exports ) {
259
+ } , { } ] , 8 :[ function ( _dereq_ , module , exports ) {
260
+ var reductio_min = {
261
+ add : function ( prior ) {
262
+ return function ( p , v ) {
263
+ if ( prior ) prior ( p , v ) ;
264
+
265
+ p . min = p . valueList [ 0 ] ;
266
+
267
+ return p ;
268
+ } ;
269
+ } ,
270
+ remove : function ( prior ) {
271
+ return function ( p , v ) {
272
+ if ( prior ) prior ( p , v ) ;
273
+
274
+ // Check for undefined.
275
+ if ( p . valueList . length === 0 ) {
276
+ p . min = undefined ;
277
+ return p ;
278
+ }
279
+
280
+ p . min = p . valueList [ 0 ] ;
281
+
282
+ return p ;
283
+ } ;
284
+ } ,
285
+ initial : function ( prior ) {
286
+ return function ( p ) {
287
+ p = prior ( p ) ;
288
+ p . min = undefined ;
289
+ return p ;
290
+ } ;
291
+ }
292
+ } ;
293
+
294
+ module . exports = reductio_min ;
295
+ } , { } ] , 9 :[ function ( _dereq_ , module , exports ) {
224
296
reductio_count = _dereq_ ( './count.js' ) ;
225
297
reductio_sum = _dereq_ ( './sum.js' ) ;
226
298
reductio_avg = _dereq_ ( './avg.js' ) ;
227
299
reductio_median = _dereq_ ( './median.js' ) ;
300
+ reductio_min = _dereq_ ( './min.js' ) ;
301
+ reductio_max = _dereq_ ( './max.js' ) ;
228
302
reductio_value_count = _dereq_ ( './value-count.js' ) ;
229
303
reductio_value_list = _dereq_ ( './value-list.js' ) ;
230
304
reductio_exception_count = _dereq_ ( './exception-count.js' ) ;
@@ -233,7 +307,7 @@ reductio_histogram = _dereq_('./histogram.js');
233
307
234
308
function reductio ( ) {
235
309
var order , avg , count , sum , exceptionAccessor , exceptionCount ,
236
- exceptionSum , valueList , median , histogramValue ,
310
+ exceptionSum , valueList , median , histogramValue , min , max ,
237
311
histogramThresholds ,
238
312
reduceAdd , reduceRemove , reduceInitial ;
239
313
@@ -300,7 +374,7 @@ function reductio() {
300
374
}
301
375
302
376
// Maintain the values array.
303
- if ( valueList || median ) {
377
+ if ( valueList || median || min || max ) {
304
378
reduceAdd = reductio_value_list . add ( valueList , reduceAdd ) ;
305
379
reduceRemove = reductio_value_list . remove ( valueList , reduceRemove ) ;
306
380
reduceInitial = reductio_value_list . initial ( reduceInitial ) ;
@@ -312,6 +386,18 @@ function reductio() {
312
386
reduceInitial = reductio_median . initial ( reduceInitial ) ;
313
387
}
314
388
389
+ if ( min ) {
390
+ reduceAdd = reductio_min . add ( reduceAdd ) ;
391
+ reduceRemove = reductio_min . remove ( reduceRemove ) ;
392
+ reduceInitial = reductio_min . initial ( reduceInitial ) ;
393
+ }
394
+
395
+ if ( max ) {
396
+ reduceAdd = reductio_max . add ( reduceAdd ) ;
397
+ reduceRemove = reductio_max . remove ( reduceRemove ) ;
398
+ reduceInitial = reductio_max . initial ( reduceInitial ) ;
399
+ }
400
+
315
401
// Maintain the values count array.
316
402
if ( exceptionAccessor ) {
317
403
reduceAdd = reductio_value_count . add ( exceptionAccessor , reduceAdd ) ;
@@ -379,6 +465,22 @@ function reductio() {
379
465
return my ;
380
466
} ;
381
467
468
+ my . min = function ( value ) {
469
+ if ( ! arguments . length ) return min ;
470
+ if ( valueList ) console . warn ( 'VALUELIST accessor is being overwritten by min aggregation' ) ;
471
+ valueList = value ;
472
+ min = value ;
473
+ return my ;
474
+ } ;
475
+
476
+ my . max = function ( value ) {
477
+ if ( ! arguments . length ) return max ;
478
+ if ( valueList ) console . warn ( 'VALUELIST accessor is being overwritten by max aggregation' ) ;
479
+ valueList = value ;
480
+ max = value ;
481
+ return my ;
482
+ } ;
483
+
382
484
my . exceptionCount = function ( value ) {
383
485
if ( ! arguments . length ) return exceptionCount ;
384
486
if ( typeof value === 'function' ) {
@@ -413,7 +515,7 @@ function reductio() {
413
515
}
414
516
415
517
module . exports = reductio ;
416
- } , { "./avg.js" :1 , "./count.js" :2 , "./exception-count.js" :3 , "./exception-sum.js" :4 , "./histogram.js" :5 , "./median .js" :6 , "./sum .js" :8 , "./value-count.js" :9 , "./value-list.js" :10 } ] , 8 :[ function ( _dereq_ , module , exports ) {
518
+ } , { "./avg.js" :1 , "./count.js" :2 , "./exception-count.js" :3 , "./exception-sum.js" :4 , "./histogram.js" :5 , "./max .js" :6 , "./median .js" :7 , "./min.js" : 8 , "./sum.js" : 10 , "./ value-count.js" :11 , "./value-list.js" :12 } ] , 10 :[ function ( _dereq_ , module , exports ) {
417
519
var reductio_sum = {
418
520
add : function ( a , prior ) {
419
521
return function ( p , v ) {
@@ -439,7 +541,7 @@ var reductio_sum = {
439
541
} ;
440
542
441
543
module . exports = reductio_sum ;
442
- } , { } ] , 9 :[ function ( _dereq_ , module , exports ) {
544
+ } , { } ] , 11 :[ function ( _dereq_ , module , exports ) {
443
545
var reductio_value_count = {
444
546
add : function ( a , prior ) {
445
547
var i , curr ;
@@ -480,7 +582,7 @@ var reductio_value_count = {
480
582
} ;
481
583
482
584
module . exports = reductio_value_count ;
483
- } , { } ] , 10 :[ function ( _dereq_ , module , exports ) {
585
+ } , { } ] , 12 :[ function ( _dereq_ , module , exports ) {
484
586
var reductio_value_list = {
485
587
add : function ( a , prior ) {
486
588
var i ;
@@ -514,6 +616,6 @@ var reductio_value_list = {
514
616
} ;
515
617
516
618
module . exports = reductio_value_list ;
517
- } , { } ] } , { } , [ 7 ] )
518
- ( 7 )
619
+ } , { } ] } , { } , [ 9 ] )
620
+ ( 9 )
519
621
} ) ;
0 commit comments