class MyTestCase(unittest.TestCase):
    def setUp(self):
        self.statistics = Statistics()

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

    def test_mean_method(self):
        random.seed(5)
        data = rand.seed_list_int(0, 10, 5)
        ans = stats.mean(data)
        self.assertEqual(self.statistics.mean(data), ans)

    def test_mean_method_dec(self):
        random.seed(5)
        data = rand.seed_list_dec(0, 10, 5)
        ans = stats.mean(data)
        self.assertEqual(self.statistics.mean(data), ans)

    def test_mean_method_empty(self):
        data = []
        with self.assertRaises(Exception):
            self.statistics.mean(data)

    def test_mean_method_str(self):
        data = [1, 2, "Hello World"]
        with self.assertRaises(TypeError):
            self.statistics.mean(data)

    def test_median_method_odd(self):
        random.seed(5)
        data = rand.seed_list_int(0, 10, 5)
        ans = stats.median(data)
        self.assertEqual(self.statistics.median(data), ans)

    def test_median_method_even(self):
        random.seed(5)
        data = rand.seed_list_dec(0, 10, 6)
        ans = stats.median(data)
        self.assertEqual(self.statistics.median(data), ans)

    def test_median_method_empty(self):
        data = []
        with self.assertRaises(Exception):
            self.statistics.median(data)

    def test_median_method_str(self):
        data = [1, 2, "Hello World"]
        with self.assertRaises(TypeError):
            self.statistics.median(data)

    def test_mode_method(self):
        random.seed(5)
        data = rand.seed_list_int(0, 10, 20)
        ans = stats.mode(data)
        self.assertEqual(self.statistics.mode(data), ans)

    def test_mode_method_empty(self):
        data = []
        with self.assertRaises(Exception):
            self.statistics.mode(data)

    def test_mode_method_str(self):
        data = [1, 2, "Hello World"]
        with self.assertRaises(TypeError):
            self.statistics.mode(data)

    def test_simple_sampling_method(self):
        data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        size = 3
        ans = [5, 6, 7]
        self.assertEqual(self.statistics.simple_random_sample(data, size), ans)

    def test_confidence_interval_method(self):
        self.assertEqual(
            self.statistics.confidence_interval(240, 0.95, 25, 10),
            [222.1173198317478, 257.8826801682522])

    def test_margin_of_error_method(self):
        self.assertEqual(self.statistics.margin_of_err(1.645, 0.4, 900),
                         0.021933333333333336)

    def test_cochran_method(self):
        self.assertEqual(self.statistics.cochran(1.960, 0.5, 0.5, 0.05),
                         384.1599999999999)

    def test_sample_size_ci_method(self):
        self.assertEqual(self.statistics.sample_size_ci(0.95, 0.41, 0.06),
                         1032.536711111111)

    def test_variance_method(self):
        data = [600, 470, 170, 430, 300]
        ans = stats.variance(data)
        self.assertEqual(self.statistics.sample_variance(data), ans)

    def test_standard_deviation_method(self):
        data = [600, 470, 170, 430, 300]
        ans = stats.stdev(data)
        self.assertEqual(self.statistics.sample_standard_deviation(data), ans)

    def test_z_score_method(self):
        self.assertEqual(self.statistics.z_score(190, 150, 25), 1.6)

    def test_z_score_list_method(self):
        data = [0.7972, 0.0767, 0.4383]
        ans = [1.2232121397887195, -1.2262718699883022, 0.0030597301995827185]
        self.assertEqual(self.statistics.z_score_list(data), ans)
Example #2
0
class MyTestCase(unittest.TestCase):
    def setUp(self) -> None:
        #seed(5)
        self.statistics = Statistics()
        self.testData0 = random_code()
        self.testData1 = random_code_no_seed()
        self.testData2 = random_select()
        self.testData3 = random_select_no_seed()
        self.testZ = zValues(self.testData0)
        self.testZscore = zValues(self.testData0)

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

    def test_mean_calculator(self):
        mean = self.statistics.mean(self.testData0)
        self.assertEqual(mean, 15.7225)

    def test_median_calculator(self):
        median = self.statistics.median(self.testData0)
        self.assertEqual(median, 1.91)

    def test_mode_calculator(self):
        mode = self.statistics.mode(self.testData0)
        self.assertEqual(mode, 1)

    def test_stdDevSample_calculator(self):
        stdDevSample = self.statistics.stdDevSample(self.testData0)
        self.assertEqual(stdDevSample, 19.375147682721614)

    def test_stdDevPop_calculator(self):
        stdDevPop = self.statistics.stdDevPop(self.testData0)
        self.assertEqual(stdDevPop, 5.355007926775957)

    def test_sampleVar_calculator(self):
        sampleVar = self.statistics.sampleVar(self.testData0)
        self.assertEqual(sampleVar, 4.4017209910126756)

    def test_popVar_calculator(self):
        popVar = self.statistics.popVar(self.testData0)
        self.assertEqual(popVar, 2.31408900580249)

    def test_MD_calculator(self):
        m_d = self.statistics.meanDev(self.testData0)
        self.assertEqual(m_d, -1.7763568394002505e-15)

    def test_MAD_calculator(self):
        m_a_d = self.statistics.meanAbsDev(self.testData0)
        self.assertEqual(m_a_d, 17.231250000000003)

    def test_sample_corr_coeff(self):
        coeff = self.statistics.sample_correlation_coeff(self.testData0)
        self.assertEqual(coeff, 0.9302765081681367)

    def test_pop_corr_coeff(self):
        coeff = self.statistics.pop_correlation_coeff(self.testData0)
        self.assertEqual(coeff, 0.9302765081681367)

    def test_z_values(self, mainResult=None):
        mainResults = []
        result = self.statistics.zValues(self.testZ)

        for i in result:
            mainResults.append(i)

        if mainResult == result:
            self.assertTrue(True)

    def test_z_scores(self):
        Result = []
        result = self.statistics.zScores(self.testZscore)
        for i in result:
            Result.append(i)

    def test_quartiles(self):
        q1 = self.statistics.quart1(self.testData0)
        self.assertEqual(q1, 0.7525000000000001)

        q2 = self.statistics.quart2(self.testData0)
        self.assertEqual(q2, 1.91)

        q3 = self.statistics.quart3(self.testData0)
        self.assertEqual(q3, 33.25)

    def test_marginErr(self):
        resultList = []
        result = self.statistics.mErr(self.testData0)
        for i in result:
            resultList.append(i)
        if resultList == result:
            self.assertTrue(True)

    def test_systemSamp(self):
        resultList = []
        result = self.statistics.sys_samp(self.testData0)
        for i in result:
            resultList.append(i)
        if resultList == result:
            self.assertTrue(True)

    def test_skew(self):
        skewness = self.statistics.skewness(self.testData0)
        self.assertEqual(skewness, 0.632588488248329)

    def test_confidence_interval(self):
        c_i_result = []
        result = self.statistics.confidenceInterval(self.testData0)
        for i in result:
            c_i_result.append(i)

        if c_i_result == result:
            self.assertTrue(True)

    def test_cochran(self):
        cochranResult = []
        result = self.statistics.cochran(self.testData0)
        for i in result:
            cochranResult.append(i)

        if cochranResult == result:
            self.assertTrue(True)

    def test_yes_std(self):
        with_std_Result = []
        result = self.statistics.yes_std(self.testData0)
        for i in result:
            with_std_Result.append(i)

        if with_std_Result == result:
            self.assertTrue(True)

    def test_no_std(self):
        without_std_Result = []
        result = self.statistics.no_std(self.testData0)
        for i in result:
            without_std_Result.append(i)

        if without_std_Result == result:
            self.assertTrue(True)