xref: /aosp_15_r20/external/fonttools/Tests/misc/classifyTools_test.py (revision e1fe3e4ad2793916b15cccdc4a7da52a7e1dd0e9)
1*e1fe3e4aSElliott Hughesfrom fontTools.misc.classifyTools import classify
2*e1fe3e4aSElliott Hughes
3*e1fe3e4aSElliott Hughes
4*e1fe3e4aSElliott Hughesdef test_classify():
5*e1fe3e4aSElliott Hughes    assert classify([]) == ([], {})
6*e1fe3e4aSElliott Hughes    assert classify([[]]) == ([], {})
7*e1fe3e4aSElliott Hughes    assert classify([[], []]) == ([], {})
8*e1fe3e4aSElliott Hughes    assert classify([[1]]) == ([{1}], {1: {1}})
9*e1fe3e4aSElliott Hughes    assert classify([[1, 2]]) == ([{1, 2}], {1: {1, 2}, 2: {1, 2}})
10*e1fe3e4aSElliott Hughes    assert classify([[1], [2]]) == ([{1}, {2}], {1: {1}, 2: {2}})
11*e1fe3e4aSElliott Hughes    assert classify([[1, 2], [2]]) == ([{1}, {2}], {1: {1}, 2: {2}})
12*e1fe3e4aSElliott Hughes    assert classify([[1, 2], [2, 4]]) == ([{1}, {2}, {4}], {1: {1}, 2: {2}, 4: {4}})
13*e1fe3e4aSElliott Hughes    assert classify([[1, 2], [2, 4, 5]]) == (
14*e1fe3e4aSElliott Hughes        [{4, 5}, {1}, {2}],
15*e1fe3e4aSElliott Hughes        {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}},
16*e1fe3e4aSElliott Hughes    )
17*e1fe3e4aSElliott Hughes    assert classify([[1, 2], [2, 4, 5]], sort=False) == (
18*e1fe3e4aSElliott Hughes        [{1}, {4, 5}, {2}],
19*e1fe3e4aSElliott Hughes        {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}},
20*e1fe3e4aSElliott Hughes    )
21*e1fe3e4aSElliott Hughes    assert classify([[1, 2, 9], [2, 4, 5]], sort=False) == (
22*e1fe3e4aSElliott Hughes        [{1, 9}, {4, 5}, {2}],
23*e1fe3e4aSElliott Hughes        {1: {1, 9}, 2: {2}, 4: {4, 5}, 5: {4, 5}, 9: {1, 9}},
24*e1fe3e4aSElliott Hughes    )
25*e1fe3e4aSElliott Hughes    assert classify([[1, 2, 9, 15], [2, 4, 5]], sort=False) == (
26*e1fe3e4aSElliott Hughes        [{1, 9, 15}, {4, 5}, {2}],
27*e1fe3e4aSElliott Hughes        {1: {1, 9, 15}, 2: {2}, 4: {4, 5}, 5: {4, 5}, 9: {1, 9, 15}, 15: {1, 9, 15}},
28*e1fe3e4aSElliott Hughes    )
29*e1fe3e4aSElliott Hughes    classes, mapping = classify([[1, 2, 9, 15], [2, 4, 5], [15, 5]], sort=False)
30*e1fe3e4aSElliott Hughes    assert set([frozenset(c) for c in classes]) == set(
31*e1fe3e4aSElliott Hughes        [frozenset(s) for s in ({1, 9}, {4}, {2}, {5}, {15})]
32*e1fe3e4aSElliott Hughes    )
33*e1fe3e4aSElliott Hughes    assert mapping == {1: {1, 9}, 2: {2}, 4: {4}, 5: {5}, 9: {1, 9}, 15: {15}}
34