def given_a_dumb_classifer_that_says_what_I_want_test(): classifier = SimplisticClasses.DumbClassifier({ ('control', '60626', 'female'): 0.60, }) order_probability = classifier.probability(('control', '60626', 'female')) assert order_probability == 0.60, "Should return probability I told it to."
def given_probability_to_order_remains_constant_but_expected_profit_increases_test( ): customer_segment = ('60626', 'female') classification_model = SimplisticClasses.DumbClassifier({ ('control', ) + customer_segment: 0.65, ('variant', ) + customer_segment: 0.65, }) regression_model = SimplisticClasses.DumbClassifier({ ('control', ) + customer_segment: 12.25, ('variant', ) + customer_segment: 15.50, }) ad_name = SimplisticClasses.assign_ad_for(customer_segment, classification_model, regression_model) assert ad_name == 'variant', "Should recommend using ad"
def given_a_sleeping_dog_test(): customer_segment = ('60602', 'male') classification_model = SimplisticClasses.DumbClassifier({ ('control', ) + customer_segment: 0.50, ('variant', ) + customer_segment: 0.45, }) regression_model = SimplisticClasses.AllCasesHaveSameProfitRegressionModel( ) ad_name = SimplisticClasses.assign_ad_for(customer_segment, classification_model, regression_model) assert ad_name == 'control', "Should let sleeping dogs lie."
def given_a_variant_that_does_NOT_improve_on_probability_of_ordering_over_control_test( ): customer_segment = ('60626', 'male') classification_model = SimplisticClasses.DumbClassifier({ ('control', ) + customer_segment: 0.45, ('variant', ) + customer_segment: 0.45, }) regression_model = SimplisticClasses.AllCasesHaveSameProfitRegressionModel( ) ad_name = SimplisticClasses.assign_ad_for(customer_segment, classification_model, regression_model) assert ad_name == 'control', "Should choose to NOT advertise"
def given_variant_improves_over_control_just_enough_to_warrant_advertising_cost_test( ): customer_segment = ('60626', 'female') classification_model = SimplisticClasses.DumbClassifier({ ('control', ) + customer_segment: 0.60, ('variant', ) + customer_segment: 0.65, }) regression_model = SimplisticClasses.AllCasesHaveSameProfitRegressionModel( ) ad_name = SimplisticClasses.assign_ad_for(customer_segment, classification_model, regression_model, ad_cost=0.60) assert ad_name == 'variant', "Should choose to advertise"
def given_a_never_before_seen_observation_test(): classifier = SimplisticClasses.DumbClassifier({}) probability = classifier.probability(('boo', 'bibbit')) assert probability == None, "Should return None"