Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
    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