def test_shift_vector(self): vn = Vectors([[0.2, 1., 2, 3], [4.2, 5, 6, 7]]) v1 = Vectors([[1.]]) assert Shift(v1, 2) assert Shift(vn, 1, 2) assert str(Shift(vn, 1, 2)) == str(vn.shift(1, 2))
def build_data(self): v = Vectors([[1, 2, 3], [1, 3, 1]]) assert 2 == v.nb_vector assert 3 == v.nb_variable assert [1, 2] == v.get_identifiers() assert v return v
def create_data(self): seq0 = Sequences(get_shared_data("chene_sessile_15pa.seq")) vec10 = Vectors(seq0) vec95 = ValueSelect(vec10, 1, 95) vec96 = ValueSelect(vec10, 1, 96) vec97 = ValueSelect(vec10, 1, 97) return [vec95, vec96, vec97]
def build_data(self): vec10 = Vectors(get_shared_data("chene_sessile.vec")) vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject") matrix10 = Compare(vec15, VectorDistance("N", "N", "N")) assert 138 == matrix10.nb_row assert 138 == matrix10.nb_column return matrix10
def test_constructor_identifiers_failure(self): try: # should be Vectors([[1,2,3], Identifiers=[1]) v = Vectors([1, 2, 3], Identifiers=[1, 2]) assert False except ValueError: assert True
def build_data(self): vec10 = Vectors(get_shared_data("chene_sessile.vec")) vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject") matrix10 = Compare(vec15, VectorDistance("N", "N", "N")) c1 = Clustering(matrix10, "Partition", 3, Prototypes=[1, 3, 12], Algorithm="Divisive") return ToDistanceMatrix(c1)
def test_merge_vectors(self): v1 = self.int_vector_data() b = [[2, 78, 45], [6, 2, 122], [3, 4, 31],] v2 = Vectors(b) v = Merge(v1, v2) assert v a = v1.merge([v2]) b = v2.merge([v1]) assert str(a)==str(b) assert str(a)==str(v) Plot(v)
def test_cluster_vectors_badtype(self): v = Vectors([[1, 2, 3], [1, 3, 1], [4, 5, 6]]) try: # should be step, cluster, information Cluster(v, "BadName", 2) assert False except KeyError: assert True
def test_cluster_vectors_information_failure(self): v = Vectors([[1, 2, 3], [1, 3, 1], [4, 5, 6]]) try: # if v is vectors, information does not exist Cluster(v, "Information", 2) assert False except KeyError: assert True
def test_vectors_container(self): """vector container : len""" v = Vectors([[0, 1, 2, 3], [4, 5, 6, 7]]) assert len(v) == 2 for i in v: assert len(i) == 4 assert v[0] == range(4) assert v[1][1] == 5
def test_compare_vectors(self): vec10 = Vectors(get_shared_data("chene_sessile.vec")) vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject") assert vec15 matrix10 = Compare(vec15, VectorDistance("N", "N", "N")) assert matrix10 assert str(vec15.compare(VectorDistance("N", "N", "N"), True)) == str(matrix10)
def test_clustering(self): vec10 = Vectors(get_shared_data("chene_sessile.vec")) vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject") assert vec15 matrix10 = Compare(vec15, VectorDistance("N", "N", "N")) c1 = Clustering(matrix10, "Partition", 3, Prototypes=[1, 3, 12], Algorithm="Divisive") c1_bis = Clustering(matrix10, "Partition", 3, Prototypes=[1, 3, 12], Algorithm="Ordering") c2 = Clustering(matrix10, "Hierarchy", Algorithm="Agglomerative") c3 = Clustering(matrix10, "Hierarchy", Algorithm="Divisive") c4 = Clustering(matrix10, "Hierarchy", Algorithm="Ordering") assert c1 assert c2 assert c3 assert c4 assert ToDistanceMatrix(c1) # first argument is the Algorithm # * 0 for agglomerative # * 1 for divisive # Second argument is the criterion # * 2 for averaging #those 3 tests works on my laptop (TC, April 2009) but not on buildbot #assert c2 == matrix10.hierarchical_clustering(0, 2, "test", "test") #assert c3 == matrix10.hierarchical_clustering(1, 1, "test", "test") #assert c4 == matrix10.hierarchical_clustering(2, 0, "test", "test") # 1 for initialisation and 1 for divisive assert str(c1) == \ str(matrix10.partitioning_prototype(3, [1, 3, 12], 1, 1)) assert str(c1_bis) == \ str(matrix10.partitioning_prototype(3, [1, 3, 12], 1, 2))
def test_vectors_pylist(self): """test vector constructor from list""" v = Vectors([[0, 1, 2, 3], [4, 5, 6, 7]]) assert v v = Vectors([[1.2, 0.34], [1.2, 0.34]]) assert v v = Vectors([[1]]) assert v v = Vectors([[0, 1, 2, 3], [4, 5, 6, 7], [1, 2, 3, 4]]) assert v try: v = Vectors([[0, 1, 2, 3], [4, 5, 6, 7], [1, 2, 3]]) assert False except: assert True try: v = Vectors([[0, 1, 2, 3], [4, 5, 6, 7], [1.2, 2, 3]]) assert False except: assert True
def _test_cluster_vectors1(self): v = Vectors([[1], [2], [3]]) assert str(Cluster(v, "Step", 2)) == str(v.cluster_step(1, 2)) assert str(Cluster(v, "Limit", [2])) == str(v.cluster_limit(1, [2]))
def test_constructor_one_variable(self): v = Vectors([1, 2, 3]) assert v.nb_variable == 3
def test_types(self): v2 = Vectors([[1, 2., 3.], [1, 5., 1.]], Identifiers=[1, 2])
def test_identifiers(self): v = Vectors([[1, 2, 3], [4, 5, 6], [7, 8, 9]], Identifiers=[1, 2, 4]) assert v.get_identifiers() == [1, 2, 4]
def build_data_2(self): return Vectors(get_shared_data("chene_sessile.vec"))
class TestRegression(interface): """a simple unittest class""" def __init__(self): self.vector = Vectors([[0, 0], [1, 1], [2, 2], [3, 3]]) interface.__init__(self, self.build_data(), None, Regression) def build_data(self): # vector = Vectors([[0, 0], [1, 1], [2, 2], [3, 3]]) r1 = Regression(self.vector, "Linear", 1, 2) assert r1.nb_vector == 4 return r1 def test_build_bad_algorithm_failure(self): try: _r1 = Regression(self.vector, "Moving", 1, 2, 1, Weighting=False) assert False except: assert True def test_get_residuals(self): for ii in range(0, self.data.nb_vector): assert self.data.get_residual(ii) == 0 def test_print(self): self.print_data() def test_display(self): self.display() self.display_versus_ascii_write() self.display_versus_str() def test_len(self): """not implemented; irrelevant?""" assert self.data.nb_vector == 4 def test_plot(self): self.plot() def test_save(self): self.save(skip_reading=True) def test_plot_write(self): self.plot_write() def test_file_ascii_write(self): self.file_ascii_write() def test_spreadsheet_write(self): self.spreadsheet_write() def test_extract(self): pass def test_extract_data(self): pass def test_linear_regression(self): r1 = self.data # compare with the direct usage of linear regression r = self.vector.linear_regression(1, 2) assert r assert r1 assert str(r) == str(r1) def test_moving_average(self): r1 = Regression(self.vector, "MovingAverage", 1, 2, [1]) r = self.vector.moving_average_regression_values(1, 2, [1], "a") assert r assert r1 assert str(r) == str(r1) def test_moving_average_failure(self): try: Regression(self.vector, "MovingAverage", 1, 2, [1], Algorithm="badAlgorithmName") assert False except: assert True def _test_moving_average_and_compound(self): """test to be implemented""" compound = Compound(Binomial(1, 10, 0.5), Binomial(1, 5, 0.4)) Regression(self.vector, "MovingAverage", 1, 2, compound) def test_nearest_neighbours(self): r1 = Regression(self.vector, "NearestNeighbors", 1, 2, 1, Weighting=False) r = self.vector.nearest_neighbours_regression(1, 2, 1.0, False) assert r assert r1 assert str(r) == str(r1) def test_badtype(self): try: Regression(self.vector, "N", 1, 2, [1]) assert False except TypeError: assert True
def create_data(self): v = Vectors([[1], [1], [4]]) return v
def _test_cluster_vectors1(self): v = Vectors([[1], [2], [3]]) assert str(Cluster(v, "Step", 2)) == str(v.cluster_step(1, 2)) assert str(Cluster(v, "Limit", [2])) == \ str(v.cluster_limit(1,[2]))
def test_vectors(self): v = Vectors([[1, 2, 3, 4, 5, 6, 7]]) ExtractHistogram(v, 1) v = Vectors([[1, 2], [3, 4]]) ExtractHistogram(v, 1)
class TestRegression(interface): """a simple unittest class""" def __init__(self): self.vector = Vectors([[0, 0], [1, 1], [2, 2], [3, 3]]) interface.__init__(self, self.build_data(), None, Regression) def build_data(self): #vector = Vectors([[0, 0], [1, 1], [2, 2], [3, 3]]) r1 = Regression(self.vector, "Linear", 1, 2) assert r1.nb_vector == 4 return r1 def test_build_bad_algorithm_failure(self): try: _r1 = Regression(self.vector, "Moving", 1, 2, 1, Weighting=False) assert False except: assert True def test_get_residuals(self): for ii in range(0, self.data.nb_vector): assert self.data.get_residual(ii) == 0 def test_print(self): self.print_data() def test_display(self): self.display() self.display_versus_ascii_write() self.display_versus_str() def test_len(self): """not implemented; irrelevant?""" assert self.data.nb_vector == 4 def test_plot(self): self.plot() def test_save(self): self.save(skip_reading=True) def test_plot_write(self): self.plot_write() def test_file_ascii_write(self): self.file_ascii_write() def test_spreadsheet_write(self): self.spreadsheet_write() def test_extract(self): pass def test_extract_data(self): pass def test_linear_regression(self): r1 = self.data #compare with the direct usage of linear regression r = self.vector.linear_regression(1, 2) assert r assert r1 assert str(r) == str(r1) def test_moving_average(self): r1 = Regression(self.vector, "MovingAverage", 1, 2, [ 1, ]) r = self.vector.moving_average_regression_values(1, 2, [ 1, ], 'a') assert r assert r1 assert str(r) == str(r1) def test_moving_average_failure(self): try: Regression(self.vector, "MovingAverage", 1, 2, [ 1, ], Algorithm="badAlgorithmName") assert False except: assert True def _test_moving_average_and_compound(self): """test to be implemented""" compound = Compound(Binomial(1, 10, 0.5), Binomial(1, 5, 0.4)) Regression(self.vector, "MovingAverage", 1, 2, compound) def test_nearest_neighbours(self): r1 = Regression(self.vector, "NearestNeighbors", 1, 2, 1, Weighting=False) r = self.vector.nearest_neighbours_regression(1, 2, 1., False) assert r assert r1 assert str(r) == str(r1) def test_badtype(self): try: Regression(self.vector, "N", 1, 2, [ 1, ]) assert False except TypeError: assert True
def __init__(self): self.vector = Vectors([[0, 0], [1, 1], [2, 2], [3, 3]]) interface.__init__(self, self.build_data(), None, Regression)
def create_data(self): v = Vectors([[1, 2, 3], [1, 3, 1], [4, 5, 6]]) return v
def test_cluster_vectors(self): v = Vectors([[1, 2, 3], [1, 3, 1], [4, 5, 6]]) assert str(Cluster(v, "Step", 1, 2)) == str(v.cluster_step(1, 2)) assert str(Cluster(v, "Limit", 1, [2, 4, 6])) == str(v.cluster_limit(1, [2, 4, 6]))
def create_data(self): seq0 = Sequences(get_shared_data("chene_sessile_15pa.seq")) vec10 = Vectors(seq0) return vec10
def _test_transcode_vectors(self): vec = Vectors([[1, 2, 3], [1, 3, 1], [4, 5, 6]]) assert str(vec.transcode(1, [1, 2, 3, 4])) == str(Transcode(vec, 1, [1, 2, 3, 4]))
def test_cluster_vectors(self): v = Vectors([[1, 2, 3], [1, 3, 1], [4, 5, 6]]) assert str(Cluster(v, "Step", 1, 2)) == str(v.cluster_step(1, 2)) assert str(Cluster(v, "Limit", 1, [2, 4, 6])) == \ str(v.cluster_limit(1, [2, 4 ,6]))
def int_vector_data(self): a = [[1, 3, 4], [4, 12, 2], [8, 7, 3],] v = Vectors(a) return v
def float_vector_data(self): v = Vectors([[0.1, 0.3, 4.2], [0.5, 2.3, 1.2], [4.5, 6.3, 3.2], ]) return v
def _test_transcode_vectors(self): vec = Vectors([[1, 2, 3], [1, 3, 1], [4, 5, 6]]) assert str(vec.transcode(1, [1, 2, 3, 4]))==\ str(Transcode(vec, 1, [1, 2, 3, 4]))
def test(): vec10 = Vectors("data/chene_sessile.vec") Plot(vec10) # plot of the pointwise averages Plot(Regression(vec10, "MovingAverage", 1, 2, [1])) vec95 = ValueSelect(vec10, 1, 1995) vec96 = ValueSelect(vec10, 1, 1996) vec97 = ValueSelect(vec10, 1, 1997) VarianceAnalysis(vec10, 1, 2, "N") Compare(ExtractHistogram(vec95, 2), ExtractHistogram(vec96, 2), \ ExtractHistogram(vec95, 2), "N") Plot(ExtractHistogram(vec95, 2), ExtractHistogram(vec96, 2), \ ExtractHistogram(vec97, 2)) ContingencyTable(vec10, 1, 4) # one-way variance analysis based on ranks VarianceAnalysis(vec10, 1, 4, "O") Compare(ExtractHistogram(vec95, 4), ExtractHistogram(vec96, 4), \ ExtractHistogram(vec95, 4), "O") # looks like it is not plotted Plot(ExtractHistogram(vec95, 4), ExtractHistogram(vec96, 4), ExtractHistogram(vec97, 4)) Plot(ExtractHistogram(vec95, 5), ExtractHistogram(vec96, 5), ExtractHistogram(vec97, 5)) Plot(ExtractHistogram(vec95, 6), ExtractHistogram(vec96, 6), ExtractHistogram(vec97, 6)) vec11 = ValueSelect(vec10, 4, 1) vec12 = ValueSelect(vec10, 4, 2) vec13 = ValueSelect(vec10, 4, 3, 4) Plot(ExtractHistogram(vec11, 2), ExtractHistogram(vec12, 2), ExtractHistogram(vec13, 2)) Plot(ExtractHistogram(vec11, 5), ExtractHistogram(vec12, 5), ExtractHistogram(vec13, 5)) mixt20 = Estimate(ExtractHistogram(vec10, 2), \ "MIXTURE", "NB", "NB", "NB", "NB", \ NbComponent="Estimated") Display(mixt20) Plot(mixt20) Plot(ExtractDistribution(mixt20, "Mixture")) _mixt21 = Estimate(ExtractHistogram(vec10, 5), \ "MIXTURE", "NB", "NB", "NB", "NB", \ NbComponent="Estimated") vec9596 = ValueSelect(vec10, 1, 1995, 1996) Plot(ExtractHistogram(ValueSelect(vec9596, 4, 1), 6), \ ExtractHistogram(ValueSelect(vec9596, 4, 2), 6), \ ExtractHistogram(ValueSelect(vec9596, 4, 3, 4), 6)) # linear regression regress10 = Regression(vec10, "Linear", 5, 2) Display(regress10) Plot(regress10) # nonparametric regression (loess smoother) _regress11 = Regression(vec10, "NearestNeighbors", 5, 2, 0.3) _regress12 = Regression(vec9596, "Linear", 5, 6) _regress13 = Regression(vec9596, "NearestNeighbors", 5, 6, 0.5) _vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")