def test_reverse_2(self): txt = HW1.reverse("spoons") rtxt = "spoons" print "If I reverse %s, I get %s. :)" % (rtxt, txt) tmp = 1 for i in range(len(txt)): self.assertEqual(txt[i], rtxt[-tmp]) tmp += 1
def test_reverseone(self): self.assertEqual(HW1.reverse("Test one"), "eno tseT") # basic reversal
def test_reversetwo(self): self.assertEqual(HW1.reverse("Punctuation test..."), "...tset noitautcnuP")
def test_reversewordsone(self): self.assertEqual(HW1.reversewords("Test one."), "one Test.")
def test_reversewordstwo(self): self.assertEqual(HW1.reversewords("Punctuation test..."), "test... Punctuation.")
def test_reversewordlettersone(self): self.assertEqual(HW1.reversewordletters("This is a test."), "sihT si a tset.")
def test_reversewordletterstwo(self): self.assertEqual( HW1.reversewordletters("This sentence has a lot of words."), "sihT ecnetnes sah a tol fo sdrow." )
def test_shoutone(self): self.assertEqual(HW1.shout("Hello"), "HELLO!") # One word
def main(targets): global test_flag if 'data' in targets: HW1.main() if 'test-project' in targets: beg = time.time() test_flag = 1 sample_size, categories = HW2.loadConfig("config/test-params.json") paths = HW2.loadEnv("config/env.json") HW2.getTestData(categories, sample_size) smalis = HW2.prepare_data(test_flag) df, xy = HW2.makeDF(smalis) train_df, train_y, test_df, test_y = HW2.splitTrain(df, xy) A_train = HW2.makeA(train_df, train_df["apps"].unique(), df.shape[0]) P_train = HW2.makeP(train_df, df.shape[0]) A_test = HW2.makeA(test_df, test_df["apps"].unique(), df.shape[0]) P_test = HW2.makeP(test_df, df.shape[0]) #y = [i[1] for i in xy] AAT_train = A_train.dot( A_train.T) #HW2.matrixply([A_train, A_train.T]) AATest = A_test.dot(A_train.T) clf = HW2.trainModel(AAT_train, train_y) preds = HW2.modelPredict(clf, AATest) HW2.getMetrics(preds, test_y, paths["AA^T"], "AA^T") APAT_train = A_train.dot(P_train).dot(A_train.T) APATest = A_test.dot(P_test).dot(A_train.T) clf = HW2.trainModel(APAT_train, train_y) preds = HW2.modelPredict(clf, APATest) HW2.getMetrics(preds, test_y, paths["APA^T"], "APA^T") B_train = HW2.makeB(train_df, df.shape[0]) B_test = HW2.makeB(test_df, df.shape[0]) ABAT_train = A_train.dot(B_train).dot(A_train.T) ABATest = A_test.dot(B_test).dot(A_train.T) clf = HW2.trainModel(ABAT_train, train_y) preds = HW2.modelPredict(clf, ABATest) HW2.getMetrics(preds, test_y, paths["ABA^T"], "ABA^T") APBPTAT_train = A_train.dot(P_train).dot(B_train).dot(P_train.T).dot( A_train.T) APBPTATest = A_test.dot(P_test).dot(B_test).dot(P_train.T).dot( A_train.T) clf = HW2.trainModel(APBPTAT_train, train_y) preds = HW2.modelPredict(clf, APBPTATest) HW2.getMetrics(preds, test_y, paths["APBP^TA^T"], "APBP^TA^T") if 'process' in targets: #cleans and prepares the data for analysis #smalis = getAllSmaliFiles("Apps") print(test_flag) smalis = HW2.prepare_data(test_flag) x, y = HW2.makeBaselineFeatures(smalis) HW2.baseline(x, y) return
def test_convertions(): assert HW1.arabic_to_roman(100) == "C" assert HW1.arabic_to_roman(3999) == "MMMCMXCIX" assert HW1.arabic_to_roman(893) == "DCCCXCIII" assert HW1.arabic_to_roman(12) == "XII" assert HW1.arabic_to_roman(1213) == "MCCXIII" assert HW1.arabic_to_roman(432) == "CDXXXII" assert HW1.arabic_to_roman(932) == "CMXXXII" assert HW1.arabic_to_roman(1001) == "MI" assert HW1.arabic_to_roman(384) == "CCCLXXXIV"
def main(): u_range = [-1, 1] v_range = [-1, 1] N = 100 x, y, f = generate_x_f_y(N, u_range, v_range) HW1.plot_a_line_2D(f, u_range, v_range) HW1.scatterplot(x, y) g = linear_regression_algorithm(x, y) HW1.plot_a_line_2D(g, u_range, v_range) E_in = evaluate_E(x, y, g) print(E_in) g_pla, numberOfIteration = pla_combine_linear_regression(x, y) print(numberOfIteration)
def generate_random_x(N=100, u_range=[-1, 1], v_range=[-1, 1]): """ Generate a set of N random points in the specified ranges Inputs ------ - N: number of points - u_range: horizontal range - v_range: vertival range Outputs ------ - x: 2D array where the rows has length 3 which represents the locations of a data point with the first one is set to 1, and the columns is the number of data points considered """ x = HW1.generate_random_points(N, u_range, v_range) x_vec = np.vstack((np.ones(N), x)) return x_vec
def test1_NextDay(self): result= HW1.NextDay((23, 6, 2017)) self.assertEqual('24/6/2017', result)
def test1_Value(self): result = HW1.Value(7145) self.assertEqual(11, result)
def stest_shoutfive(self): self.assertEqual( HW1.shout("Multiple periods..."), "MULTIPLE PERIODS!!!" ) # turn punctuation into exclaimation =
def test_shoutthree(self): self.assertEqual(HW1.shout("Exclaimed Hello!!!"), "EXCLAIMED HELLO!!!!") # Punctuation
def test_errors(): assert HW1.arabic_to_roman("100") == "ERROR" assert HW1.arabic_to_roman(100.123) == "ERROR" assert HW1.arabic_to_roman("test") == "ERROR" assert HW1.arabic_to_roman(100.00) == "ERROR"
def test3_Value(self): result = HW1.Value(351) self.assertEqual(8, result)
def test2_IsPrimary(self): result = HW1.IsPrimary(21) self.assertEqual(False, result)
def test1_IsPrimary(self): result = HW1.IsPrimary(23) self.assertEqual(True, result)
def test2_NextDay(self): result = HW1.NextDay((28, 2, 2012)) self.assertEqual('29/2/2012', result)
def test2_Reduce(self): result = HW1.Reduce(1020034000) self.assertEqual(1234, result)
def test1_Reduce(self): result = HW1.Reduce(-160760) self.assertEqual(-1676, result)
def test3_Pascal(self): result = HW1.Pascal(5, 3) self.assertEqual(10, result)
def test2_GoodOrder(self): result = HW1.GoodOrder(264) self.assertEqual(True, result)
def test2_Pascal(self): result = HW1.Pascal(10, 4) self.assertEqual(210, result)
def test_shout2(self): self.assertEqual(HW1.shout("BLAH"), "BLAH!")
def test_shout3(self): self.assertEqual(HW1.shout("Blah!"), "BLAH!")
def test_shout4(self): self.assertEqual(HW1.shout("Hey. You!"), "HEY! YOU!")
def pla_combine_linear_regression(x, y): w_initial = linear_regression_algorithm(x, y) g, numberOfIteration = HW1.pla_algorithm(x, y, w=w_initial) return g, numberOfIteration
def test_shout_question(self): self.assertEqual(HW1.shout("Hello world?"), "HELLO WORLD!")
def test_shouttwo(self): self.assertEqual(HW1.shout("Hello again"), "HELLO AGAIN!") # Sentence
def test_reversewords_string(self): self.assertEqual(HW1.reversewords("Hello world."), "world Hello.")
def test_shoutfour(self): self.assertEqual(HW1.shout("CAPS?"), "CAPS!!") # Already in caps, add a different punctuation
def test_reversewordletters_string(self): self.assertEqual(HW1.reversewordletters("A civic testset is nice."), "A civic testset si ecin.")
def test2_Value(self): result = HW1.Value(15) self.assertEqual(7, result)
def test_piglatin_sentence(self): self.assertEqual(HW1.piglatin("Romans like bacon."), "omansre ikele aconbe")
def test1_Figure(self): result= HW1.Figure(7) expected = [' 1 ', ' 2 2 ', ' 3 3 ', ' 4 4 ', ' 5 5 ', ' 6 6 ', '7654321234567'] self.assertEqual(expected,result)
def test_shout_with_nums(self): self.assertEqual(HW1.shout("I like the number 7."), "I LIKE THE NUMBER 7!")
def test3_GoodOrder(self): result = HW1.GoodOrder(1573) self.assertEqual(True, result)
def test1_GoodOrder(self): result = HW1.GoodOrder(12345) self.assertEqual(False, result)
def test_reverse1(self): self.assertEqual(HW1.reverse("asdf blah"), "halb fdsa")
def test1_Pascal(self): result = HW1.Pascal(3, 2) self.assertEqual(3, result)
def test_reverse_string(self): self.assertEqual(HW1.reverse("Bom bard a drab mob."), ".bom bard a drab moB")
def test_reversewords1(self): self.assertEqual(HW1.reversewords("Hi, my name is Blah."), "Blah is name my, Hi.")
def test_reversewords_2sentence(self): self.assertEqual(HW1.reversewords("Hello world. What's your name?"), "world Hello. name your What's.")
def test_reversewordletters1(self): self.assertEqual(HW1.reversewordletters("Hi, my name is Blah."), "iH, ym, eman, si, halB")
def test_piglatin_sentence(self): # preserving old test case self.assertEqual(HW1.piglatin("pig latin"), "igpe atinle")
def test_piglatin1(self): self.assertEqual(HW1.piglatin("nix"), "ixnay")
def test_palindrome_sentence(self): self.assertEqual(HW1.reverse("Bom bard a drab mob."), ".bom bard a drab moB")
def test_shout1(self): self.assertEqual(HW1.shout("Hey there"), "HEY THERE!")
def test_no_punctuation_rwl(self): self.assertEqual(HW1.reversewordletters("A long string without punctuation"), "A gnol gnirts tuohtiw noitautcnup")
# In[34]: groupA = merge_AB_under.loc[merge_AB_under['plan_type_low_uae_no_trial'] == 0] #14 day trial groupB = merge_AB_under.loc[merge_AB_under['plan_type_low_uae_no_trial'] == 1] # In[35]: A_list = list(groupA['current_sub_TF']) B_list = list(groupB['current_sub_TF']) # In[36]: import scipy norm = scipy.stats.norm() ABTesting.t_test(A_list, B_list, 0.95) # B>A. It means that current subscribers with low uae no trail are more than ones with base uae 14 day trail. The difference is statistically significant. # ## PART III. Customer Segmentation # In[37]: import pandas as pd import datetime import numpy as np import matplotlib.pyplot as plt import numpy import seaborn as sns # In[38]: