コード例 #1
0
 def test_values(self):
     with NamedTemporaryFile() as f:
         bootstrap_file(f, m(V), '5')
         bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
         for file in ('24696157869', '24696160481', '24696163486'):
             args, db = bootstrap_file(f, m(V), '5', mm(DEV),
                                       'monitor', mm(FAST),
                                       'data/test/source/personal/[email protected]_%s.fit' % file)
             monitor(args, db)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         run_pipeline(db, PipelineType.STATISTIC, force=True, start='2018-01-01', n_cpu=1)
         run('sqlite3 %s ".dump"' % f.name, shell=True)
         with db.session_context() as s:
             mjournals = s.query(MonitorJournal).order_by(MonitorJournal.start).all()
             assert mjournals[2].start == to_time('2018-09-06 15:06:00'), mjournals[2].start
             print(mjournals[2].fit_file)
             # steps
             summary = s.query(StatisticJournal).join(StatisticName). \
                 filter(StatisticJournal.time >= local_date_to_time('2018-09-06'),
                        StatisticJournal.time < local_date_to_time('2018-09-07'),
                        StatisticName.owner == MonitorCalculator,
                        StatisticName.name == DAILY_STEPS).one()
             # connect has 12757 for this date,
             self.assertEqual(summary.value, 12757)
             # heart rate
             summary = s.query(StatisticJournal).join(StatisticName). \
                 filter(StatisticJournal.time >= local_date_to_time('2018-09-06'),
                        StatisticJournal.time < local_date_to_time('2018-09-07'),
                        StatisticName.owner == MonitorCalculator,
                        StatisticName.name == REST_HR).one()
             self.assertEqual(summary.value, 45)
コード例 #2
0
 def generic_bug(self, files):
     with NamedTemporaryFile() as f:
         args, db = bootstrap_file(f, m(V), '5')
         bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
         for file in files:
             args, db = bootstrap_file(
                 f, m(V), '5', mm(DEV), 'monitor', mm(FAST),
                 'data/test/source/personal/[email protected]_%s.fit' %
                 file)
             monitor(args, db)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         run_pipeline(db,
                      PipelineType.STATISTIC,
                      force=True,
                      start='2018-01-01',
                      n_cpu=1)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         with db.session_context() as s:
             # steps
             summary = s.query(StatisticJournal).join(StatisticName). \
                 filter(StatisticJournal.time >= local_date_to_time('2018-10-07'),
                        StatisticJournal.time < local_date_to_time('2018-10-08'),
                        StatisticName.owner == MonitorCalculator,
                        StatisticName.name == DAILY_STEPS).one()
             # connect has 3031 for this date.
             self.assertEqual(summary.value, 3031)
コード例 #3
0
ファイル: test_activities.py プロジェクト: neusinn/choochoo
 def test_segment_bug(self):
     with NamedTemporaryFile() as f:
         args, db = bootstrap_file(f,
                                   m(V),
                                   '5',
                                   mm(DEV),
                                   configurator=default)
         paths = ['/home/andrew/archive/fit/bike/2016-07-27-pm-z4.fit']
         run_pipeline(db, PipelineType.ACTIVITY, paths=paths, force=True)
コード例 #4
0
 def test_michael(self):
     with NamedTemporaryFile() as f:
         bootstrap_file(f, m(V), '5')
         bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
         args, db = bootstrap_file(f, m(V), '5', mm(DEV),
                                   'activities', mm(FAST),
                                   'data/test/source/other/2019-05-09-051352-Running-iWatchSeries3.fit')
         activities(args, db)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         run_pipeline(db, PipelineType.STATISTIC, n_cpu=1)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         with db.session_context() as s:
             self.__assert_basic_stats(s)
コード例 #5
0
 def test_florian(self):
     with NamedTemporaryFile() as f:
         bootstrap_file(f, m(V), '5')
         bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
         args, db = bootstrap_file(f, m(V), '5', mm(DEV),
                                   'activities', mm(FAST),
                                   'data/test/source/private/florian.fit')
         activities(args, db)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         run_pipeline(db, PipelineType.STATISTIC, n_cpu=1)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         with db.session_context() as s:
             self.__assert_basic_stats(s)
コード例 #6
0
 def test_920(self):
     for src in '920xt-2019-05-16_19-42-54.fit', '920xt-2019-05-16_19-42-54.fit':
         with NamedTemporaryFile() as f:
             bootstrap_file(f, m(V), '5')
             bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
             args, db = bootstrap_file(f, m(V), '5', mm(DEV), 'activities', mm(FAST),
                                       f'data/test/source/other/{src}')
             activities(args, db)
             # run('sqlite3 %s ".dump"' % f.name, shell=True)
             run_pipeline(db, PipelineType.STATISTIC, n_cpu=1)
             # run('sqlite3 %s ".dump"' % f.name, shell=True)
             with db.session_context() as s:
                 self.__assert_basic_stats(s)
コード例 #7
0
ファイル: test_activities.py プロジェクト: neusinn/choochoo
    def test_activities(self):

        with NamedTemporaryFile() as f:

            args, db = bootstrap_file(f, m(V), '5')

            bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)

            args, db = bootstrap_file(f, m(V), '5', 'constants', '--set',
                                      'FTHR.%', '154')
            constants(args, db)

            args, db = bootstrap_file(f, m(V), '5', 'constants', 'FTHR.%')
            constants(args, db)

            args, db = bootstrap_file(f, m(V), '5', 'constants', '--set',
                                      'SRTM1.dir',
                                      '/home/andrew/archive/srtm1')
            constants(args, db)

            args, db = bootstrap_file(
                f, m(V), '5', mm(DEV), 'activities', mm(FAST),
                'data/test/source/personal/2018-08-27-rec.fit')
            activities(args, db)

            # run('sqlite3 %s ".dump"' % f.name, shell=True)

            run_pipeline(db,
                         PipelineType.STATISTIC,
                         force=True,
                         start='2018-01-01',
                         n_cpu=1)

            # run('sqlite3 %s ".dump"' % f.name, shell=True)

            with db.session_context() as s:
                n_raw = s.query(count(StatisticJournalFloat.id)). \
                    join(StatisticName). \
                    filter(StatisticName.name == RAW_ELEVATION).scalar()
                self.assertEqual(2099, n_raw)
                n_fix = s.query(count(StatisticJournalFloat.id)). \
                    join(StatisticName). \
                    filter(StatisticName.name == ELEVATION).scalar()
                self.assertEqual(2099, n_fix)
                n = s.query(count(StatisticJournal.id)).scalar()
                self.assertEqual(23655, n)
                journal = s.query(ActivityJournal).one()
                self.assertNotEqual(journal.start, journal.finish)
コード例 #8
0
 def test_heart_alarms(self):
     with NamedTemporaryFile() as f:
         bootstrap_file(f, m(V), '5')
         bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
         args, db = bootstrap_file(f, m(V), '5', mm(DEV),
                                   'activities', mm(FAST),
                                   'data/test/source/personal/2016-07-19-mpu-s-z2.fit')
         activities(args, db)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         run_pipeline(db, PipelineType.STATISTIC, n_cpu=1)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         with db.session_context() as s:
             stat = s.query(StatisticJournal). \
                 join(StatisticName). \
                 filter(StatisticName.name == ACTIVE_DISTANCE).one()
             self.assertGreater(stat.value, 30000)
コード例 #9
0
 def test_monitor(self):
     with NamedTemporaryFile() as f:
         args, db = bootstrap_file(f, m(V), '5')
         bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
         args, db = bootstrap_file(f, m(V), '5', mm(DEV),
                                   'monitor', mm(FAST), 'data/test/source/personal/25822184777.fit')
         monitor(args, db)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         run_pipeline(db, PipelineType.STATISTIC, force=True, start='2018-01-01')
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         with db.session_context() as s:
             n = s.query(func.count(StatisticJournal.id)).scalar()
             # self.assertEqual(n, 111)
             self.assertEqual(n, 108)  # why?
             mjournal = s.query(MonitorJournal).one()
             self.assertNotEqual(mjournal.start, mjournal.finish)
コード例 #10
0
 def test_empty_data(self):
     with NamedTemporaryFile() as f:
         args, db = bootstrap_file(f, m(V), '5')
         bootstrap_file(f, m(V), '5', mm(DEV), configurator=default)
         args, db = bootstrap_file(
             f, m(V), '5', mm(DEV), 'monitor', mm(FAST),
             'data/test/source/other/37140810636.fit')
         monitor(args, db)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         run_pipeline(db, PipelineType.STATISTIC, n_cpu=1)
         # run('sqlite3 %s ".dump"' % f.name, shell=True)
         with db.session_context() as s:
             n = s.query(func.count(StatisticJournal.id)).scalar()
             self.assertEqual(n, 20)
             mjournal = s.query(MonitorJournal).one()
             self.assertNotEqual(mjournal.start, mjournal.finish)
コード例 #11
0
ファイル: kit.py プロジェクト: neusinn/choochoo
def rebuild(db):
    run_pipeline(db,
                 PipelineType.STATISTIC,
                 force=True,
                 like=long_cls(KitCalculator))