示例#1
0
 def test__setitem__(self, empty_fs):
     empty_fs['A'] = 1
     assert empty_fs['A'] == 1
     empty_fs['a'] = 3
     assert empty_fs['A'] == 3
     empty_fs['B.C'] = 4
     assert empty_fs['B'] == tfs.FeatureStructure({'C': 4})
示例#2
0
def test_FeatureStructure():
    fs = tfs.FeatureStructure()
    assert fs.features() == []
    with pytest.raises(KeyError):
        fs['unknown']
    assert fs.get('unknown') is None
    assert fs == tfs.FeatureStructure()

    fs = tfs.FeatureStructure({'A': 'xYz', 'B': 2})
    assert sorted(fs.features()) == [('A', 'xYz'), ('B', 2)]
    assert fs['A'] == fs.get('A') == 'xYz'  # case sensitive values
    assert fs['A'] == fs['a']  # case insensitive keys
    assert fs['B'] == fs.get('B') == 2
    assert fs == tfs.FeatureStructure([('A', 'xYz'), ('B', 2)])

    fs = tfs.FeatureStructure([('A.B.C', 1), ('A.B.D', 2), ('B', 3)])
    assert sorted(fs.features()) == [('A.B',
                                      tfs.FeatureStructure([('C', 1),
                                                            ('D', 2)])),
                                     ('B', 3)]
    assert sorted(fs.features(expand=True)) == [('A.B.C', 1), ('A.B.D', 2),
                                                ('B', 3)]
    assert fs['A.B.C'] == fs['a.B.c'] == 1
    assert fs['A.B.D'] == fs['A']['B']['D'] == 2
    assert fs['B'] == 3
    assert fs['A'] == tfs.FeatureStructure([('B.C', 1), ('B.D', 2)])
    with pytest.raises(KeyError):
        fs['A.B.E']
示例#3
0
 def test_features(self, empty_fs, flat_fs, nested_fs):
     assert empty_fs.features() == []
     assert sorted(flat_fs.features()) == [('A', 'xYz'), ('B', 2)]
     assert sorted(nested_fs.features()) == [
         ('A.B', tfs.FeatureStructure([('C', 1), ('D', 2)])), ('B', 3)
     ]
     assert sorted(nested_fs.features(expand=True)) == [('A.B.C', 1),
                                                        ('A.B.D', 2),
                                                        ('B', 3)]
示例#4
0
 def test__delitem__(self, nested_fs):
     del nested_fs['A.B.C']
     assert 'A.B.C' not in nested_fs
     assert nested_fs['A.B.D'] == 2
     del nested_fs['A.B.D']
     assert nested_fs['A.B'] == tfs.FeatureStructure()
     del nested_fs['A']
     assert 'A' not in nested_fs
     del nested_fs['b']
     assert 'B' not in nested_fs
示例#5
0
 def test_eq(self, empty_fs, flat_fs, nested_fs):
     assert empty_fs == tfs.FeatureStructure()
     assert empty_fs != flat_fs
     assert flat_fs == flat_fs
     flat2 = tfs.FeatureStructure({'A': 'XyZ', 'B': 2})
     assert flat_fs != flat2
     flat3 = tfs.FeatureStructure({'a': 'xYz', 'b': 2})
     assert flat_fs == flat3
     flat4 = tfs.FeatureStructure({'A': 'xYz', 'B': 2, 'C': 1})
     assert flat_fs != flat4
     assert nested_fs == tfs.FeatureStructure([('A',
                                                tfs.FeatureStructure({
                                                    'B.C':
                                                    1,
                                                    'B.D':
                                                    2
                                                })), ('B', 3)])
示例#6
0
def empty_fs():
    return tfs.FeatureStructure()
示例#7
0
 def test_init(self):
     tfs.FeatureStructure()
     tfs.FeatureStructure({'A': 'b'})
     tfs.FeatureStructure([('A', 'b')])
     tfs.FeatureStructure([('A.B.C', 1), ('A.B.D', 2), ('B', 3)])
示例#8
0
def nested_fs():
    return tfs.FeatureStructure([('A.B.C', 1), ('A.B.D', 2), ('B', 3)])
示例#9
0
def flat_fs():
    return tfs.FeatureStructure({'A': 'xYz', 'B': 2})