Changeset 8763:215fb7c76033 in orange


Ignore:
Timestamp:
08/24/11 15:44:30 (3 years ago)
Author:
ales_erjavec <ales.erjavec@…>
Branch:
default
Convert:
fd15835544a9991740c6581750ade494a862d005
Message:

Added more tests.

Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • orange/Orange/misc/testing.py

    r8735 r8763  
    386386            self.assertLess(abs(dist_sum - 1.0), 1e-3) 
    387387             
    388 #            # just for fun also test this 
    389 #            self.assertLess(abs(dist_sum - dist.abs), 1e-3) 
    390 #            # not fun because it fails 
     388            # just for fun also test this 
     389            self.assertLess(abs(dist_sum - dist.abs), 1e-3) 
     390            # not fun because it fails 
    391391 
    392392        # Store classifier for possible use in subclasses 
     
    408408        for ex in test: 
    409409            if isinstance(dataset.domain.class_var, Orange.data.variable.Continuous): 
     410                # Test to third digit after the decimal point 
    410411                self.assertAlmostEqual(classifier(ex, orange.GetValue).native(), 
    411412                                       classifier_clone(ex, orange.GetValue).native(), 
    412                                        dataset.domain.class_var.number_of_decimals + 3, 
     413                                       min(3, dataset.domain.class_var.number_of_decimals), 
    413414                                       "Pickled and original classifier return a different value!") 
    414415            else: 
    415                 self.assertEqual(classifier(ex, orange.GetValue), classifier_clone(ex, orange.GetValue), "Pickled and original classifier return a different value!") 
     416                self.assertEqual(classifier(ex, orange.GetValue), 
     417                                 classifier_clone(ex, orange.GetValue), 
     418                                 "Pickled and original classifier return a different value!") 
     419                 
    416420 
    417421class MeasureAttributeTestCase(DataTestCase): 
     
    503507        if dataset.domain.class_var: 
    504508            with member_set(self.distance_constructor, "ignore_class", False): 
    505                 mat = distance_matrix(dataset, self.distance_constructor) 
     509                try: 
     510                    mat = distance_matrix(dataset, self.distance_constructor) 
     511                except orange.KernelException, ex: 
     512                    if "not supported" in ex.message: 
     513                        return 
     514                    else: 
     515                        raise 
    506516            m1 = numpy.array(list(mat)) 
    507517            self.assertTrue((m1 != m).all() or dataset, "%r does not seem to respect the 'ignore_class' flag") 
  • testing/unittests/tests/test_earth.py

    r8149 r8763  
    55import unittest 
    66 
    7 @datasets_driven(datasets=testing.REGRESSION_DATASETS) 
     7@datasets_driven(datasets=testing.REGRESSION_DATASETS +\ 
     8                 testing.CLASSIFICATION_DATASETS) 
    89class TestEarthLearner(testing.LearnerTestCase): 
    910     
     
    1314    @test_on_data 
    1415    def test_learner_on(self, dataset): 
     16        if len(dataset) < 30: 
     17            raise unittest.SkipTest("Not enough examples.") 
    1518        testing.LearnerTestCase.test_learner_on(self, dataset) 
    1619        str = self.classifier.format_model() 
    1720        evimp = self.classifier.evimp() 
    1821         
    19     def test_bagged_evimp(self): 
    20         dataset = Orange.data.Table("auto-mpg") 
     22    @test_on_data 
     23    def test_bagged_evimp(self, dataset): 
    2124        from Orange.ensemble.bagging import BaggedLearner 
    2225        bagged = BaggedLearner(earth.EarthLearner(terms=10, degree=2), t=5)(dataset) 
     
    2427     
    2528     
    26 @datasets_driven(datasets=testing.REGRESSION_DATASETS,) 
    27 class TestMeasureAttr_EarthImportance(testing.MeasureAttributeTestCase): 
     29@datasets_driven(datasets=testing.REGRESSION_DATASETS +\ 
     30                 testing.CLASSIFICATION_DATASETS) 
     31class TestScoreEarthImportance(testing.MeasureAttributeTestCase): 
    2832    def setUp(self): 
    2933        from Orange.regression.earth import ScoreEarthImportance 
    3034        self.measure = ScoreEarthImportance(t=5, score_what="rss") 
    3135         
    32 @datasets_driven(datasets=testing.REGRESSION_DATASETS,) 
    33 class TestMeasureAttr_ScoreRSS(testing.MeasureAttributeTestCase): 
    34     def setUp(self): 
    35         from Orange.regression.earth import ScoreRSS 
    36         self.measure = ScoreRSS() 
     36         
     37#@datasets_driven(datasets=testing.REGRESSION_DATASETS,) 
     38#class TestScoreRSS(testing.MeasureAttributeTestCase): 
     39#    def setUp(self): 
     40#        from Orange.regression.earth import ScoreRSS 
     41#        self.measure = ScoreRSS() 
     42         
    3743         
    3844if __name__ == "__main__": 
  • testing/unittests/tests/test_logreg.py

    r8042 r8763  
    4747         
    4848if __name__ == "__main__": 
    49     unittest.main() 
     49    import Orange, os 
     50    import Orange.misc.environ 
     51    data = Orange.data.Table(os.path.expanduser("~/Development/orange/doc/datasets/titanic.tab")) 
     52    c = LogRegLearner(data) 
     53    import pickle 
     54    var = c.continuized_domain[0] 
     55    pickle.dumps(var) 
     56#    unittest.main() 
    5057     
  • testing/unittests/tests/test_measures.py

    r8735 r8763  
    3131 
    3232 
    33 @datasets_driven(datasets=testing.CLASSIFICATION_DATASETS) 
     33@datasets_driven(datasets=testing.CLASSIFICATION_DATASETS +\ 
     34                 testing.REGRESSION_DATASETS) 
    3435class TestMeasureAttr_Relief(testing.MeasureAttributeTestCase): 
    3536    MEASURE = scoring.Relief() 
  • testing/unittests/tests/test_rules.py

    r8136 r8763  
    1 from Orange.misc import testing 
    2        
     1from Orange.misc import testing       
    32from Orange.classification import rules 
     3 
     4import unittest 
    45 
    56@testing.test_on_data 
     
    2324    test_learner_on = test_learner_on 
    2425     
     26#@testing.datasets_driven(datasets=testing.CLASSIFICATION_DATASETS) 
     27#class TestCN2SDUnorderedLearner(testing.LearnerTestCase): 
     28#    def setUp(self): 
     29#        self.learner = rules.CN2SDUnorderedLearner() 
     30#         
     31#    test_learner_on = test_learner_on 
     32     
    2533 
     34if __name__ == "__main__": 
     35    unittest.main() 
    2636     
    27      
    28              
  • testing/unittests/tests/test_table.py

    r8136 r8763  
    3333        s = cPickle.dumps(table) 
    3434        table_clone = cPickle.loads(s) 
    35         self.assertEqual(list(table.domain), list(table_clone.domain)) 
    36         self.assertEqual(table.domain.class_var, table_clone.domain.class_var) 
    37         self.assertEqual(native(table), native(table_clone), "Native representation does is not equal!") 
     35#        self.assertEqual(table.domain, table_clone.domain) 
     36#        self.assertEqual(table.domain.class_var, table_clone.domain.class_var) 
     37        self.assertEqual(native(table), native(table_clone), "Native representation is not equal!") 
     38         
     39         
     40import tempfile 
     41 
     42@testing.datasets_driven 
     43class TestSaving(unittest.TestCase): 
     44    @testing.test_on_data 
     45    def test_R_on(self, name): 
     46        data = Orange.data.Table(name) 
     47        with tempfile.NamedTemporaryFile(suffix=".R") as f: 
     48            data.save(f.name) 
     49     
     50#    @testing.test_on_data 
     51#    def test_toC50(self, name): 
     52#        data = Orange.data.Table(name) 
     53 
     54    @testing.test_on_datasets(datasets=testing.CLASSIFICATION_DATASETS +\ 
     55                              testing.REGRESSION_DATASETS) 
     56    def test_arff_on(self, data): 
     57        with tempfile.NamedTemporaryFile(suffix=".arff") as f: 
     58            data.save(f.name) 
     59            f.flush() 
     60            data_arff = Orange.data.Table(f.name) 
     61    @testing.test_on_datasets(datasets=testing.CLASSIFICATION_DATASETS +\ 
     62                              testing.REGRESSION_DATASETS) 
     63    def test_svm_on(self, data): 
     64        with tempfile.NamedTemporaryFile(suffix=".svm") as f: 
     65            data.save(f.name) 
     66            f.flush() 
     67            data_svm = Orange.data.Table(f.name) 
     68             
    3869         
    3970if __name__ == "__main__": 
Note: See TracChangeset for help on using the changeset viewer.