def __show_boundings_for_scenario(self, scenario): print("\nUniform Distribution Percentages") print( Distribution.percentage_distribution(UniformDistribution, len(scenario.dataList))) self.__show_bounding_for_uniform_bounded_scenario(scenario) self.__show_bounding_for_uniform_extremity_scenario(scenario) print("\nBinomial Distribution Percentages") print( Distribution.percentage_distribution(BinomialDistribution, len(scenario.dataList))) self.__show_bounding_for_binomial_bounded_scenario(scenario) self.__show_bounding_for_binomial_extremity_scenario(scenario)
def test_binomial_expansion_distribution_percent(self): instance = BinomialDistribution distribution = Distribution.percentage_distribution(instance, 1) self.assertEqual(distribution[0], 1.0 / 2) self.assertEqual(distribution[1], 1.0 / 2) distribution = Distribution.percentage_distribution(instance, 2) self.assertEqual(distribution[0], 1.0 / 4) self.assertEqual(distribution[1], 2.0 / 4) self.assertEqual(distribution[2], 1.0 / 4) distribution = Distribution.percentage_distribution(instance, 3) self.assertEqual(distribution[0], 1.0 / 8) self.assertEqual(distribution[1], 3.0 / 8) self.assertEqual(distribution[2], 3.0 / 8) self.assertEqual(distribution[3], 1.0 / 8)
def __count_in(cls, scenario): dist = Distribution.percentage_distribution( scenario.distribution_profile, len(scenario.data_list())) count_in = distribution.count_ins(scenario.distribution_bounding, dist, scenario.confidence_interval) if count_in is None: return 0 else: return count_in
def data_lines(cls, scenario): data_string = "" data_items = len(scenario.dataList) dist = Distribution() uniform_distribution = dist.percentage_distribution( UniformDistribution(), data_items) binomial_distribution = dist.percentage_distribution( BinomialDistribution(), data_items) data_string += SaveAnalysis.leading_line(binomial_distribution, scenario, uniform_distribution) data_string += SaveAnalysis.measurement_lines(binomial_distribution, scenario, uniform_distribution) data_string += SaveAnalysis.trailing_line(scenario) return data_string
def test_binomial_expansion_bounded_count_in_values_for_given_confidence( self): distribution = Distribution.percentage_distribution( BinomialDistribution, 1) bounded_instance = Bounded confidence_interval = .50 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, None) distribution = BinomialDistribution.percentage_distribution(2) confidence_interval = .50 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1) distribution = BinomialDistribution.percentage_distribution(3) confidence_interval = .50 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1) distribution = BinomialDistribution.percentage_distribution(5) confidence_interval = .9 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1) distribution = BinomialDistribution.percentage_distribution(8) confidence_interval = .9 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 2) distribution = BinomialDistribution.percentage_distribution(11) confidence_interval = .9 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 3) distribution = BinomialDistribution.percentage_distribution(13) confidence_interval = .9 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 4) distribution = BinomialDistribution.percentage_distribution(5) confidence_interval = .9 count_in_values = BinomialDistribution.count_ins( bounded_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1)
def test_binary_expansion_extremity_count_in_values(self): extremity_instance = Extremity distribution = Distribution.percentage_distribution( BinomialDistribution, 1) confidence_interval = .51 count_in_values = BinomialDistribution.count_ins( extremity_instance, distribution, confidence_interval) self.assertEqual(count_in_values, None) distribution = Distribution.percentage_distribution( BinomialDistribution, 1) confidence_interval = .5 count_in_values = BinomialDistribution.count_ins( extremity_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1) distribution = Distribution.percentage_distribution( BinomialDistribution, 2) confidence_interval = .5 count_in_values = BinomialDistribution.count_ins( extremity_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1) distribution = Distribution.percentage_distribution( BinomialDistribution, 3) confidence_interval = .51 count_in_values = BinomialDistribution.count_ins( extremity_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1) distribution = Distribution.percentage_distribution( BinomialDistribution, 3) confidence_interval = .5 count_in_values = BinomialDistribution.count_ins( extremity_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 2) distribution = Distribution.percentage_distribution( BinomialDistribution, 4) confidence_interval = .9375 count_in_values = Distribution.count_ins(extremity_instance, distribution, confidence_interval) self.assertEqual(count_in_values, 1)