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