Changeset 10597:3011e00a2001 in orange


Ignore:
Timestamp:
03/21/12 14:45:11 (2 years ago)
Author:
Matija Polajnar <matija.polajnar@…>
Branch:
default
Message:

Add table instance hashing unit tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/testing/unit/tests/test_table.py

    r10551 r10597  
    128128            f.flush() 
    129129            table1 = Orange.data.Table(f.name) 
    130          
     130 
     131 
     132@testing.datasets_driven 
     133class TestHashing(unittest.TestCase): 
     134 
     135    @testing.test_on_data 
     136    def test_uniqueness(self, name): 
     137        """ Test the uniqueness of hashes. This is probabilistic, 
     138        but if we hit a collision in one of documentation datasets, 
     139        then it's time to open a bottle of Champagne ... 
     140        """ 
     141        table = Orange.data.Table(name) 
     142        self.assertEquals(len(set(table)), len(set(hash(i) for i in table))) 
     143 
     144    @testing.test_on_data 
     145    def test_repetitiveness(self, name): 
     146        """ Test whether a data instance gets the same hash twice. 
     147        """ 
     148        table = Orange.data.Table(name) 
     149        a = [hash(i) for i in table] 
     150        # Copy and reverse the table prior to hashing - just to hopefully 
     151        # make more bugs stand out. 
     152        b = list(reversed([hash(i) for i in 
     153                           reversed(Orange.data.Table(table))])) 
     154 
     155        self.assertEquals(a, b) 
    131156 
    132157 
Note: See TracChangeset for help on using the changeset viewer.