Exemplo n.º 1
0
    def test_get_record(self):
        """
        Returns the fastest time for men and women in the given event.
        """
        team = test.create_team(self.user)
        swimmer1 = test.create_swimmer(team)
        swimmer2 = test.create_swimmer(team, first='Jane', last='Doe', gender='F')
        event1 = test.create_event(swimmer1, '50 free', timedelta(seconds=22.32))
        event2 = test.create_event(swimmer1, '50 free', timedelta(seconds=22.96))
        event3 = test.create_event(swimmer2, '50 free', timedelta(seconds=23.51))
        event1.set_gender()
        event1.team = team
        event1.save()
        event2.set_gender()
        event2.team = team
        event2.save()
        event3.set_gender()
        event3.team = team
        event3.save()

        records1 = team.get_record(('50 free', '50 Freestyle'))
        records2 = team.get_record(('100 free', '100 Freestyle'))

        self.assertEqual(records1, ('50 Freestyle', event1, event3))
        self.assertEqual(records2, ('100 Freestyle', None, None))
Exemplo n.º 2
0
    def test_calculate_intervals(self):
        """
        Calculates intervals for a set and returns nothing.
        """
        week = test.create_week()
        week.populate()
        team = test.create_team(self.user)
        swimmer1 = test.create_swimmer(team)
        swimmer2 = test.create_swimmer(team, first='Dave', last='Thornton')
        base1_free = test.create_event(swimmer1, 'base free',
                                       timedelta(seconds=25))
        base2_free = test.create_event(swimmer2, 'base free',
                                       timedelta(seconds=24))

        training_model = test.create_training_model(team)
        training_mult = test.create_training_multiplier(training_model,
                                                        multiplier=0.07)

        practice = test.create_practice(team, week)
        setInstance = test.create_set(practice, swimmers=[swimmer1, swimmer2])
        rep1 = test.create_rep(setInstance)

        funct.calculate_intervals(setInstance, training_model)
        intervals = Interval.objects.filter(rep=rep1)
        self.assertEqual(intervals[0].swimmer.l_name, 'Gridley')
        self.assertEqual(intervals[1].swimmer.l_name, 'Thornton')
        self.assertEqual(intervals[0].time, timedelta(seconds=55))
        self.assertEqual(intervals[1].time, timedelta(seconds=55))
Exemplo n.º 3
0
 def test_set_age(self):
     """
     Age function should return current age of swimmer.
     """
     team = test.create_team(self.user)
     swimmer = test.create_swimmer(team, 'Henry', 'Gridley', 'M')
     birth_date = date(1996,9,21)
     age = int((date.today() - birth_date).days / 365.2425)
     self.assertEqual(swimmer.set_age(), age)
Exemplo n.º 4
0
    def test_set_gender(self):
        """
        Set event gender from swimmer gender.
        """
        team = test.create_team(self.user)
        swimmer = test.create_swimmer(team)
        event = test.create_event(swimmer=swimmer)

        event.set_gender()
        self.assertEqual(event.gender, 'M')
Exemplo n.º 5
0
    def test_set_name(self):
        """
        Set event name from swimmer name.
        """
        team = test.create_team(self.user)
        swimmer = test.create_swimmer(team)
        event = test.create_event(swimmer=swimmer)

        event.set_name()
        self.assertEqual(event.name, 'Henry Gridley')
Exemplo n.º 6
0
 def test_best_time(self):
     """
     Returns the best time in the given event.
     """
     team = test.create_team(user=self.user)
     swimmer = test.create_swimmer(team=team)
     test.create_event(swimmer=swimmer)
     test.create_event(swimmer=swimmer, time=timedelta(seconds=22.96))
     self.assertEqual(swimmer.get_best_time(event='50 free').time, timedelta(seconds=22.32))
     self.assertNotEqual(swimmer.get_best_time(event='50 free').time, timedelta(seconds=22.96))
Exemplo n.º 7
0
    def test_get_swimmer_records(self):
        """
        Returns a swimmer's top time in each event or None.
        """
        team = test.create_team(self.user)
        swimmer = test.create_swimmer(team)
        record1 = test.create_record(swimmer=swimmer,
                                     event='50 free',
                                     time=timedelta(seconds=22.96))
        record2 = test.create_record(swimmer=swimmer,
                                     event='50 free',
                                     time=timedelta(seconds=22.32))
        record3 = test.create_record(swimmer=swimmer,
                                     event='100 free',
                                     time=timedelta(seconds=49.86))
        record4 = test.create_record(swimmer=swimmer,
                                     event='100 free',
                                     time=timedelta(seconds=50.58))
        record5 = test.create_record(swimmer=swimmer,
                                     event='200 free',
                                     time=timedelta(seconds=124.04))

        records = funct.get_swimmer_records(swimmer)
        times = []
        for record in records:
            if record[1]:
                times.append(record[1].time.total_seconds())
            else:
                times.append(None)
        self.assertEqual(records, [
            ('50 Freestyle', record2),
            ('100 Freestyle', record3),
            ('200 Freestyle', record5),
            ('500 Freestyle', None),
            ('1000 Freestyle', None),
            ('50 Backstroke', None),
            ('100 Backstroke', None),
            ('200 Backstroke', None),
            ('50 Breaststroke', None),
            ('100 Breaststroke', None),
            ('200 Breaststroke', None),
            ('50 Butterfly', None),
            ('100 Butterfly', None),
            ('200 Butterfly', None),
            ('100 IM', None),
            ('200 IM', None),
            ('400 IM', None),
        ])
        self.assertEqual(times, [
            22.32, 49.86, 124.04, None, None, None, None, None, None, None,
            None, None, None, None, None, None, None
        ])
Exemplo n.º 8
0
    def test_get_base(self):
        """
        Returns the base for the given swimmer depending on the pace specified.
        """
        team = test.create_team(self.user)
        swimmer = test.create_swimmer(team)
        base_free = test.create_event(swimmer, 'base free', timedelta(seconds=25))
        race_free = test.create_event(swimmer, '100 free', timedelta(seconds=49.86))

        base_train = swimmer.get_base('train', 'free')
        base_race = swimmer.get_base('race', 'free')
        none_race = swimmer.get_base('race', 'back')
        self.assertEqual(base_train, timedelta(seconds=25))
        self.assertEqual(base_race, timedelta(seconds=24.93))
        self.assertEqual(none_race, None)
Exemplo n.º 9
0
    def test_get_practices_and_dates(self):
        """
        Returns a list of practices and a list of dates.
        """
        weeks = funct.get_or_create_weeks(0)
        team = test.create_team(user=self.user)
        swimmer1 = test.create_swimmer(team)
        base_free = test.create_event(swimmer1,
                                      event='base free',
                                      time=timedelta(seconds=25))
        swimmer2 = test.create_swimmer(team, first='Dave', last='Thornton')
        practice = test.create_practice(team, weeks['current'])
        setInstance = test.create_set(practice=practice,
                                      swimmers=[swimmer1, swimmer2])
        rep1 = test.create_rep(setInstance)

        training_model = test.create_training_model(team)
        training_mult = test.create_training_multiplier(training_model,
                                                        multiplier=0.07)
        funct.calculate_intervals(setInstance, training_model)

        practices, dates = funct.get_practices_and_dates(team, weeks)

        test_dates = []
        for day in weeks['current'].date_range():
            test_dates.append(day)

        intervals = Interval.objects.filter(rep=rep1)
        self.assertEqual(practices, [
            ((practice, [(setInstance, [(swimmer1, [(rep1, intervals[0])]),
                                        (swimmer2, [(rep1, None)])])
                         ]), 'monday'),
            ((None, (None, (None, (None, None)))), 'tuesday'),
            ((None, (None, (None, (None, None)))), 'wednesday'),
            ((None, (None, (None, (None, None)))), 'thursday'),
            ((None, (None, (None, (None, None)))), 'friday'),
            ((None, (None, (None, (None, None)))), 'saturday'),
            ((None, (None, (None, (None, None)))), 'sunday'),
        ])
        self.assertEqual(dates, [
            ('monday', test_dates[0]),
            ('tuesday', test_dates[1]),
            ('friday', test_dates[4]),
            ('wednesday', test_dates[2]),
            ('thursday', test_dates[3]),
            ('sunday', test_dates[6]),
            ('saturday', test_dates[5]),
        ])
Exemplo n.º 10
0
    def test_team_records(self):
        """
        Returns the team's top time in each event or None for both men and women.
        """
        team = test.create_team(self.user)
        swimmer1 = test.create_swimmer(team)
        swimmer2 = test.create_swimmer(team,
                                       first='Jane',
                                       last='Doe',
                                       gender='F')
        record1 = test.create_record(swimmer=swimmer1,
                                     event='50 free',
                                     time=timedelta(seconds=22.96))
        record2 = test.create_record(swimmer=swimmer1,
                                     event='50 free',
                                     time=timedelta(seconds=22.32))
        record3 = test.create_record(swimmer=swimmer2,
                                     event='50 free',
                                     time=timedelta(seconds=25.14))
        record4 = test.create_record(swimmer=swimmer1,
                                     event='100 free',
                                     time=timedelta(seconds=49.86))
        record5 = test.create_record(swimmer=swimmer2,
                                     event='100 free',
                                     time=timedelta(seconds=54.85))

        records = funct.get_team_records(team)

        self.assertEqual(records, [
            ('50 Freestyle', record2, record3),
            ('100 Freestyle', record4, record5),
            ('200 Freestyle', None, None),
            ('500 Freestyle', None, None),
            ('1000 Freestyle', None, None),
            ('50 Backstroke', None, None),
            ('100 Backstroke', None, None),
            ('200 Backstroke', None, None),
            ('50 Breaststroke', None, None),
            ('100 Breaststroke', None, None),
            ('200 Breaststroke', None, None),
            ('50 Butterfly', None, None),
            ('100 Butterfly', None, None),
            ('200 Butterfly', None, None),
            ('100 IM', None, None),
            ('200 IM', None, None),
            ('400 IM', None, None),
        ])
Exemplo n.º 11
0
    def test_clean_weekday(self):
        """
        Only one practice can exist on a weekday for each given week.
        """
        week1 = test.create_week(monday=date.today())
        week1.populate()
        week2 = test.create_week(monday=(date.today() + relativedelta(days=7)))
        week2.populate()
        team = test.create_team(user=self.user)
        practice1 = test.create_practice(team, week1)
        practice2 = test.create_practice(team, week1)
        practice3 = test.create_practice(team, week2)

        funct.clean_weekday(team, practice2)

        practices = Practice.objects.all()
        self.assertQuerysetEqual(practices,
                                 ['<Practice: monday>', '<Practice: monday>'],
                                 ordered=False)
        self.assertTrue(practice1 not in practices)
Exemplo n.º 12
0
    def test_get_zipped_set(self):
        """
        Returns list of tuples containing the rep, swimmer, and interval.
        """
        week = test.create_week()
        week.populate()
        team = test.create_team(self.user)
        swimmer1 = test.create_swimmer(team)
        swimmer2 = test.create_swimmer(team, first='Dave', last='Thornton')
        base1_free = test.create_event(swimmer1, 'base free',
                                       timedelta(seconds=25))
        base2_free = test.create_event(swimmer2, 'base free',
                                       timedelta(seconds=24))

        practice = test.create_practice(team, week)
        setInstance = test.create_set(practice, swimmers=[swimmer1, swimmer2])
        rep1 = test.create_rep(setInstance)

        training_model = test.create_training_model(team)

        funct.calculate_intervals(setInstance, training_model)
        intervals = Interval.objects.filter(rep=rep1)
        set_zip = funct.get_zipped_set(setInstance)

        self.assertEqual(set_zip, [
            (swimmer1, [(rep1, None)]),
            (swimmer2, [(rep1, None)]),
        ])

        training_mult = test.create_training_multiplier(training_model,
                                                        multiplier=0.07)

        funct.calculate_intervals(setInstance, training_model)
        intervals = Interval.objects.filter(rep=rep1)
        set_zip = funct.get_zipped_set(setInstance)

        self.assertEqual(set_zip, [
            (swimmer1, [(rep1, intervals[0])]),
            (swimmer2, [(rep1, intervals[1])]),
        ])
Exemplo n.º 13
0
 def setUp(self):
     self.user = test.create_user(username='******', password='******')
     self.team = test.create_team(self.user)
     self.swimmers = [
         '<Swimmer: Abel>',
         '<Swimmer: Alkislar>',
         '<Swimmer: Angotti>',
         '<Swimmer: Armstrong>',
         '<Swimmer: Asai-Sarris>',
         '<Swimmer: Banak>',
         '<Swimmer: Barlow>',
         '<Swimmer: Barnes>',
         '<Swimmer: Bartlett>',
         '<Swimmer: Bauer>',
         '<Swimmer: Behar>',
         '<Swimmer: Berger>',
         '<Swimmer: Bissonnette>',
         '<Swimmer: Bloom>',
         '<Swimmer: Bogatko>',
         '<Swimmer: Chen>',
         '<Swimmer: Cheng>',
         '<Swimmer: Coghlan>',
         '<Swimmer: Coreno>',
         '<Swimmer: DeLiberti>',
         '<Swimmer: Dottinger>',
         '<Swimmer: Doyle>',
         '<Swimmer: Elmaarouf>',
         '<Swimmer: Fleischer>',
         '<Swimmer: Foley>',
         '<Swimmer: Fong>',
         '<Swimmer: Formica>',
         '<Swimmer: Fritzinger>',
         '<Swimmer: Furuta>',
         '<Swimmer: Galus>',
         '<Swimmer: Garber>',
         '<Swimmer: Greene>',
         '<Swimmer: Gridley>',
         '<Swimmer: Harris>',
         '<Swimmer: Haviland>',
         '<Swimmer: Heath>',
         '<Swimmer: Hoang>',
         '<Swimmer: Jaisle>',
         '<Swimmer: Kenyon>',
         '<Swimmer: Landon>',
         '<Swimmer: Laundry>',
         '<Swimmer: Lefler>',
         '<Swimmer: Lenney>',
         '<Swimmer: Leopold>',
         '<Swimmer: Lin>',
         '<Swimmer: Mack>',
         '<Swimmer: Manetti>',
         '<Swimmer: McCollister>',
         '<Swimmer: McCord>',
         '<Swimmer: McCrobie>',
         '<Swimmer: McGann>',
         '<Swimmer: Miller>',
         '<Swimmer: Monasterio>',
         '<Swimmer: Movchan>',
         '<Swimmer: Murphy>',
         '<Swimmer: Niemi>',
         '<Swimmer: Nikopoulos>',
         '<Swimmer: Noble>',
         '<Swimmer: Nozhenko>',
         "<Swimmer: O'Donnell>",
         '<Swimmer: Papes>',
         '<Swimmer: Perez>',
         '<Swimmer: Philbrick>',
         '<Swimmer: Pinkes>',
         '<Swimmer: Plummer>',
         '<Swimmer: Regulapati>',
         '<Swimmer: Renaud>',
         '<Swimmer: Shi>',
         '<Swimmer: Smolyar>',
         '<Swimmer: Soucy>',
         '<Swimmer: Thornton>',
         '<Swimmer: Toppazzini>',
         '<Swimmer: Tou>',
         '<Swimmer: Van Winkle>',
     ]
Exemplo n.º 14
0
 def setUp(self):
     user = test.create_user('user', 'password')
     self.team = test.create_team(user=user)
     week = test.create_week()
     self.practice = test.create_practice(self.team, week)
Exemplo n.º 15
0
 def setUp(self):
     user = test.create_user('user', 'password')
     team = test.create_team(user=user)
     week = test.create_week()
     practice = test.create_practice(team, week)
     self.test_set = test.create_set(practice=practice)
Exemplo n.º 16
0
 def setUp(self):
     user = test.create_user('user', 'password')
     team = test.create_team(user=user)
     self.training_model = test.create_training_model(team)
Exemplo n.º 17
0
 def setUp(self):
     user = test.create_user('user', 'password')
     self.team = test.create_team(user=user)
     self.swimmer = test.create_swimmer(self.team)
Exemplo n.º 18
0
 def setUp(self):
     user = test.create_user('user', 'password')
     self.team = test.create_team(user=user)
     self.week = test.create_week()