def test_results(self): the_error = distributions.IncorrectDistributionInicializationError with self.assertRaises(the_error): distributions.t_Distribution(-1) t = distributions.t_Distribution(1) t = distributions.t_Distribution(2) t = distributions.t_Distribution(3) t = distributions.t_Distribution(4) t = distributions.t_Distribution(5) result_1 = t.pdf(1) result_2 = t.pdf(-2) result_3 = t.cdf(1) result_4 = t.cdf(-2) self.assertTrue(0.21 < result_1 and result_1 < 0.22) self.assertTrue(0.06 < result_2 and result_2 < 0.07) self.assertTrue(0.81 < result_3 and result_3 < 0.82) self.assertTrue(0.05 < result_4 and result_4 < 0.06) with self.assertRaises(distributions.IncorrectInputError): distributions.t_Distribution.t_cdf(3, 0) with self.assertRaises(distributions.IncorrectInputError): distributions.t_Distribution.t_pdf(3, 0)
def test_results(self): normal_dist = distributions.NormalDistribution(0, 1) t_dist = distributions.t_Distribution(7) result_norm = distributions.find_percentile(0.95, normal_dist.cdf) with self.assertRaises(distributions.PercentileError): distributions.find_percentile(1.2, normal_dist.cdf) cdf = distributions.NormalDistribution.normal_cdf result_with_args = distributions.find_percentile(0.8, cdf, (2, 5)) self.assertTrue(1.644 < result_norm and result_norm < 1.645)
def test_performance(self): data_list = [2, 5, 2, 7, 4, 5, 2, 3, 9, 3, 2, 4, 2] bad_data = "as" big_data = [] for i in range(60): big_data.append(i) dist_1 = distributions.NormalDistribution(2, 3) dist_2 = distributions.FisherDistribution(2, 3) dist_3 = distributions.t_Distribution(7) dist_4 = distributions.ChiSquaredDistribution(8) distributions.compare_cdf_with_theoretical(data_list, [dist_1, dist_2, dist_3, dist_4]) distributions.compare_cdf_with_theoretical(data_list, dist_1) distributions.compare_cdf_with_theoretical(data_list, dist_2) distributions.compare_cdf_with_theoretical(data_list, dist_3) distributions.compare_cdf_with_theoretical(data_list, dist_4) with self.assertRaises(distributions.NotAListError): distributions.compare_cdf_with_theoretical(bad_data, dist_1) distributions.compare_cdf_with_theoretical(big_data, dist_1)