Esempio n. 1
0
    def test_groupByRacer_does_not_add_to_groups_if_groups_is_already_in_memory(self):
        reader = FileReader('tests/repository/base.txt')
        logs = LogEntriesRepository(reader)
        stats = StatisticsRepository(logs)

        stats._calculateResult(list(logs.get_logs()))
        stats._calculateResult(list(logs.get_logs()))
        stats._calculateResult(list(logs.get_logs()))

        self.assertEqual(6, len(stats.groups))
 def test_parseLine_returns_valid_LogEntry_object(self):
     reader = FileReader('tests/repository/one_entry.txt')
     repository = LogEntriesRepository(reader)
     line = '23:49:08.277\t038 – F.MASSA\t1\t1:02.852\t44,275'
     logEntry = repository._parseLine(0, line)
     self.assertIsNotNone(logEntry.time)
     self.assertIsNotNone(logEntry.code)
     self.assertIsNotNone(logEntry.pilot)
     self.assertIsNotNone(logEntry.lap)
     self.assertIsNotNone(logEntry.lapTime)
     self.assertIsNotNone(logEntry.avgSpeed)
Esempio n. 3
0
    def test_calculateResult_returns_list_with_expected_classification(self):
        reader = FileReader('tests/repository/base.txt')
        logs = LogEntriesRepository(reader)
        stats = StatisticsRepository(logs)

        result = stats._calculateResult(list(logs.get_logs()))

        self.assertEqual(result[0].code, '038')
        self.assertEqual(result[1].code, '002')
        self.assertEqual(result[2].code, '033')
        self.assertEqual(result[3].code, '023')
        self.assertEqual(result[4].code, '015')
        self.assertEqual(result[5].code, '011')
Esempio n. 4
0
    def test_get_result_returns_tuple_with_expected_calculations(self):
        reader = FileReader('tests/repository/base.txt')
        logs = LogEntriesRepository(reader)
        stats = StatisticsRepository(logs)

        position, code, name, completedLaps, timeTotal = list(stats.get_result())[0]

        self.assertEqual(position, 1)
        self.assertEqual(code, '038')
        self.assertEqual(name, 'F.MASS')
        self.assertEqual(completedLaps, '4')
        self.assertEqual(timeTotal, '4:11.578')

        position, code, name, completedLaps, timeTotal = list(stats.get_result())[-1]
        self.assertEqual(position, 6)
        self.assertEqual(code, '011')
        self.assertEqual(name, 'S.VETTEL')
        self.assertEqual(completedLaps, '3')
        self.assertEqual(timeTotal, '6:27.276')
 def test_get_logs_skips_first_line(self):
     reader = FileReader('tests/repository/one_entry.txt')
     repository = LogEntriesRepository(reader)
     logs = list(repository.get_logs())
     self.assertTrue(len(logs) == 1)
 def test_parseLine_returns_None_if_line_has_invalid_format(self):
     reader = FileReader('tests/repository/one_entry.txt')
     repository = LogEntriesRepository(reader)
     line = '23:49:08.277\t038 – F.MASSA\t1\t1:02.852\t44?275'
     logEntry = repository._parseLine(0, line)
     self.assertIsNone(logEntry)
 def test_isLineParseable_returns_true_if_line_in_expected_format(self):
     reader = FileReader('tests/repository/one_entry.txt')
     repository = LogEntriesRepository(reader)
     line = '23:49:08.277\t038 – F.MASSA\t1\t1:02.852\t44,275'
     isParseable = repository._isLineParseable(0, line)
     self.assertTrue(isParseable)
 def test_get_logs_processes_all_lines(self):
     reader = FileReader('tests/repository/base.txt')
     repository = LogEntriesRepository(reader)
     logs = list(repository.get_logs())
     self.assertTrue(len(logs) == 23)
 def test_get_logs_ignores_empty_lines(self):
     reader = FileReader('tests/repository/one_entry_empty_lines.txt')
     repository = LogEntriesRepository(reader)
     logs = list(repository.get_logs())
     self.assertTrue(len(logs) == 1)