def test_coincidence(self): print print "{0}testing coincidence{0}".format("*" * 6) data = [(), ('Jazz',), ('Jazz',)] self.assertEquals(Util.list_item_count(data, ('Jazz', )), 2, "Jazz occures for twice") self.assertEquals(Util.coincidence(data, (), ('Jazz',)), 1.0, "coincidence of {} and (Jazz,) is 1") self.assertEquals(Util.coincidence(data, ('Jazz', ), ('Jazz',)), 1.0, "coincidence of (Jazz,) and (Jazz,) is 1") data2 = [('Funk', 'Rock', 'Jazz'), ('Funk',), ('Funk', 'Rock')] self.assertEquals(Util.coincidence(data2, ('Funk', ), ('Funk', 'Rock')), 0.5, 'coincidence of (Funk,) and (Funk, Rock) is 0.5') self.assertEquals(Util.coincidence(data2, ('Funk', ), ('Funk', 'Rock')), Util.coincidence(data2, ('Funk', 'Rock'), ('Funk',)), 'coincidence is symmetric') print "{0}tested coincidence{0}".format("*" * 6) print
def test_coincidence(self): print print "{0}testing coincidence{0}".format("*" * 6) data = [(), ('Jazz', ), ('Jazz', )] self.assertEquals(Util.list_item_count(data, ('Jazz', )), 2, "Jazz occures for twice") self.assertEquals(Util.coincidence(data, (), ('Jazz', )), 1.0, "coincidence of {} and (Jazz,) is 1") self.assertEquals(Util.coincidence(data, ('Jazz', ), ('Jazz', )), 1.0, "coincidence of (Jazz,) and (Jazz,) is 1") data2 = [('Funk', 'Rock', 'Jazz'), ('Funk', ), ('Funk', 'Rock')] self.assertEquals( Util.coincidence(data2, ('Funk', ), ('Funk', 'Rock')), 0.5, 'coincidence of (Funk,) and (Funk, Rock) is 0.5') self.assertEquals( Util.coincidence(data2, ('Funk', ), ('Funk', 'Rock')), Util.coincidence(data2, ('Funk', 'Rock'), ('Funk', )), 'coincidence is symmetric') print "{0}tested coincidence{0}".format("*" * 6) print
def create_ock(self): ock = {}.fromkeys(self.flat_data) for key in ock.iterkeys(): ock[key] = {} flat_data_2 = self.flat_data[:] for obs in self.flat_data: for obs2 in flat_data_2: ock[obs][obs2] = sum([ Util.coincidence(d, obs, obs2) for d in self.data if obs in d and obs2 in d ]) flat_data_2.remove(obs) for obs2 in flat_data_2: # copy the symmetric items ock[obs2][obs] = ock[obs][obs2] return ock