def test_correctness_28_days_month(self): with tempfile.NamedTemporaryFile('w+t') as file: # Scrivo i contenuti nel file di test file.write('epoch,temperature\n') epoch = 86400 for i in range(28): for j in range(24): file.write('{},{}\n'.format(epoch, (j + 1) / (i + 1))) # Valori del primo giorno: 1,2,3,4...24 # Valori del secondo giorno: 0.5,1,1.5,2...12 # ..e cosi' via epoch += 3600 file.seek(0) time_series_file = CSVTimeSeriesFile(file.name) time_series = time_series_file.get_data() results = daily_stats(time_series) self.assertEqual(len(results), 28) self.assertEqual(results[27][0], 1 / 28) self.assertEqual(results[27][1], 24 / 28) self.assertAlmostEqual(results[27][2], 0.446, 2) global score score += 1 # Increase score
def test_correctness_edge_cases_3(self): with tempfile.NamedTemporaryFile('w+t') as file: # Scrivo i contenuti nel file di test file.write('epoch,temperature\n') epoch = 86400 for i in range(30): file.write('{},{}\n'.format(epoch, (i + 1))) epoch += 86400 file.seek(0) time_series_file = CSVTimeSeriesFile(file.name) time_series = time_series_file.get_data() results = daily_stats(time_series) self.assertEqual(results[0][0], 1) self.assertEqual(results[0][1], 1) self.assertEqual(results[0][2], 1) self.assertEqual(results[28][0], 29) self.assertEqual(results[28][1], 29) self.assertEqual(results[28][2], 29) global score score += 0.5 # Increase score
def test_csv_file_epoch_duplicates(self): with tempfile.NamedTemporaryFile('w+t') as file: # Scrivo i contenuti nel file di test file.write('epoch,temperature\n') epoch=86400 for i in range(30): file.write('{},{}\n'.format(epoch, (i+1))) epoch+=86400 file.write('86400,{}\n'.format(epoch, 42)) # Epoch duplicato file.seek(0) time_series_file = CSVTimeSeriesFile(file.name) with self.assertRaises(ExamException): # Va bene alzare l'eccezione sia in get_data che il daily_stats, la specifica era debole time_series = time_series_file.get_data() daily_stats(time_series) global score; score += 1 # Increase score
def test_correctness(self): with tempfile.NamedTemporaryFile('w+t') as file: # Scrivo i contenuti nel file di test file.write('epoch,temperature\n') epoch = 86400 for i in range(30): for j in range(24): file.write('{},{}\n'.format(epoch, (j + 1) / (i + 1))) # Valori del primo giorno: 1,2,3,4...24 # Valori del secondo giorno: 0.5,1,1.5,2...12 # ..e cosi' via epoch += 3600 file.seek(0) time_series_file = CSVTimeSeriesFile(file.name) time_series = time_series_file.get_data() results = daily_stats(time_series) # Primo giorno self.assertTrue(len(results) in [29, 30]) self.assertEqual(results[0][0], 1) self.assertEqual(results[0][1], 24) self.assertAlmostEqual(results[0][2], 12.5, 3) # Secondo giorno self.assertEqual(results[1][0], 0.5) self.assertEqual(results[1][1], 12) self.assertAlmostEqual(results[1][2], 6.25, 3) # Ventinovesimo giorno self.assertEqual(results[28][0], 1 / 29) self.assertEqual(results[28][1], 24 / 29) self.assertAlmostEqual(results[28][2], 0.431, 2) global score score += 18 # Increase score