def test_stat_coalesce_missing(self): stat1 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None) stat2 = ActivityStatistic(ActivityStatisticUnit.Meters, value=2) stat1.coalesceWith(stat2) self.assertEqual(stat1.Value, 2) stat1 = ActivityStatistic(ActivityStatisticUnit.Meters, value=1) stat2 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None) stat1.coalesceWith(stat2) self.assertEqual(stat1.Value, 1)
def test_stat_coalesce_multi(self): stat1 = ActivityStatistic(ActivityStatisticUnit.Meters, value=1) stat2 = ActivityStatistic(ActivityStatisticUnit.Meters, value=2) stat3 = ActivityStatistic(ActivityStatisticUnit.Meters, value=3) stat4 = ActivityStatistic(ActivityStatisticUnit.Meters, value=4) stat5 = ActivityStatistic(ActivityStatisticUnit.Meters, value=5) stat1.coalesceWith(stat2) stat1.coalesceWith(stat3) stat1.coalesceWith(stat4) stat1.coalesceWith(stat5) self.assertEqual(stat1.Value, 3)
def test_stat_coalesce_multi_missingmixed(self): stat1 = ActivityStatistic(ActivityStatisticUnit.Meters, value=1) stat2 = ActivityStatistic(ActivityStatisticUnit.Meters, value=2) stat3 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None) stat4 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None) stat5 = ActivityStatistic(ActivityStatisticUnit.Meters, value=5) stat5.coalesceWith(stat2) stat3.coalesceWith(stat5) stat4.coalesceWith(stat3) stat1.coalesceWith(stat4) self.assertAlmostEqual(stat1.Value, 8/3)
def test_stat_coalesce_multi_missingmixed(self): stat1 = ActivityStatistic(ActivityStatisticUnit.Meters, value=1) stat2 = ActivityStatistic(ActivityStatisticUnit.Meters, value=2) stat3 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None) stat4 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None) stat5 = ActivityStatistic(ActivityStatisticUnit.Meters, value=5) stat5.coalesceWith(stat2) stat3.coalesceWith(stat5) stat4.coalesceWith(stat3) stat1.coalesceWith(stat4) self.assertAlmostEqual(stat1.Value, 8 / 3)
def test_stat_coalesce_multi_missingmixed_multivalued(self): stat1 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None, min=None) stat2 = ActivityStatistic(ActivityStatisticUnit.Meters, value=2, max=2) stat3 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None, gain=3) stat4 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None, loss=4) stat5 = ActivityStatistic(ActivityStatisticUnit.Meters, value=5, min=3) stat5.coalesceWith(stat2) stat3.coalesceWith(stat5) stat4.coalesceWith(stat3) stat1.coalesceWith(stat4) self.assertAlmostEqual(stat1.Value, 7/2) self.assertEqual(stat1.Min, 3) self.assertEqual(stat1.Max, 2) self.assertEqual(stat1.Gain, 3) self.assertEqual(stat1.Loss, 4)
def test_stat_coalesce_multi_missingmixed_multivalued(self): stat1 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None, min=None) stat2 = ActivityStatistic(ActivityStatisticUnit.Meters, value=2, max=2) stat3 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None, gain=3) stat4 = ActivityStatistic(ActivityStatisticUnit.Meters, value=None, loss=4) stat5 = ActivityStatistic(ActivityStatisticUnit.Meters, value=5, min=3) stat5.coalesceWith(stat2) stat3.coalesceWith(stat5) stat4.coalesceWith(stat3) stat1.coalesceWith(stat4) self.assertAlmostEqual(stat1.Value, 7 / 2) self.assertEqual(stat1.Min, 3) self.assertEqual(stat1.Max, 2) self.assertEqual(stat1.Gain, 3) self.assertEqual(stat1.Loss, 4)