def test_intradayStats(self):
        filepath = RESOURCE_PATH + "\\unittest\\test_sleep_basic01.csv"
        data1 = utils.loadIntradayData(filepath)
        filepath = RESOURCE_PATH + "\\unittest\\test_sleep_basic02.csv"
        data2 = utils.loadIntradayData(filepath)
        stats = sleepStats.generateIntradayStats([data1, data2])

        self.assertEqual(stats.iloc[0].name, datetime.date(2016, 3, 21))
        self.assertEqual(stats.iloc[1].name, datetime.date(2016, 3, 22))
Esempio n. 2
0
    def test_plottingOnIntradayStats(self):
        filepath =  RESOURCE_PATH + "\\unittest\\test_sleep_basic01.csv"
        data1 = utils.loadIntradayData(filepath)
        filepath =  RESOURCE_PATH + "\\unittest\\test_sleep_basic02.csv"
        data2 = utils.loadIntradayData(filepath)
        stats = sleepStats.generateStatsFrom([data1, data2],
                                             sleepStats.STATS_NAME_INTRADAY)

        data = stats.apply(pd.value_counts)
        mplot.plotSleepValueHeatmap(data, sleepValue=1)
Esempio n. 3
0
    def test_plottingOnBasicStats(self):
        filepath =  RESOURCE_PATH + "\\unittest\\test_sleep_basic01.csv"
        data1 = utils.loadIntradayData(filepath)
        filepath =  RESOURCE_PATH + "\\unittest\\test_sleep_basic02.csv"
        data2 = utils.loadIntradayData(filepath)
        stats = sleepStats.generateStatsFrom([data1, data2],
                                             sleepStats.STATS_NAME_BASIC_AND_TIMING).reset_index()
        stats['date'] = pd.to_datetime(stats['date'])

        mplot.plotYearAndMonthStatsSleep(stats)
        mplot.plotPreliminaryStats(stats)
        mplot.plotWeekdayStatsSleep(stats)
        mplot.plotDailyStatsSleep(stats)
        mplot.plotMonthlyStatsSleep(stats)
    def test_intervalsStats(self):
        filepath = RESOURCE_PATH + "\\unittest\\test_sleep_intervals01.csv"
        data1 = utils.loadIntradayData(filepath)
        filepath = RESOURCE_PATH + "\\unittest\\test_sleep_intervals02.csv"
        data2 = utils.loadIntradayData(filepath)
        stats = sleepStats.generateIntervalsStats([data1, data2], 5)

        self.assertEqual(stats.iloc[0][0], 5)
        self.assertEqual(stats.iloc[0][1], 8)
        self.assertEqual(stats.iloc[0][2], 8)
        self.assertEqual(stats.iloc[1][0], 6)
        self.assertEqual(stats.iloc[1][1], 5)
        self.assertEqual(stats.iloc[1][2], 8)
        self.assertEqual(stats.iloc[1][3], 11)
Esempio n. 5
0
def generateStatsFrom(folder, statsType, **kwargs):
    """

    :param folder: folder where the fitbit data dump is.
    Should contain one sub-folder for each day
    :return:
    """
    filepaths = utils.getAllFilepaths(folder)
    filesData = []

    for path in filepaths:
        data = utils.loadIntradayData(path)
        #Filter out empty records (all values equals to zero)
        if (data['value'] == SleepValue.none.value).all():
            continue
        filesData.append(data)

    if statsType == STATS_NAME_BASIC:
        stats = generateBasicStats(filesData)
    elif statsType == STATS_NAME_TIMING:
        stats = generateTimingStats(filesData, **kwargs)
    elif statsType == STATS_NAME_BASIC_AND_TIMING:
        basicStats = generateBasicStats(filesData)
        timingStats = generateTimingStats(filesData, **kwargs)
        stats = pd.concat([basicStats, timingStats], axis=1)
    elif statsType == STATS_NAME_INTERVALS:
        stats = generateIntervalsStats(filesData, **kwargs)
    elif statsType == STATS_NAME_INTRADAY:
        stats = generateIntradayStats(filesData, **kwargs)
    else:
        raise Exception(statsType + ' Stat not implemented')
    return stats
Esempio n. 6
0
    def test_basicStats(self):
        filepath =  RESOURCE_PATH + "\\unittest\\test_hb_basic01.csv"
        data = utils.loadIntradayData(filepath).set_index('datetime')
        stats = hbStats.groupByBasicStats(pd.TimeGrouper(freq='d'), data)

        self.assertEqual(stats.iloc[0]['count'], 16)
        self.assertEqual(stats.iloc[0]['max'], 70)
        self.assertEqual(stats.iloc[0]['min'], 50)
        self.assertEqual(stats.iloc[0]['mean'], 60)
Esempio n. 7
0
    def test_minMax(self):
        filepath =  RESOURCE_PATH + "\\unittest\\test_hb_basic01.csv"
        data = utils.loadIntradayData(filepath).set_index('datetime')
        stats = hbStats.getMaxValues(data, 2)

        self.assertEqual(stats.iloc[0].value, 70)
        self.assertEqual(stats.iloc[1].value, 60)

        stats = hbStats.getMinValues(data, 2)

        self.assertEqual(stats.iloc[0].value, 50)
        self.assertEqual(stats.iloc[1].value, 60)
    def test_firstMinuteAsleep(self):
        filepath = RESOURCE_PATH + "\\unittest\\test_sleepStats.csv"
        data = utils.loadIntradayData(filepath)
        firstMinuteAsleep = sleepStats.getFirstMinuteAsleep(data)
        self.assertEqual(firstMinuteAsleep, 8)

        firstMinuteAsleep = sleepStats.getFirstMinuteAsleep(data, 10)
        self.assertEqual(firstMinuteAsleep, 8)

        firstMinuteAsleep = sleepStats.getFirstMinuteAsleep(data, 11)
        self.assertEqual(firstMinuteAsleep, 19)

        firstMinuteAsleep = sleepStats.getFirstMinuteAsleep(data, 500)
        self.assertEqual(firstMinuteAsleep, None)