1from __future__ import print_function, division, absolute_import 2from fontTools.misc.py23 import * 3from fontTools.misc.classifyTools import classify 4 5 6def test_classify(): 7 assert classify([]) == ([], {}) 8 assert classify([[]]) == ([], {}) 9 assert classify([[], []]) == ([], {}) 10 assert classify([[1]]) == ([{1}], {1: {1}}) 11 assert classify([[1,2]]) == ([{1, 2}], {1: {1, 2}, 2: {1, 2}}) 12 assert classify([[1],[2]]) == ([{1}, {2}], {1: {1}, 2: {2}}) 13 assert classify([[1,2],[2]]) == ([{1}, {2}], {1: {1}, 2: {2}}) 14 assert classify([[1,2],[2,4]]) == ( 15 [{1}, {2}, {4}], {1: {1}, 2: {2}, 4: {4}}) 16 assert classify([[1,2],[2,4,5]]) == ( 17 [{4, 5}, {1}, {2}], {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}}) 18 assert classify([[1,2],[2,4,5]], sort=False) == ( 19 [{1}, {4, 5}, {2}], {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}}) 20 assert classify([[1,2,9],[2,4,5]], sort=False) == ( 21 [{1, 9}, {4, 5}, {2}], 22 {1: {1, 9}, 2: {2}, 4: {4, 5}, 5: {4, 5}, 9: {1, 9}}) 23 assert classify([[1,2,9,15],[2,4,5]], sort=False) == ( 24 [{1, 9, 15}, {4, 5}, {2}], 25 {1: {1, 9, 15}, 2: {2}, 4: {4, 5}, 5: {4, 5}, 9: {1, 9, 15}, 26 15: {1, 9, 15}}) 27 classes, mapping = classify([[1,2,9,15],[2,4,5],[15,5]], sort=False) 28 assert set([frozenset(c) for c in classes]) == set( 29 [frozenset(s) for s in ({1, 9}, {4}, {2}, {5}, {15})]) 30 assert mapping == {1: {1, 9}, 2: {2}, 4: {4}, 5: {5}, 9: {1, 9}, 15: {15}} 31