[misc.classifyTools] Make classification order stable
Sets don't have a welldefined comparison function, so sort them... Not the most efficient implementation, but good enough. Fixes https://github.com/fonttools/fonttools/issues/927
This commit is contained in:
parent
e8530360bd
commit
f056c124e5
@ -76,7 +76,7 @@ class Classifier(object):
|
||||
self._sets = [s for s in sets if s]
|
||||
|
||||
if self._sort:
|
||||
self._sets = sorted(self._sets, key=lambda s: (-len(s), s))
|
||||
self._sets = sorted(self._sets, key=lambda s: (-len(s), sorted(s)))
|
||||
|
||||
self._dirty = False
|
||||
|
||||
@ -140,7 +140,7 @@ def classify(list_of_sets, sort=True):
|
||||
True
|
||||
>>> classify([[1,2],[2]]) == ([{1}, {2}], {1: {1}, 2: {2}})
|
||||
True
|
||||
>>> classify([[1,2],[2,4]]) == ([{1}, {4}, {2}], {1: {1}, 2: {2}, 4: {4}})
|
||||
>>> classify([[1,2],[2,4]]) == ([{1}, {2}, {4}], {1: {1}, 2: {2}, 4: {4}})
|
||||
True
|
||||
>>> classify([[1,2],[2,4,5]]) == (
|
||||
... [{4, 5}, {1}, {2}], {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}})
|
||||
|
@ -12,7 +12,7 @@ def test_classify():
|
||||
assert classify([[1],[2]]) == ([{1}, {2}], {1: {1}, 2: {2}})
|
||||
assert classify([[1,2],[2]]) == ([{1}, {2}], {1: {1}, 2: {2}})
|
||||
assert classify([[1,2],[2,4]]) == (
|
||||
[{1}, {4}, {2}], {1: {1}, 2: {2}, 4: {4}})
|
||||
[{1}, {2}, {4}], {1: {1}, 2: {2}, 4: {4}})
|
||||
assert classify([[1,2],[2,4,5]]) == (
|
||||
[{4, 5}, {1}, {2}], {1: {1}, 2: {2}, 4: {4, 5}, 5: {4, 5}})
|
||||
assert classify([[1,2],[2,4,5]], sort=False) == (
|
||||
|
@ -41,7 +41,7 @@
|
||||
<ValueFormat1 value="4"/>
|
||||
<ValueFormat2 value="0"/>
|
||||
<ClassDef1 Format="1">
|
||||
<ClassDef glyph="A" class="1"/>
|
||||
<ClassDef glyph="a" class="1"/>
|
||||
</ClassDef1>
|
||||
<ClassDef2 Format="1">
|
||||
<ClassDef glyph="a" class="1"/>
|
||||
@ -53,7 +53,7 @@
|
||||
<Value1 XAdvance="0"/>
|
||||
</Class2Record>
|
||||
<Class2Record index="1">
|
||||
<Value1 XAdvance="10"/>
|
||||
<Value1 XAdvance="-40"/>
|
||||
</Class2Record>
|
||||
</Class1Record>
|
||||
<Class1Record index="1">
|
||||
@ -61,7 +61,7 @@
|
||||
<Value1 XAdvance="0"/>
|
||||
</Class2Record>
|
||||
<Class2Record index="1">
|
||||
<Value1 XAdvance="-40"/>
|
||||
<Value1 XAdvance="10"/>
|
||||
</Class2Record>
|
||||
</Class1Record>
|
||||
</PairPos>
|
||||
|
Loading…
x
Reference in New Issue
Block a user