示例#1
1
 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
示例#2
1
 def test_reverseone(self):
     self.assertEqual(HW1.reverse("Test one"), "eno tseT")  # basic reversal
示例#3
1
 def test_reversetwo(self):
     self.assertEqual(HW1.reverse("Punctuation test..."), "...tset noitautcnuP")
示例#4
1
 def test_reversewordsone(self):
     self.assertEqual(HW1.reversewords("Test one."), "one Test.")
示例#5
1
 def test_reversewordstwo(self):
     self.assertEqual(HW1.reversewords("Punctuation test..."), "test... Punctuation.")
示例#6
1
 def test_reversewordlettersone(self):
     self.assertEqual(HW1.reversewordletters("This is a test."), "sihT si a tset.")
示例#7
1
 def test_reversewordletterstwo(self):
     self.assertEqual(
         HW1.reversewordletters("This sentence has a lot of words."), "sihT ecnetnes sah a tol fo sdrow."
     )
示例#8
1
 def test_shoutone(self):
     self.assertEqual(HW1.shout("Hello"), "HELLO!")  # One word
示例#9
0
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
示例#10
0
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"
示例#11
0
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)
示例#12
0
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
示例#13
0
 def test1_NextDay(self):
     result= HW1.NextDay((23, 6, 2017))
     self.assertEqual('24/6/2017', result)
示例#14
0
 def test1_Value(self):
     result = HW1.Value(7145)
     self.assertEqual(11, result)
示例#15
0
 def stest_shoutfive(self):
     self.assertEqual(
         HW1.shout("Multiple periods..."), "MULTIPLE PERIODS!!!"
     )  # turn punctuation into exclaimation =
示例#16
0
 def test_shoutthree(self):
     self.assertEqual(HW1.shout("Exclaimed Hello!!!"), "EXCLAIMED HELLO!!!!")  # Punctuation
示例#17
0
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"
示例#18
0
 def test3_Value(self):
     result = HW1.Value(351)
     self.assertEqual(8, result)
示例#19
0
 def test2_IsPrimary(self):
     result = HW1.IsPrimary(21)
     self.assertEqual(False, result)
示例#20
0
 def test1_IsPrimary(self):
     result = HW1.IsPrimary(23)
     self.assertEqual(True, result)
示例#21
0
 def test2_NextDay(self):
     result = HW1.NextDay((28, 2, 2012))
     self.assertEqual('29/2/2012', result)
示例#22
0
 def test2_Reduce(self):
     result = HW1.Reduce(1020034000)
     self.assertEqual(1234, result)
示例#23
0
 def test1_Reduce(self):
     result = HW1.Reduce(-160760)
     self.assertEqual(-1676, result)
示例#24
0
 def test3_Pascal(self):
     result = HW1.Pascal(5, 3)
     self.assertEqual(10, result)
示例#25
0
 def test2_GoodOrder(self):
     result = HW1.GoodOrder(264)
     self.assertEqual(True, result)
示例#26
0
 def test2_Pascal(self):
     result = HW1.Pascal(10, 4)
     self.assertEqual(210, result)
示例#27
0
	def test_shout2(self):
		self.assertEqual(HW1.shout("BLAH"), "BLAH!")
示例#28
0
	def test_shout3(self):
		self.assertEqual(HW1.shout("Blah!"), "BLAH!")
示例#29
0
	def test_shout4(self):
		self.assertEqual(HW1.shout("Hey. You!"), "HEY! YOU!")
示例#30
0
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
示例#31
0
 def test_shout_question(self):
     self.assertEqual(HW1.shout("Hello world?"), "HELLO WORLD!")
示例#32
0
 def test_shouttwo(self):
     self.assertEqual(HW1.shout("Hello again"), "HELLO AGAIN!")  # Sentence
示例#33
0
 def test_reversewords_string(self):
     self.assertEqual(HW1.reversewords("Hello world."), "world Hello.")
示例#34
0
 def test_shoutfour(self):
     self.assertEqual(HW1.shout("CAPS?"), "CAPS!!")  # Already in caps, add a different punctuation
示例#35
0
 def test_reversewordletters_string(self):
     self.assertEqual(HW1.reversewordletters("A civic testset is nice."), "A civic testset si ecin.")
示例#36
0
 def test2_Value(self):
     result = HW1.Value(15)
     self.assertEqual(7, result)
示例#37
0
 def test_piglatin_sentence(self):
     self.assertEqual(HW1.piglatin("Romans like bacon."), "omansre ikele aconbe")
示例#38
0
 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)
示例#39
0
 def test_shout_with_nums(self):
     self.assertEqual(HW1.shout("I like the number 7."), "I LIKE THE NUMBER 7!")
示例#40
0
 def test3_GoodOrder(self):
     result = HW1.GoodOrder(1573)
     self.assertEqual(True, result)
示例#41
0
 def test1_GoodOrder(self):
     result = HW1.GoodOrder(12345)
     self.assertEqual(False, result)
示例#42
0
	def test_reverse1(self):
		self.assertEqual(HW1.reverse("asdf blah"), "halb fdsa")
示例#43
0
 def test1_Pascal(self):
     result = HW1.Pascal(3, 2)
     self.assertEqual(3, result)
示例#44
0
 def test_reverse_string(self):
     self.assertEqual(HW1.reverse("Bom bard a drab mob."), ".bom bard a drab moB")
示例#45
0
	def test_reversewords1(self):
		self.assertEqual(HW1.reversewords("Hi, my name is Blah."), "Blah is name my, Hi.")
示例#46
0
 def test_reversewords_2sentence(self):
     self.assertEqual(HW1.reversewords("Hello world. What's your name?"), "world Hello. name your What's.")   
示例#47
0
	def test_reversewordletters1(self):
		self.assertEqual(HW1.reversewordletters("Hi, my name is Blah."), "iH, ym, eman, si, halB")
示例#48
0
 def test_piglatin_sentence(self): # preserving old test case
     self.assertEqual(HW1.piglatin("pig latin"), "igpe atinle")
示例#49
0
	def test_piglatin1(self):
		self.assertEqual(HW1.piglatin("nix"), "ixnay")
示例#50
0
 def test_palindrome_sentence(self):
     self.assertEqual(HW1.reverse("Bom bard a drab mob."), ".bom bard a drab moB")
示例#51
0
	def test_shout1(self):
		self.assertEqual(HW1.shout("Hey there"), "HEY THERE!")
示例#52
0
 def test_no_punctuation_rwl(self): 
     self.assertEqual(HW1.reversewordletters("A long string without punctuation"), "A gnol gnirts tuohtiw noitautcnup")
示例#53
0
# 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]: