DependenciesTreeTests.testBasicClass()   B
last analyzed

Complexity

Conditions 1

Size

Total Lines 31

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 31
CRAP Score 1

Importance

Changes 5
Bugs 2 Features 0
Metric Value
cc 1
c 5
b 2
f 0
dl 0
loc 31
ccs 31
cts 31
cp 1
crap 1
rs 8.8571
1 1
from ppp_questionparsing_grammatical import Nounificator
2
3 1
from unittest import TestCase
4
5 1
class DependenciesTreeTests(TestCase):
6
7 1
    def testBasicClass(self):
8 1
        n = Nounificator()
9 1
        self.assertEqual(n.directNouns('a'), [])
10 1
        n.addDirect('a', 'b')
11 1
        n.addInverse('a', 'c')
12 1
        n.addListDirect('a', 'd e'.split(' '))
13 1
        self.assertEqual(str(n), "a:\t->['b', 'd', 'e']\na:\t<-['c']")
14 1
        self.assertTrue('b' in n.directNouns('a'))
15 1
        self.assertTrue('c' in n.inverseNouns('a'))
16 1
        self.assertFalse('f' in n.inverseNouns('a'))
17 1
        self.assertEqual(n.directNouns('b'), [])
18 1
        n.removeDirect('a', 'b')
19 1
        self.assertFalse('b' in n.directNouns('a'))
20 1
        self.assertTrue('c' in n.inverseNouns('a'))
21 1
        self.assertTrue(n.exists('a'))
22 1
        n.removeInverse('a', 'c')
23 1
        n.removeDirect('a', 'd')
24 1
        n.removeDirect('a', 'e')
25 1
        self.assertEqual(n.directNouns('a'), [])
26 1
        n.addListInverse('u', ['r', 't'])
27 1
        self.assertTrue('t' in n.inverseNouns('u'))
28 1
        n.removeVerbInverse('u')
29 1
        self.assertFalse(n.exists('u'))
30 1
        m = Nounificator()
31 1
        m.addDirect('k', 'l')
32 1
        m.addInverse('k', 'o')
33 1
        n.merge(m)
34 1
        self.assertTrue('l' in n.directNouns('k'))
35 1
        self.assertTrue('o' in n.inverseNouns('k'))
36 1
        n.removeVerbDirect('k')
37 1
        self.assertFalse('l' in n.directNouns('k'))
38
39 1
    def testLoadSave(self):
40 1
        n = Nounificator()
41 1
        n.addListDirect('a', ['b1', 'b2', 'b3'] )
42 1
        n.addInverse('a', 'c')
43 1
        n.addDirect('s', 't')
44 1
        n.addListInverse('x', ['z1', 'z2'])
45 1
        n.addInverse('s', 'e f')
46 1
        n.addInverse('r s', 'e f g')
47 1
        for ext in {'pickle', 'json', 'txt'}:
48 1
            n.save('/tmp/test.%s' % ext)
49 1
            m = Nounificator()
50 1
            m.load('/tmp/test.%s' % ext)
51
            self.assertEqual(n, m)
52