Package nltk_lite :: Package contrib :: Package classifier_tests :: Module attributetests
[hide private]
[frames] | no frames]

Source Code for Module nltk_lite.contrib.classifier_tests.attributetests

 1  # Natural Language Toolkit 
 2  # 
 3  # Author: Sumukh Ghodke <sumukh dot ghodke at gmail dot com> 
 4  # 
 5  # URL: <http://nltk.sf.net> 
 6  # This software is distributed under GPL, for license information see LICENSE.TXT 
 7   
 8  from nltk_lite.contrib.classifier import attribute as a 
 9  from nltk_lite.contrib.classifier_tests import * 
10  import math 
11   
12 -class AttributeTestCase(unittest.TestCase):
13 - def test_attribute_creation(self):
14 attr = a.Attribute('foo', ['a','b','c'], 0) 15 self.assertEqual('foo', attr.name) 16 self.assertEqual(['a', 'b', 'c'], attr.values)
17
19 attr = a.Attribute('foo', ['a','b','c'], 0) 20 self.assertTrue(attr.has_value('c')) 21 self.assertFalse(attr.has_value('d'))
22
23 - def test_equality(self):
24 attr = a.Attribute('foo', ['a','b','c'], 0) 25 same = a.Attribute('foo', ['a','b','c'], 0) 26 othername = a.Attribute('foobar', ['a','b','c'], 1) 27 otherval = a.Attribute('foo',['a','b','c','d'], 0) 28 self.assertEqual(attr, same, 'they should be equal') 29 self.assertNotEqual(attr, othername, 'they are not equal') 30 self.assertNotEqual(attr, otherval, 'they are not equal')
31
33 cont_attr = a.Attribute('temperature',['continuous'], 1) 34 self.assertEqual(a.CONTINUOUS, cont_attr.type) 35 self.assertTrue(cont_attr.is_continuous()) 36 37 disc_attr = a.Attribute('foo',['a','b','c'], 0) 38 self.assertEqual(a.DISCRETE, disc_attr.type) 39 self.assertFalse(disc_attr.is_continuous())
40
41 - def test_split_info(self):
42 attr = a.Attribute('foo', ['a','b','c'], 0) 43 expected = -(1.0/3 * math.log(1.0/3, 2)) * 3 44 self.assertAlmostEqual(expected, attr.split_info(), 6)
45
47 attr = a.Attribute('foo', ['a','b','c'], 0) 48 higher_arity = a.Attribute('foo', ['a','b','c', 'd', 'e', 'f', 'g', 'h'], 0) 49 self.assertTrue(higher_arity.split_info() > attr.split_info())
50