Changeset 9036:88087a791f71 in orange


Ignore:
Timestamp:
09/27/11 18:15:07 (3 years ago)
Author:
ales_erjavec <ales.erjavec@…>
Branch:
default
Convert:
524ac60e53299444d8a12d3b9a6ee6d615fea7fb
Message:

Added more tests for kmeans.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • testing/unittests/tests/test_kmeans.py

    r9035 r9036  
    11import unittest 
    22from Orange.misc import testing 
     3from Orange.clustering import kmeans 
    34from Orange.clustering.kmeans import Clustering 
    45from Orange.distance.instances import * 
     
    78class TestKMeans(unittest.TestCase): 
    89    @testing.test_on_data 
    9     def test_kmeans_on(self, data): 
    10         km = Clustering(data, 5, maxiters=100, nstart=3) 
     10    def test_kmeans_on(self, table): 
     11        km = Clustering(table, 5, maxiters=100, nstart=3) 
     12        self.assertEqual(len(km.centroids), 5) 
     13        self.assertEqual(max(set(km.clusters)) + 1, 5) 
     14        self.assertEqual(len(km.clusters), len(table)) 
     15         
     16        self._test_score_functions(km) 
    1117     
     18    def _test_score_functions(self, km): 
     19        kmeans.score_distance_to_centroids(km) 
     20        kmeans.score_fast_silhouette(km, index=None) 
     21        kmeans.score_silhouette(km, index=None) 
     22         
     23    @testing.test_on_data 
     24    def test_init_functs(self, table): 
     25        distfunc = EuclideanConstructor(table) 
     26        for k in [1, 5, 10]: 
     27            self._test_init_func(table, k, distfunc) 
     28         
     29    def _test_init_func(self, table, k, distfunc): 
     30        centers = kmeans.init_random(table, k, distfunc) 
     31        self.assertEqual(len(centers), k) 
     32        self.assertEqual(centers[0].domain, table.domain) 
     33         
     34        centers = kmeans.init_diversity(table, k, distfunc) 
     35        self.assertEqual(len(centers), k) 
     36        self.assertEqual(centers[0].domain, table.domain) 
     37         
     38        centers = kmeans.init_hclustering(n=50)(table, k, distfunc) 
     39        self.assertEqual(len(centers), k) 
     40        self.assertEqual(centers[0].domain, table.domain) 
     41         
    1242     
    1343    @unittest.expectedFailure 
Note: See TracChangeset for help on using the changeset viewer.