File: test_encode_attribute.py

package info (click to toggle)
liac-arff 2.5.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 356 kB
  • sloc: python: 2,706; makefile: 126; sh: 23
file content (83 lines) | stat: -rw-r--r-- 2,621 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import unittest
import arff

class TestEncodeAttribute(unittest.TestCase):
    def get_encoder(self):
        decoder = arff.ArffEncoder()
        return decoder

    def test_attribute_name(self):
        encoder = self.get_encoder()

        fixture = (u'attribute name', 'REAL')
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE "attribute name" REAL'

        self.assertEqual(result, expected)   

    def test_attribute_name_special(self):
        encoder = self.get_encoder()

        fixture = (u'%attributename', 'REAL')
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE "%attributename" REAL'
        self.assertEqual(result, expected)

        fixture = (u'attribute,name', 'REAL')
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE "attribute,name" REAL'
        self.assertEqual(result, expected)

    def test_attribute_real(self):
        encoder = self.get_encoder()

        fixture = (u'attribute-name', 'REAL')
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE attribute-name REAL'

        self.assertEqual(result, expected)

    def test_attribute_numeric(self):
        encoder = self.get_encoder()

        fixture = (u'attribute-name', 'NUMERIC')
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE attribute-name NUMERIC'

        self.assertEqual(result, expected)

    def test_attribute_integer(self):
        encoder = self.get_encoder()

        fixture = (u'attribute-name', 'INTEGER')
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE attribute-name INTEGER'

        self.assertEqual(result, expected)

    def test_attribute_string(self):
        encoder = self.get_encoder()

        fixture = (u'attribute-name', 'STRING')
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE attribute-name STRING'

        self.assertEqual(result, expected)

    def test_attribute_nominal(self):
        encoder = self.get_encoder()

        fixture = (u'attribute-name', ['a', 'b', 'c'])
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE attribute-name {a, b, c}'

        self.assertEqual(result, expected)

    def test_attribute_nominal_spaced(self):
        encoder = self.get_encoder()

        fixture = (u'attribute-name', ['with space', 'b', 'c'])
        result = encoder._encode_attribute(*fixture)
        expected = u'@ATTRIBUTE attribute-name {\'with space\', b, c}'

        self.assertEqual(result, expected)