1
2
3
4
5
6
7
8 from nltk_lite.contrib.classifier import attribute as a, discretisedattribute as da, numrange as nr, format
9 from nltk_lite.contrib.classifier_tests import *
10
14
16 self.assertEqual(5, len(self.attrs), 'there should be 5 attributes')
17
19 self.assertTrue(self.attrs.has_values(['dual', 'big', 'symbian', 'y', 'y']))
20
22 self.assertEqual('band', self.attrs[0].name)
23 self.assertEqual('size', self.attrs[1].name)
24 self.assertEqual('os', self.attrs[2].name)
25 self.assertEqual('pda', self.attrs[3].name)
26 self.assertEqual('mp3', self.attrs[4].name)
27
30
32 attrs = a.Attributes([a.Attribute('band', ['dual','tri','quad'], 0), a.Attribute('size', ['big','small','medium'], 1)])
33 same = a.Attributes([a.Attribute('band', ['dual','tri','quad'], 0), a.Attribute('size', ['big','small','medium'], 1)])
34 self.assertEqual(attrs, same, 'they should be the same')
35 other = a.Attributes([a.Attribute('band', ['dual','tri','quad'], 0), a.Attribute('pda', ['y','n'], 1)])
36 self.assertNotEqual(self.attrs, other, 'shouldnt be the same')
37
39 for i in range(len(self.attrs)):
40 self.assertEqual(i, self.attrs[i].index)
41
48
52
60
62 attrs = format.C45_FORMAT.get_attributes(datasetsDir(self) + 'numerical' + SEP + 'person')
63 self.assertTrue(attrs[0].is_continuous())
64 self.assertTrue(attrs[4].is_continuous())
65 self.assertTrue(attrs[6].is_continuous())
66 self.assertTrue(attrs[7].is_continuous())
67
68 attrs.discretise([da.DiscretisedAttribute('dependents', nr.Range(0, 2, True).split(2), 4), \
69 da.DiscretisedAttribute('annualincome', nr.Range(0, 120000, True).split(5), 6)])
70
71 self.assertFalse(attrs[4].is_continuous())
72 self.assertFalse(attrs[6].is_continuous())
73
74 self.assertTrue(attrs[0].is_continuous())
75 self.assertTrue(attrs[7].is_continuous())
76
77 self.assertEqual(['a', 'b'], attrs[4].values)
78 self.assertEqual(['a', 'b', 'c', 'd', 'e'], attrs[6].values)
79
90
100
101 if __name__ == '__main__':
102 runner = unittest.TextTestRunner()
103 runner.run(unittest.TestSuite(unittest.makeSuite(AttributesTestCase)))
104