Пример #1
0
class MyTestCase(unittest.TestCase):
    def setUp(self) -> None:
        self.statistics = Statistics('Tests/Data/StatCalcData.csv')

    def test_instantiate_calculator(self):
        self.assertIsInstance(self.statistics, Statistics)

    def test_decorator_calculator(self):
        self.assertIsInstance(self.statistics, Statistics)

    def test_Population_Mean_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['mean']))
        self.assertEqual(self.statistics.newmean(lst), result)

    def test_Sample_Mean_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        x, z = self.statistics.sammean(lst)

        self.assertEqual(x, z)

    def test_Median_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['median']))
        self.assertEqual(self.statistics.med(lst), result)

    def test_Mode_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['mode']))
        self.assertEqual(self.statistics.mod(lst), result)

    def test_Population_Standard_Deviation_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['stdev']))
        self.assertEqual(self.statistics.stddev(lst), result)

    def test_Sample_Standard_Deviation_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        x, z = self.statistics.sampstdev(lst)
        x = round(x, 3)
        z = round(z, 3)

        self.assertEqual(x, z)

    def test_confidence_interval_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        conf = 95
        self.assertEqual(self.statistics.confintv(lst, conf), (132.67, 121.07))

    def test_zscore_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['zscore']))
        self.assertEqual(self.statistics.z_score(lst), result)

    def test_population_variance_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['pop_variance']))
        self.assertEqual(self.statistics.pvariance(lst), result)

    def test_proportion_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['proportion']))
        self.assertEqual(self.statistics.proportion(lst), result)

    def test_variance_population_proportion_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        for column in answer:
            result = float((column['var_pop_prop']))
        self.assertEqual(self.statistics.vpop_proportion(lst), result)

    def test_variance_sample_proportion_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = []
        for row in test_data:
            y = int(row['Value 1'])
            lst.append(y)
        x = self.statistics.vsamp_proportion(lst)
        self.assertEqual(x, x)

    def test_corr(self):
        x = self.statistics.corcof()
        self.assertEqual(x, 25)
Пример #2
0
class MyTestCase(unittest.TestCase):
    def setUp(self) -> None:
        self.statistics = Statistics('Tests/Data/StatCalcData.csv')

    def test_instantiate_calculator(self):
        self.assertIsInstance(self.statistics, Statistics)

    def test_Population_Mean_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.newmean(lst),
                             float((column['mean'])))
            self.assertNotEqual(self.statistics.newmean(lst),
                                float((column['mean'])) * 2,
                                "Mean does not match")

    def test_Sample_Mean_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = data_add(test_data)
        x, z = self.statistics.sammean(lst)
        self.assertEqual(x, z)
        self.assertNotEqual(x, z * 2, "Sample Mean does not match")

    def test_Median_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.med(lst), float(
                (column['median'])))
            self.assertNotEqual(self.statistics.med(lst),
                                float((column['median'])) + 2,
                                "Incorrect Median")

    def test_Mode_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.mod(lst), float((column['mode'])))
            self.assertNotEqual(self.statistics.mod(lst),
                                float((column['mode'])) - 2, "Incorrect Mode")

    def test_Population_Standard_Deviation_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.stddev(lst),
                             float((column['stdev'])))
            self.assertNotEqual(self.statistics.stddev(lst),
                                float((column['stdev'])) * 3,
                                "Wrong Pop Std Deviation")

    def test_Sample_Standard_Deviation_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = data_add(test_data)
        x, z = self.statistics.sampstdev(lst)
        x = round(x, 3)
        z = round(z, 3)
        self.assertEqual(x, z)
        self.assertNotEqual(x, z * 2, "Sample Std Deviation is incorrect")

    def test_confidence_interval_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = data_add(test_data)
        conf = 95
        self.assertEqual(self.statistics.confintv(lst, conf), (132.67, 121.07))
        self.assertNotEqual(self.statistics.confintv(lst, conf),
                            (134.67, 123.07), "Incorrect Confidence Interval")

    def test_zscore_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.z_score(lst),
                             float((column['zscore'])))
            self.assertNotEqual(self.statistics.z_score(lst),
                                float((column['zscore'])) * 2,
                                "Incorrect Z Score")

    def test_population_variance_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.pvariance(lst),
                             float((column['pop_variance'])))
            self.assertNotEqual(self.statistics.pvariance(lst),
                                float((column['pop_variance'])) - 3,
                                "Wrong Pop Var")

    def test_proportion_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.proportion(lst),
                             float((column['proportion'])))
            self.assertNotEqual(self.statistics.proportion(lst),
                                float((column['proportion'])) - 2,
                                "Wrong Proportion")

    def test_variance_population_proportion_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        lst = data_add(test_data)
        for column in answer:
            self.assertEqual(self.statistics.vpop_proportion(lst),
                             float((column['var_pop_prop'])))
            self.assertNotEqual(self.statistics.vpop_proportion(lst),
                                float((column['var_pop_prop'])) - 2,
                                "WrongResult")

    def test_variance_sample_proportion_calculator(self):
        test_data = CsvReader('Tests/Data/StatCalcData.csv').data
        lst = data_add(test_data)
        x = self.statistics.vsamp_proportion(lst)
        self.assertEqual(x, x)
        self.assertNotEqual(x, x + 2, "Wrong Var Samp Proportion")

    def test_correlation_coefficient_calculator(self):
        test_data = CsvReader('Tests/Data/SampleData.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        x_data = []
        y_data = []
        for row in test_data:
            x = int(row['x'])
            x_data.append(x)
            y = int(row['y'])
            y_data.append(y)
        z = self.statistics.corcof(x_data, y_data)
        for column in answer:
            self.assertEqual(z, float((column['corr_coff'])))
            self.assertNotEqual(z,
                                float((column['corr_coff'])) + 1,
                                "Wrong Corr Coefficient")

    def test_pvalue_calculator(self):
        test_data = CsvReader('Tests/Data/Ztable.csv').data
        answer = CsvReader('Tests/Data/StatAnswers.csv').data
        z_data = []
        p_data = []
        for row in test_data:
            x = float(row['z_score'])
            z_data.append(x)
            y = float(row['p_value'])
            p_data.append(y)
        x = self.statistics.p_value(z_data, p_data)
        for column in answer:
            self.assertEqual(x, float((column['p_value'])))
            self.assertNotEqual(x,
                                float((column['p_value'])) - 3,
                                "Incorrect P Value")