Completed
Push — communication-check-attributes... ( 9f7621 )
by Valentin
02:26
created

tests.BaseAbstractNodeTests.testInverse()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1
Metric Value
cc 1
dl 0
loc 5
ccs 3
cts 3
cp 1
crap 1
rs 9.4285
1 1
import json
2 1
import datetime
3
4 1
from ppp_datamodel import AbstractNode, Triple, Resource, Missing
5 1
from ppp_datamodel import List, Union, Intersection
6 1
from ppp_datamodel import exceptions
7
8 1
from unittest import TestCase
9
10 1
T = Triple
11 1
R = Resource
12 1
M = Missing
13
14 1
class BaseAbstractNodeTests(TestCase):
15 1
    def testPredicateSet(self):
16 1
        self.assertEqual(T(M(), R('foo'), M()).predicate_set,
17
                {R('foo')})
18 1
        self.assertEqual(T(M(), List([R('foo'), R('bar')]), M()).predicate_set,
19
                {R('foo'), R('bar')})
20
21 1
    def testInversePredicateEmpty(self):
22 1
        self.assertEqual(T(M(), M(), M()).inverse_predicate, List([]))
23 1
        self.assertEqual(T(M(), M(), M(), M()).inverse_predicate, M())
24 1
        self.assertEqual(T(M(), M(), M()),
25
                {'type': 'triple', 'object': {'type': 'missing'},
26
                 'subject': {'type': 'missing'},
27
                 'predicate': {'type': 'missing'}})
28 1
        self.assertEqual(T(M(), M(), M(), M()),
29
                {'type': 'triple', 'object': {'type': 'missing'},
30
                 'subject': {'type': 'missing'},
31
                 'predicate': {'type': 'missing'},
32
                 'inverse-predicate': {'type': 'missing'}})
33
34 1
    def testInverse(self):
35 1
        self.assertEqual(T(R('foo'), R('bar'), R('baz'), R('qux')).inverse(),
36
                T(R('baz'), R('qux'), R('foo'), R('bar')))
37 1
        self.assertEqual(T(R('foo'), R('bar'), R('baz')).inverse(),
38
                T(R('baz'), List([]), R('foo'), R('bar')))
39