@@ -412,6 +412,7 @@ def match_row(trend, row):
412412 self .assertEqual (trend ["max_date" ], first .time_value )
413413 self .assertEqual (trend ["max_value" ], first .value )
414414 self .assertEqual (trend ["max_trend" ], "steady" )
415+
415416 with self .subTest ("trend1" ):
416417 trend = trends [1 ]
417418 match_row (trend , rows [1 ])
@@ -440,6 +441,65 @@ def match_row(trend, row):
440441 self .assertEqual (trend ["max_value" ], first .value )
441442 self .assertEqual (trend ["max_trend" ], "decreasing" )
442443
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+
443503 def test_correlation (self ):
444504 """Request a signal the /correlation endpoint."""
445505
0 commit comments