@@ -412,6 +412,7 @@ def match_row(trend, row):
412
412
self .assertEqual (trend ["max_date" ], first .time_value )
413
413
self .assertEqual (trend ["max_value" ], first .value )
414
414
self .assertEqual (trend ["max_trend" ], "steady" )
415
+
415
416
with self .subTest ("trend1" ):
416
417
trend = trends [1 ]
417
418
match_row (trend , rows [1 ])
@@ -440,6 +441,65 @@ def match_row(trend, row):
440
441
self .assertEqual (trend ["max_value" ], first .value )
441
442
self .assertEqual (trend ["max_trend" ], "decreasing" )
442
443
444
+ num_rows = 3
445
+ time_value_pairs = [(20200331 , 0 )] + [(20200401 + i , v ) for i , v in enumerate (accumulate ([num_rows - i for i in range (num_rows )]))]
446
+ rows = [CovidcastRow (source = "jhu-csse" , signal = "confirmed_cumulative_num" , time_value = t , value = v ) for t , v in time_value_pairs ]
447
+ self ._insert_rows (rows )
448
+ diffed_rows = self ._diff_covidcast_rows (rows )
449
+ for row in diffed_rows :
450
+ row .signal = "confirmed_incidence_num"
451
+ first = diffed_rows [0 ]
452
+ last = diffed_rows [- 1 ]
453
+
454
+ out = self ._fetch ("/trendseries" , signal = "jhu-csse:confirmed_incidence_num" , geo = first .geo_pair , date = last .time_value , window = "20200401-20200410" , basis = 1 )
455
+
456
+ self .assertEqual (out ["result" ], 1 )
457
+ self .assertEqual (len (out ["epidata" ]), 3 )
458
+ trends = out ["epidata" ]
459
+
460
+ with self .subTest ("trend0, server-side compute" ):
461
+ trend = trends [0 ]
462
+ match_row (trend , first )
463
+ self .assertEqual (trend ["basis_date" ], None )
464
+ self .assertEqual (trend ["basis_value" ], None )
465
+ self .assertEqual (trend ["basis_trend" ], "unknown" )
466
+
467
+ self .assertEqual (trend ["min_date" ], last .time_value )
468
+ self .assertEqual (trend ["min_value" ], last .value )
469
+ self .assertEqual (trend ["min_trend" ], "increasing" )
470
+ self .assertEqual (trend ["max_date" ], first .time_value )
471
+ self .assertEqual (trend ["max_value" ], first .value )
472
+ self .assertEqual (trend ["max_trend" ], "steady" )
473
+
474
+ with self .subTest ("trend1" ):
475
+ trend = trends [1 ]
476
+ match_row (trend , diffed_rows [1 ])
477
+ self .assertEqual (trend ["basis_date" ], first .time_value )
478
+ self .assertEqual (trend ["basis_value" ], first .value )
479
+ self .assertEqual (trend ["basis_trend" ], "decreasing" )
480
+
481
+ self .assertEqual (trend ["min_date" ], last .time_value )
482
+ self .assertEqual (trend ["min_value" ], last .value )
483
+ self .assertEqual (trend ["min_trend" ], "increasing" )
484
+ self .assertEqual (trend ["max_date" ], first .time_value )
485
+ self .assertEqual (trend ["max_value" ], first .value )
486
+ self .assertEqual (trend ["max_trend" ], "decreasing" )
487
+
488
+ with self .subTest ("trend2" ):
489
+ trend = trends [2 ]
490
+ match_row (trend , last )
491
+ self .assertEqual (trend ["basis_date" ], diffed_rows [1 ].time_value )
492
+ self .assertEqual (trend ["basis_value" ], diffed_rows [1 ].value )
493
+ self .assertEqual (trend ["basis_trend" ], "decreasing" )
494
+
495
+ self .assertEqual (trend ["min_date" ], last .time_value )
496
+ self .assertEqual (trend ["min_value" ], last .value )
497
+ self .assertEqual (trend ["min_trend" ], "steady" )
498
+ self .assertEqual (trend ["max_date" ], first .time_value )
499
+ self .assertEqual (trend ["max_value" ], first .value )
500
+ self .assertEqual (trend ["max_trend" ], "decreasing" )
501
+
502
+
443
503
def test_correlation (self ):
444
504
"""Request a signal the /correlation endpoint."""
445
505
0 commit comments