• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1from fontTools.misc.classifyTools import classify
2
3
4def test_classify():
5    assert classify([]) == ([], {})
6    assert classify([[]]) == ([], {})
7    assert classify([[], []]) == ([], {})
8    assert classify([[1]]) == ([{1}], {1: {1}})
9    assert classify([[1,2]]) == ([{1, 2}], {1: {1, 2}, 2: {1, 2}})
10    assert classify([[1],[2]]) == ([{1}, {2}], {1: {1}, 2: {2}})
11    assert classify([[1,2],[2]]) == ([{1}, {2}], {1: {1}, 2: {2}})
12    assert classify([[1,2],[2,4]]) == (
13        [{1}, {2}, {4}], {1: {1}, 2: {2}, 4: {4}})
14    assert classify([[1,2],[2,4,5]]) == (
15        [{4, 5}, {1}, {2}], {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}})
16    assert classify([[1,2],[2,4,5]], sort=False) == (
17        [{1}, {4, 5}, {2}], {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}})
18    assert classify([[1,2,9],[2,4,5]], sort=False) == (
19        [{1, 9}, {4, 5}, {2}],
20        {1: {1, 9}, 2: {2}, 4: {4, 5}, 5: {4, 5}, 9: {1, 9}})
21    assert classify([[1,2,9,15],[2,4,5]], sort=False) == (
22        [{1, 9, 15}, {4, 5}, {2}],
23        {1: {1, 9, 15}, 2: {2}, 4: {4, 5}, 5: {4, 5}, 9: {1, 9, 15},
24         15: {1, 9, 15}})
25    classes, mapping = classify([[1,2,9,15],[2,4,5],[15,5]], sort=False)
26    assert set([frozenset(c) for c in classes]) == set(
27        [frozenset(s) for s in ({1, 9}, {4}, {2}, {5}, {15})])
28    assert mapping == {1: {1, 9}, 2: {2}, 4: {4}, 5: {5}, 9: {1, 9}, 15: {15}}
29