Changeset 213464 in webkit
- Timestamp:
- Mar 6, 2017, 1:40:31 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 56 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r213462 r213464 1 2017-03-06 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Expand font-weight and font-stretch to take any number 4 https://bugs.webkit.org/show_bug.cgi?id=168889 5 6 Reviewed by Simon Fraser. 7 8 * fast/text/font-selection-font-face-parse-expected.txt: Added. 9 * fast/text/font-selection-font-face-parse.html: Added. 10 * fast/text/font-selection-font-loading-api-parse-expected.txt: Added. 11 * fast/text/font-selection-font-loading-api-parse.html: Added. 12 * fast/text/font-stretch-parse-expected.txt: 13 * fast/text/font-stretch-parse.html: 14 * fast/text/font-style-parse-expected.txt: Copied from LayoutTests/fast/text/font-stretch-parse-expected.txt. 15 * fast/text/font-style-parse.html: Added. 16 * fast/text/font-weight-parse-expected.txt: Copied from LayoutTests/fast/text/font-stretch-parse-expected.txt. 17 * fast/text/font-weight-parse.html: Added. 18 1 19 2017-03-06 Carlos Alberto Lopez Perez <clopez@igalia.com> 2 20 -
trunk/LayoutTests/fast/text/font-stretch-parse-expected.txt
r213267 r213464 20 20 PASS window.getComputedStyle(document.getElementById('test20')).fontStretch is "extra-expanded" 21 21 PASS window.getComputedStyle(document.getElementById('test1')).font is "normal normal normal normal 16px/18px Times" 22 PASS window.getComputedStyle(document.getElementById('test2')).font is " normal normal normal 1%16px/18px Times"23 PASS window.getComputedStyle(document.getElementById('test3')).font is " normal normal normal 2%16px/18px Times"22 PASS window.getComputedStyle(document.getElementById('test2')).font is "16px/18px Times" 23 PASS window.getComputedStyle(document.getElementById('test3')).font is "16px/18px Times" 24 24 PASS window.getComputedStyle(document.getElementById('test4')).font is "normal normal normal ultra-condensed 16px/18px Times" 25 25 PASS window.getComputedStyle(document.getElementById('test5')).font is "normal normal normal extra-condensed 16px/18px Times" … … 33 33 PASS window.getComputedStyle(document.getElementById('test13')).font is "normal normal normal normal 16px/18px Times" 34 34 PASS window.getComputedStyle(document.getElementById('test14')).font is "normal normal normal normal 16px/18px Times" 35 PASS window.getComputedStyle(document.getElementById('test15')).font is " normal normal normal 7%16px/18px Times"35 PASS window.getComputedStyle(document.getElementById('test15')).font is "16px/18px Times" 36 36 PASS window.getComputedStyle(document.getElementById('test16')).font is "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'" 37 37 PASS window.getComputedStyle(document.getElementById('test17')).font is "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'" -
trunk/LayoutTests/fast/text/font-stretch-parse.html
r213267 r213464 50 50 51 51 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test1')).font", "normal normal normal normal 16px/18px Times"); 52 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test2')).font", " normal normal normal 1%16px/18px Times");53 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test3')).font", " normal normal normal 2%16px/18px Times");52 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test2')).font", "16px/18px Times"); 53 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test3')).font", "16px/18px Times"); 54 54 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test4')).font", "normal normal normal ultra-condensed 16px/18px Times"); 55 55 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test5')).font", "normal normal normal extra-condensed 16px/18px Times"); … … 63 63 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test13')).font", "normal normal normal normal 16px/18px Times"); 64 64 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test14')).font", "normal normal normal normal 16px/18px Times"); 65 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test15')).font", " normal normal normal 7%16px/18px Times");65 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test15')).font", "16px/18px Times"); 66 66 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test16')).font", "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'"); 67 67 shouldBeEqualToString("window.getComputedStyle(document.getElementById('test17')).font", "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'"); -
trunk/LayoutTests/fast/text/font-style-parse-expected.txt
r213463 r213464 1 PASS window.getComputedStyle(document.getElementById('test1')).fontSt retchis "normal"2 PASS window.getComputedStyle(document.getElementById('test2')).fontSt retch is "1%"3 PASS window.getComputedStyle(document.getElementById('test3')).fontSt retch is "2%"4 PASS window.getComputedStyle(document.getElementById('test4')).fontSt retch is "ultra-condensed"5 PASS window.getComputedStyle(document.getElementById('test5')).fontSt retch is "extra-condensed"6 PASS window.getComputedStyle(document.getElementById('test6')).fontSt retch is "condensed"7 PASS window.getComputedStyle(document.getElementById('test7')).fontSt retch is "semi-condensed"8 PASS window.getComputedStyle(document.getElementById('test8')).fontSt retch is "normal"9 PASS window.getComputedStyle(document.getElementById('test9')).fontSt retch is "semi-expanded"10 PASS window.getComputedStyle(document.getElementById('test10')).fontSt retch is "expanded"11 PASS window.getComputedStyle(document.getElementById('test11')).fontSt retch is "extra-expanded"12 PASS window.getComputedStyle(document.getElementById('test12')).fontSt retch is "ultra-expanded"13 PASS window.getComputedStyle(document.getElementById('test13')).fontSt retch is "normal"14 PASS window.getComputedStyle(document.getElementById('test14')).fontSt retch is "normal"15 PASS window.getComputedStyle(document.getElementById('test15')).fontSt retch is "7%"16 PASS window.getComputedStyle(document.getElementById('test16')).fontSt retch is "extra-condensed"17 PASS window.getComputedStyle(document.getElementById('test17')).fontSt retch is "extra-condensed"18 PASS window.getComputedStyle(document.getElementById('test18')).fontSt retch is "normal"19 PASS window.getComputedStyle(document.getElementById('test19')).fontSt retch is "normal"20 PASS window.getComputedStyle(document.getElementById('test20')).fontSt retch is "extra-expanded"1 PASS window.getComputedStyle(document.getElementById('test1')).fontStyle is "normal" 2 PASS window.getComputedStyle(document.getElementById('test2')).fontStyle is "1deg" 3 PASS window.getComputedStyle(document.getElementById('test3')).fontStyle is "180deg" 4 PASS window.getComputedStyle(document.getElementById('test4')).fontStyle is "359.75deg" 5 PASS window.getComputedStyle(document.getElementById('test5')).fontStyle is "1440deg" 6 PASS window.getComputedStyle(document.getElementById('test6')).fontStyle is "5deg" 7 PASS window.getComputedStyle(document.getElementById('test7')).fontStyle is "italic" 8 PASS window.getComputedStyle(document.getElementById('test8')).fontStyle is "italic" 9 PASS window.getComputedStyle(document.getElementById('test9')).fontStyle is "italic" 10 PASS window.getComputedStyle(document.getElementById('test10')).fontStyle is "normal" 11 PASS window.getComputedStyle(document.getElementById('test11')).fontStyle is "normal" 12 PASS window.getComputedStyle(document.getElementById('test12')).fontStyle is "normal" 13 PASS window.getComputedStyle(document.getElementById('test13')).fontStyle is "7deg" 14 PASS window.getComputedStyle(document.getElementById('test14')).fontStyle is "1441deg" 15 PASS window.getComputedStyle(document.getElementById('test15')).fontStyle is "italic" 16 PASS window.getComputedStyle(document.getElementById('test16')).fontStyle is "italic" 17 PASS window.getComputedStyle(document.getElementById('test17')).fontStyle is "normal" 18 PASS window.getComputedStyle(document.getElementById('test18')).fontStyle is "italic" 19 PASS window.getComputedStyle(document.getElementById('test19')).fontStyle is "italic" 20 PASS window.getComputedStyle(document.getElementById('test20')).fontStyle is "normal" 21 21 PASS window.getComputedStyle(document.getElementById('test1')).font is "normal normal normal normal 16px/18px Times" 22 PASS window.getComputedStyle(document.getElementById('test2')).font is " normal normal normal 1%16px/18px Times"23 PASS window.getComputedStyle(document.getElementById('test3')).font is " normal normal normal 2%16px/18px Times"24 PASS window.getComputedStyle(document.getElementById('test4')).font is " normal normal normal ultra-condensed16px/18px Times"25 PASS window.getComputedStyle(document.getElementById('test5')).font is " normal normal normal extra-condensed16px/18px Times"26 PASS window.getComputedStyle(document.getElementById('test6')).font is " normal normal normal condensed16px/18px Times"27 PASS window.getComputedStyle(document.getElementById('test7')).font is " normal normal normal semi-condensed16px/18px Times"28 PASS window.getComputedStyle(document.getElementById('test8')).font is " normalnormal normal normal 16px/18px Times"29 PASS window.getComputedStyle(document.getElementById('test9')).font is " normal normal normal semi-expanded16px/18px Times"30 PASS window.getComputedStyle(document.getElementById('test10')).font is "normal normal normal expanded16px/18px Times"31 PASS window.getComputedStyle(document.getElementById('test11')).font is "normal normal normal extra-expanded16px/18px Times"32 PASS window.getComputedStyle(document.getElementById('test12')).font is "normal normal normal ultra-expanded16px/18px Times"33 PASS window.getComputedStyle(document.getElementById('test13')).font is " normal normal normal normal16px/18px Times"34 PASS window.getComputedStyle(document.getElementById('test14')).font is " normal normal normal normal16px/18px Times"35 PASS window.getComputedStyle(document.getElementById('test15')).font is " normal normal normal 7% 16px/18px Times"36 PASS window.getComputedStyle(document.getElementById('test16')).font is " normal normal 100 extra-condensed48px/49px 'Helvetica Neue'"37 PASS window.getComputedStyle(document.getElementById('test17')).font is "normal normal 100 extra-condensed48px/49px 'Helvetica Neue'"38 PASS window.getComputedStyle(document.getElementById('test18')).font is " normal normal 100normal 48px/49px 'Helvetica Neue'"39 PASS window.getComputedStyle(document.getElementById('test19')).font is " normal normal 100 normal48px/49px 'Helvetica Neue'"40 PASS window.getComputedStyle(document.getElementById('test20')).font is " italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'"22 PASS window.getComputedStyle(document.getElementById('test2')).font is "16px/18px Times" 23 PASS window.getComputedStyle(document.getElementById('test3')).font is "16px/18px Times" 24 PASS window.getComputedStyle(document.getElementById('test4')).font is "16px/18px Times" 25 PASS window.getComputedStyle(document.getElementById('test5')).font is "16px/18px Times" 26 PASS window.getComputedStyle(document.getElementById('test6')).font is "16px/18px Times" 27 PASS window.getComputedStyle(document.getElementById('test7')).font is "italic normal normal normal 16px/18px Times" 28 PASS window.getComputedStyle(document.getElementById('test8')).font is "italic normal normal normal 16px/18px Times" 29 PASS window.getComputedStyle(document.getElementById('test9')).font is "italic normal normal normal 16px/18px Times" 30 PASS window.getComputedStyle(document.getElementById('test10')).font is "normal normal normal normal 16px/18px Times" 31 PASS window.getComputedStyle(document.getElementById('test11')).font is "normal normal normal normal 16px/18px Times" 32 PASS window.getComputedStyle(document.getElementById('test12')).font is "normal normal normal normal 16px/18px Times" 33 PASS window.getComputedStyle(document.getElementById('test13')).font is "16px/18px Times" 34 PASS window.getComputedStyle(document.getElementById('test14')).font is "16px/18px Times" 35 PASS window.getComputedStyle(document.getElementById('test15')).font is "italic normal 100 normal 48px/49px 'Helvetica Neue'" 36 PASS window.getComputedStyle(document.getElementById('test16')).font is "italic normal 100 normal 48px/49px 'Helvetica Neue'" 37 PASS window.getComputedStyle(document.getElementById('test17')).font is "normal normal 100 normal 48px/49px 'Helvetica Neue'" 38 PASS window.getComputedStyle(document.getElementById('test18')).font is "italic normal normal normal 48px/49px 'Helvetica Neue'" 39 PASS window.getComputedStyle(document.getElementById('test19')).font is "italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'" 40 PASS window.getComputedStyle(document.getElementById('test20')).font is "normal normal normal normal 16px/18px Times" 41 41 PASS document.getElementById('test1').style.font is "" 42 PASS document.getElementById('test16').style.font is "100 extra-condensed 48px/49px 'Helvetica Neue'" 43 PASS document.getElementById('test17').style.font is "100 extra-condensed 48px/49px 'Helvetica Neue'" 44 PASS document.getElementById('test18').style.font is "100 48px/49px 'Helvetica Neue'" 45 PASS document.getElementById('test19').style.font is "100 48px/49px 'Helvetica Neue'" 46 PASS document.getElementById('test20').style.font is "italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'" 42 PASS document.getElementById('test15').style.font is "italic 100 48px/49px 'Helvetica Neue'" 43 PASS document.getElementById('test16').style.font is "italic 100 48px/49px 'Helvetica Neue'" 44 PASS document.getElementById('test17').style.font is "100 48px/49px 'Helvetica Neue'" 45 PASS document.getElementById('test18').style.font is "italic 48px/49px 'Helvetica Neue'" 46 PASS document.getElementById('test19').style.font is "italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'" 47 PASS document.getElementById('test20').style.font is "" 47 48 PASS successfullyParsed is true 48 49 -
trunk/LayoutTests/fast/text/font-weight-parse-expected.txt
r213463 r213464 1 PASS window.getComputedStyle(document.getElementById('test1')).fontStretch is "normal" 2 PASS window.getComputedStyle(document.getElementById('test2')).fontStretch is "1%" 3 PASS window.getComputedStyle(document.getElementById('test3')).fontStretch is "2%" 4 PASS window.getComputedStyle(document.getElementById('test4')).fontStretch is "ultra-condensed" 5 PASS window.getComputedStyle(document.getElementById('test5')).fontStretch is "extra-condensed" 6 PASS window.getComputedStyle(document.getElementById('test6')).fontStretch is "condensed" 7 PASS window.getComputedStyle(document.getElementById('test7')).fontStretch is "semi-condensed" 8 PASS window.getComputedStyle(document.getElementById('test8')).fontStretch is "normal" 9 PASS window.getComputedStyle(document.getElementById('test9')).fontStretch is "semi-expanded" 10 PASS window.getComputedStyle(document.getElementById('test10')).fontStretch is "expanded" 11 PASS window.getComputedStyle(document.getElementById('test11')).fontStretch is "extra-expanded" 12 PASS window.getComputedStyle(document.getElementById('test12')).fontStretch is "ultra-expanded" 13 PASS window.getComputedStyle(document.getElementById('test13')).fontStretch is "normal" 14 PASS window.getComputedStyle(document.getElementById('test14')).fontStretch is "normal" 15 PASS window.getComputedStyle(document.getElementById('test15')).fontStretch is "7%" 16 PASS window.getComputedStyle(document.getElementById('test16')).fontStretch is "extra-condensed" 17 PASS window.getComputedStyle(document.getElementById('test17')).fontStretch is "extra-condensed" 18 PASS window.getComputedStyle(document.getElementById('test18')).fontStretch is "normal" 19 PASS window.getComputedStyle(document.getElementById('test19')).fontStretch is "normal" 20 PASS window.getComputedStyle(document.getElementById('test20')).fontStretch is "extra-expanded" 1 PASS window.getComputedStyle(document.getElementById('test1')).fontWeight is "normal" 2 PASS window.getComputedStyle(document.getElementById('test2')).fontWeight is "1" 3 PASS window.getComputedStyle(document.getElementById('test3')).fontWeight is "100" 4 PASS window.getComputedStyle(document.getElementById('test4')).fontWeight is "200" 5 PASS window.getComputedStyle(document.getElementById('test5')).fontWeight is "300" 6 PASS window.getComputedStyle(document.getElementById('test6')).fontWeight is "normal" 7 PASS window.getComputedStyle(document.getElementById('test7')).fontWeight is "normal" 8 PASS window.getComputedStyle(document.getElementById('test8')).fontWeight is "500" 9 PASS window.getComputedStyle(document.getElementById('test9')).fontWeight is "600" 10 PASS window.getComputedStyle(document.getElementById('test10')).fontWeight is "bold" 11 PASS window.getComputedStyle(document.getElementById('test11')).fontWeight is "bold" 12 PASS window.getComputedStyle(document.getElementById('test12')).fontWeight is "800" 13 PASS window.getComputedStyle(document.getElementById('test13')).fontWeight is "900" 14 PASS window.getComputedStyle(document.getElementById('test14')).fontWeight is "normal" 15 PASS window.getComputedStyle(document.getElementById('test15')).fontWeight is "normal" 16 PASS window.getComputedStyle(document.getElementById('test16')).fontWeight is "7" 17 PASS window.getComputedStyle(document.getElementById('test17')).fontWeight is "300" 18 PASS window.getComputedStyle(document.getElementById('test18')).fontWeight is "200" 19 PASS window.getComputedStyle(document.getElementById('test19')).fontWeight is "100" 20 PASS window.getComputedStyle(document.getElementById('test20')).fontWeight is "100" 21 PASS window.getComputedStyle(document.getElementById('test21')).fontWeight is "normal" 22 PASS window.getComputedStyle(document.getElementById('test22')).fontWeight is "100" 23 PASS window.getComputedStyle(document.getElementById('test23')).fontWeight is "100" 24 PASS window.getComputedStyle(document.getElementById('test24')).fontWeight is "normal" 21 25 PASS window.getComputedStyle(document.getElementById('test1')).font is "normal normal normal normal 16px/18px Times" 22 PASS window.getComputedStyle(document.getElementById('test2')).font is " normal normal normal 1%16px/18px Times"23 PASS window.getComputedStyle(document.getElementById('test3')).font is "normal normal normal 2%16px/18px Times"24 PASS window.getComputedStyle(document.getElementById('test4')).font is "normal normal normal ultra-condensed16px/18px Times"25 PASS window.getComputedStyle(document.getElementById('test5')).font is "normal normal normal extra-condensed16px/18px Times"26 PASS window.getComputedStyle(document.getElementById('test6')).font is "normal normal normal condensed16px/18px Times"27 PASS window.getComputedStyle(document.getElementById('test7')).font is "normal normal normal semi-condensed16px/18px Times"28 PASS window.getComputedStyle(document.getElementById('test8')).font is "normal normal normalnormal 16px/18px Times"29 PASS window.getComputedStyle(document.getElementById('test9')).font is "normal normal normal semi-expanded16px/18px Times"30 PASS window.getComputedStyle(document.getElementById('test10')).font is "normal normal normal expanded16px/18px Times"31 PASS window.getComputedStyle(document.getElementById('test11')).font is "normal normal normal extra-expanded16px/18px Times"32 PASS window.getComputedStyle(document.getElementById('test12')).font is "normal normal normal ultra-expanded16px/18px Times"33 PASS window.getComputedStyle(document.getElementById('test13')).font is "normal normal normalnormal 16px/18px Times"26 PASS window.getComputedStyle(document.getElementById('test2')).font is "16px/18px Times" 27 PASS window.getComputedStyle(document.getElementById('test3')).font is "normal normal 100 normal 16px/18px Times" 28 PASS window.getComputedStyle(document.getElementById('test4')).font is "normal normal 200 normal 16px/18px Times" 29 PASS window.getComputedStyle(document.getElementById('test5')).font is "normal normal 300 normal 16px/18px Times" 30 PASS window.getComputedStyle(document.getElementById('test6')).font is "normal normal normal normal 16px/18px Times" 31 PASS window.getComputedStyle(document.getElementById('test7')).font is "normal normal normal normal 16px/18px Times" 32 PASS window.getComputedStyle(document.getElementById('test8')).font is "normal normal 500 normal 16px/18px Times" 33 PASS window.getComputedStyle(document.getElementById('test9')).font is "normal normal 600 normal 16px/18px Times" 34 PASS window.getComputedStyle(document.getElementById('test10')).font is "normal normal bold normal 16px/18px Times" 35 PASS window.getComputedStyle(document.getElementById('test11')).font is "normal normal bold normal 16px/18px Times" 36 PASS window.getComputedStyle(document.getElementById('test12')).font is "normal normal 800 normal 16px/18px Times" 37 PASS window.getComputedStyle(document.getElementById('test13')).font is "normal normal 900 normal 16px/18px Times" 34 38 PASS window.getComputedStyle(document.getElementById('test14')).font is "normal normal normal normal 16px/18px Times" 35 PASS window.getComputedStyle(document.getElementById('test15')).font is "normal normal normal 7% 16px/18px Times" 36 PASS window.getComputedStyle(document.getElementById('test16')).font is "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'" 37 PASS window.getComputedStyle(document.getElementById('test17')).font is "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'" 38 PASS window.getComputedStyle(document.getElementById('test18')).font is "normal normal 100 normal 48px/49px 'Helvetica Neue'" 39 PASS window.getComputedStyle(document.getElementById('test19')).font is "normal normal 100 normal 48px/49px 'Helvetica Neue'" 40 PASS window.getComputedStyle(document.getElementById('test20')).font is "italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'" 39 PASS window.getComputedStyle(document.getElementById('test15')).font is "normal normal normal normal 16px/18px Times" 40 PASS window.getComputedStyle(document.getElementById('test16')).font is "16px/18px Times" 41 PASS window.getComputedStyle(document.getElementById('test17')).font is "normal normal 300 normal 16px/18px Times" 42 PASS window.getComputedStyle(document.getElementById('test18')).font is "normal normal 200 normal 16px/18px Times" 43 PASS window.getComputedStyle(document.getElementById('test19')).font is "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'" 44 PASS window.getComputedStyle(document.getElementById('test20')).font is "normal normal 100 extra-condensed 48px/49px 'Helvetica Neue'" 45 PASS window.getComputedStyle(document.getElementById('test21')).font is "normal normal normal extra-condensed 48px/49px 'Helvetica Neue'" 46 PASS window.getComputedStyle(document.getElementById('test22')).font is "normal normal 100 normal 48px/49px 'Helvetica Neue'" 47 PASS window.getComputedStyle(document.getElementById('test23')).font is "italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'" 48 PASS window.getComputedStyle(document.getElementById('test24')).font is "italic small-caps normal extra-expanded 48px/49px 'Helvetica Neue'" 41 49 PASS document.getElementById('test1').style.font is "" 42 PASS document.getElementById('test16').style.font is "100 extra-condensed 48px/49px 'Helvetica Neue'" 43 PASS document.getElementById('test17').style.font is "100 extra-condensed 48px/49px 'Helvetica Neue'" 44 PASS document.getElementById('test18').style.font is "100 48px/49px 'Helvetica Neue'" 45 PASS document.getElementById('test19').style.font is "100 48px/49px 'Helvetica Neue'" 46 PASS document.getElementById('test20').style.font is "italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'" 50 PASS document.getElementById('test19').style.font is "100 extra-condensed 48px/49px 'Helvetica Neue'" 51 PASS document.getElementById('test20').style.font is "100 extra-condensed 48px/49px 'Helvetica Neue'" 52 PASS document.getElementById('test21').style.font is "extra-condensed 48px/49px 'Helvetica Neue'" 53 PASS document.getElementById('test22').style.font is "100 48px/49px 'Helvetica Neue'" 54 PASS document.getElementById('test23').style.font is "italic small-caps 100 extra-expanded 48px/49px 'Helvetica Neue'" 55 PASS document.getElementById('test24').style.font is "italic small-caps extra-expanded 48px/49px 'Helvetica Neue'" 47 56 PASS successfullyParsed is true 48 57 -
trunk/Source/WebCore/ChangeLog
r213460 r213464 1 2017-03-06 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Expand font-weight and font-stretch to take any number 4 https://bugs.webkit.org/show_bug.cgi?id=168889 5 6 Reviewed by Simon Fraser. 7 8 This patch expands parsing support for font-weight and font-stretch so that they can accept 9 numbers in addition to the keyword values they accepted previously. Eventually, these numbers 10 will be used as inputs to select variation fonts; however, in this patch, the values are just 11 parsed and held in our internal data model. This means that this patch doesn't actually change 12 the general behavior of WebKit; instead, it parses new values, outputs them (via 13 getComputedStyle() and similar functions), and provides them as input to our preexisting font 14 selection algorithm. 15 16 This patch doesn't actually modify anything algorithmically, and therefore, it doesn't include 17 any additional tests for the font selection algorithm. Instead, it tests the parsing of the 18 newly accepted values (both input and output). 19 20 Because our internal data model needs to hold numbers now, this patch also completely eliminates 21 the FontWidth, FontItalic, and FontTraitsMask enum values in favor of FontSelectionValues (which 22 can hold numbers instead of individual enum values). Therefore, every place which we were using 23 these enum values is migrated in this patch to using FontSelectionValues instead. 24 25 Tests: fast/text/font-selection-font-face-parse.html 26 fast/text/font-selection-font-loading-api-parse.html 27 fast/text/font-style-parse.html 28 fast/text/font-weight-parse.html 29 30 * accessibility/AccessibilityRenderObject.cpp: Migrate off of old enum types. 31 (WebCore::AccessibilityRenderObject::hasBoldFont): 32 (WebCore::AccessibilityRenderObject::hasItalicFont): 33 (WebCore::AccessibilityRenderObject::hasPlainText): 34 * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Ditto. 35 (getAttributeSetForAccessibilityObject): 36 * css/CSSComputedStyleDeclaration.cpp: Output newly parsed values. 37 (WebCore::fontWeightFromStyle): 38 (WebCore::fontStretchFromStyle): 39 (WebCore::fontStyleFromStyle): 40 (WebCore::fontShorthandValueForSelectionProperties): 41 (WebCore::ComputedStyleExtractor::propertyValue): 42 * css/CSSFontFace.cpp: Migrate off old enum types. 43 (WebCore::calculateWeightRange): 44 (WebCore::CSSFontFace::setWeight): 45 (WebCore::calculateStretchRange): 46 (WebCore::CSSFontFace::setStretch): 47 (WebCore::calculateStyleRange): 48 (WebCore::CSSFontFace::setStyle): 49 (WebCore::CSSFontFace::calculateStyleMask): Deleted. 50 (WebCore::CSSFontFace::calculateWeightMask): Deleted. 51 (WebCore::CSSFontFace::calculateStretch): Deleted. 52 * css/CSSFontFace.h: 53 * css/CSSFontFaceSet.cpp: Migrate off old enum types. 54 (WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered): 55 (WebCore::calculateWeightValue): 56 (WebCore::calculateStretchValue): 57 (WebCore::calculateStyleValue): 58 (WebCore::computeFontSelectionRequest): 59 (WebCore::CSSFontFaceSet::matchingFaces): 60 (WebCore::CSSFontFaceSet::fontFace): 61 (WebCore::computeFontTraitsMask): Deleted. 62 (WebCore::computeFontStretch): Deleted. 63 * css/CSSFontFaceSet.h: 64 * css/CSSFontSelector.cpp: Migrate off old enum types. 65 (WebCore::CSSFontSelector::fontRangesForFamily): 66 * css/CSSPrimitiveValueMappings.h: font-weight and font-style are no longer 67 keyword properties. 68 (WebCore::CSSPrimitiveValue::operator FontWeight): Deleted. 69 (WebCore::CSSPrimitiveValue::operator FontItalic): Deleted. 70 * css/CSSProperties.json: Use the same infrastructure for all three of the 71 font selection properties. 72 * css/CSSSegmentedFontFace.cpp: Migrate off old enum types. 73 (WebCore::CSSSegmentedFontFace::fontRanges): 74 * css/CSSValueKeywords.in: The 100-based font-weight values are now represented 75 as real numbers. 76 * css/FontFace.cpp: Update the string output functions for the new values. 77 (WebCore::rangeIsSingleValue): 78 (WebCore::FontFace::style): 79 (WebCore::FontFace::weight): 80 (WebCore::FontFace::stretch): 81 * css/StyleBuilderConverter.h: Use CSSValue conversion functions to convert 82 to our new data model. 83 (WebCore::StyleBuilderConverter::convertFontWeight): 84 (WebCore::StyleBuilderConverter::convertFontStretch): 85 (WebCore::StyleBuilderConverter::convertFontStyle): 86 * css/StyleBuilderCustom.h: font-weight is no longer a completely custom 87 property. 88 (WebCore::StyleBuilderCustom::applyInitialFontWeight): Deleted. 89 (WebCore::StyleBuilderCustom::applyInheritFontWeight): Deleted. 90 (WebCore::StyleBuilderCustom::applyValueFontWeight): Deleted. 91 * css/parser/CSSParserFastPaths.cpp: font-style is no longer a keyword property. 92 (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue): 93 (WebCore::CSSParserFastPaths::isKeywordPropertyID): 94 * css/parser/CSSPropertyParser.cpp: Parse the new values in the font selection 95 properties. 96 (WebCore::consumeFontWeightKeywordValue): 97 (WebCore::consumeFontWeightCSS21): 98 (WebCore::consumeFontWeight): 99 (WebCore::consumeFontStyleKeywordValue): 100 (WebCore::consumeFontStyle): 101 (WebCore::CSSPropertyParser::parseSingleValue): 102 (WebCore::CSSPropertyParser::parseFontFaceDescriptor): 103 (WebCore::CSSPropertyParser::consumeSystemFont): 104 (WebCore::CSSPropertyParser::consumeFont): 105 * editing/EditingStyle.cpp: Migrate off old enum types. 106 (WebCore::fontWeightIsBold): 107 * editing/mac/EditorMac.mm: Ditto. 108 (WebCore::Editor::applyFontStyles): 109 * platform/graphics/FontCache.h: Unify our font selection values into 110 their enclosing struct, FontSelectionCapabilities. Also, clean up utility 111 functions. 112 * platform/graphics/FontCascade.cpp: Migrate off old enum types. 113 (WebCore::FontCascade::FontCascade): 114 * platform/graphics/FontCascade.h: Ditto. 115 (WebCore::FontCascade::italic): 116 (WebCore::FontCascade::weight): 117 * platform/graphics/FontDescription.cpp: Ditto. 118 (WebCore::FontDescription::FontDescription): 119 (WebCore::FontCascadeDescription::lighterWeight): 120 (WebCore::FontCascadeDescription::bolderWeight): 121 (WebCore::FontDescription::traitsMask): Deleted. 122 * platform/graphics/FontDescription.h: Migrate off old enum types. 123 (WebCore::FontDescription::italic): 124 (WebCore::FontDescription::stretch): 125 (WebCore::FontDescription::weight): 126 (WebCore::FontDescription::fontSelectionRequest): 127 (WebCore::FontDescription::computedPixelSize): 128 (WebCore::FontDescription::setItalic): 129 (WebCore::FontDescription::setStretch): 130 (WebCore::FontDescription::setIsItalic): 131 (WebCore::FontDescription::setWeight): 132 (WebCore::FontDescription::operator==): 133 (WebCore::FontCascadeDescription::lighterWeight): 134 (WebCore::FontCascadeDescription::bolderWeight): 135 (WebCore::FontCascadeDescription::initialItalic): 136 (WebCore::FontCascadeDescription::initialWeight): 137 (WebCore::FontCascadeDescription::initialStretch): 138 * platform/graphics/FontSelectionAlgorithm.cpp: Delete code which was only 139 present to convert from the old enum types to the new FontSelectionRequest 140 type. 141 (WebCore::fontSelectionRequestForTraitsMask): Deleted. 142 (WebCore::initialFontSelectionCapabilitiesForTraitsMask): Deleted. 143 (WebCore::fontSelectionCapabilitiesForTraitsMask): Deleted. 144 * platform/graphics/FontSelectionAlgorithm.h: Migrate to new named functions 145 for special values. 146 (WebCore::isItalic): 147 (WebCore::boldWeightValue): 148 (WebCore::normalWeightValue): 149 (WebCore::isFontWeightBold): 150 (WebCore::normalStretchValue): 151 (WebCore::FontSelectionRequest::FontSelectionRequest): 152 * platform/graphics/cocoa/FontCacheCoreText.cpp: Migrate all platforms which 153 compile this file to know about FontDatabase. This simplifies the interaction 154 between @font-face fonts and installed fonts. Also, migrate off old enum types. 155 (WebCore::stretchFromCoreTextTraits): 156 (WebCore::fontWeightFromCoreText): 157 (WebCore::capabilitiesForFontDescriptor): 158 (WebCore::FontCache::getFontSelectionCapabilitiesInFamily): 159 (WebCore::platformFontLookupWithFamily): 160 (WebCore::invalidateFontCache): 161 (WebCore::fontWithFamily): 162 (WebCore::FontCache::createFontPlatformData): 163 (WebCore::lookupFallbackFont): 164 (WebCore::toTraitsMask): Deleted. 165 (WebCore::isFontWeightBold): Deleted. 166 (WebCore::toCoreTextFontWeight): Deleted. 167 (): Deleted. 168 (WebCore::FontDatabase::capabilitiesForFontDescriptor): Deleted. 169 (WebCore::calculateFontSelectionRequest): Deleted. 170 * platform/graphics/freetype/FontCacheFreeType.cpp: Migrate off old enum types. 171 (WebCore::FontCache::getFontSelectionCapabilitiesInFamily): 172 (WebCore::fontWeightToFontconfigWeight): 173 (): Deleted. 174 * platform/graphics/freetype/FontPlatformDataFreeType.cpp: Ditto. 175 (WebCore::FontPlatformData::FontPlatformData): 176 * platform/graphics/ios/FontCacheIOS.mm: Ditto. 177 (WebCore::baseSystemFontDescriptor): 178 (WebCore::systemFontModificationAttributes): 179 (WebCore::systemFontDescriptor): 180 (WebCore::platformFontWithFamilySpecialCase): 181 (WebCore::FontCache::weightOfCTFont): Deleted. 182 * platform/graphics/mac/FontCacheMac.mm: Ditto. 183 (WebCore::toNSFontWeight): 184 (WebCore::platformFontWithFamilySpecialCase): 185 * platform/graphics/win/FontCacheWin.cpp: Ditto. 186 (WebCore::toGDIFontWeight): 187 (WebCore::traitsInFamilyEnumProc): 188 (WebCore::FontCache::getFontSelectionCapabilitiesInFamily): 189 (): Deleted. 190 * platform/mock/MockRealtimeVideoSource.cpp: Ditto. 191 (WebCore::MockRealtimeVideoSource::applySize): 192 * platform/text/TextFlags.h: Delete old enum types. 193 * platform/win/DragImageWin.cpp: Migrate off old enum types. 194 (WebCore::dragLabelFont): 195 * rendering/RenderEmbeddedObject.cpp: Ditto. 196 (WebCore::RenderEmbeddedObject::getReplacementTextGeometry): 197 * rendering/RenderThemeGtk.cpp: Ditto. 198 (WebCore::RenderThemeGtk::updateCachedSystemFontDescription): 199 * rendering/RenderThemeIOS.mm: Ditto. 200 (WebCore::RenderThemeIOS::updateCachedSystemFontDescription): 201 * rendering/RenderThemeMac.mm: Ditto. 202 (WebCore::toFontWeight): 203 * rendering/RenderThemeWin.cpp: Ditto. 204 (WebCore::fillFontDescription): 205 1 206 2017-03-06 Chris Dumez <cdumez@apple.com> 2 207 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r213455 r213464 13874 13874 C2AB0AF41E6B3C6C001348C5 /* FontSelectionAlgorithm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontSelectionAlgorithm.cpp; sourceTree = "<group>"; }; 13875 13875 C2AB0AF51E6B3C6C001348C5 /* FontSelectionAlgorithm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontSelectionAlgorithm.h; sourceTree = "<group>"; }; 13876 C2AB0B021E6DE32B001348C5 /* FontSelectionKeywordValues.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FontSelectionKeywordValues.h; sourceTree = "<group>"; }; 13877 C2AB0B031E6DE92C001348C5 /* FontSelectionValueInlines.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FontSelectionValueInlines.h; sourceTree = "<group>"; }; 13876 13878 C2F4E7881E45AEDF006D7105 /* ComplexTextController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComplexTextController.cpp; sourceTree = "<group>"; }; 13877 13879 C2F4E7891E45AEDF006D7105 /* ComplexTextController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComplexTextController.h; sourceTree = "<group>"; }; … … 22372 22374 C2AB0AF41E6B3C6C001348C5 /* FontSelectionAlgorithm.cpp */, 22373 22375 C2AB0AF51E6B3C6C001348C5 /* FontSelectionAlgorithm.h */, 22376 C2AB0B021E6DE32B001348C5 /* FontSelectionKeywordValues.h */, 22374 22377 ); 22375 22378 path = graphics; … … 24218 24221 3F2B33E3165ABD3500E3987C /* WebKitCSSViewportRule.idl */, 24219 24222 31055BB81E4FE18900EB604E /* WebKitFontFamilyNames.in */, 24223 C2AB0B031E6DE92C001348C5 /* FontSelectionValueInlines.h */, 24220 24224 ); 24221 24225 path = css; -
trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
r213455 r213464 3501 3501 return false; 3502 3502 3503 return m_renderer->style().fontDescription().weight() >= FontWeightBold;3503 return isFontWeightBold(m_renderer->style().fontDescription().weight()); 3504 3504 } 3505 3505 … … 3509 3509 return false; 3510 3510 3511 return m_renderer->style().fontDescription().italic() == FontItalicOn;3511 return isItalic(m_renderer->style().fontDescription().italic()); 3512 3512 } 3513 3513 … … 3519 3519 const RenderStyle& style = m_renderer->style(); 3520 3520 3521 return style.fontDescription().weight() == FontWeightNormal3522 && style.fontDescription().italic() == FontItalicOff3521 return style.fontDescription().weight() == normalWeightValue() 3522 && style.fontDescription().italic() == normalItalicValue() 3523 3523 && style.textDecorationsInEffect() == TextDecorationNone; 3524 3524 } -
trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp
r213355 r213464 137 137 result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_FAMILY_NAME), fontFamilyName.utf8().data()); 138 138 139 int fontWeight = -1; 140 switch (style->fontCascade().weight()) { 141 case FontWeight100: 142 fontWeight = 100; 143 break; 144 case FontWeight200: 145 fontWeight = 200; 146 break; 147 case FontWeight300: 148 fontWeight = 300; 149 break; 150 case FontWeight400: 151 fontWeight = 400; 152 break; 153 case FontWeight500: 154 fontWeight = 500; 155 break; 156 case FontWeight600: 157 fontWeight = 600; 158 break; 159 case FontWeight700: 160 fontWeight = 700; 161 break; 162 case FontWeight800: 163 fontWeight = 800; 164 break; 165 case FontWeight900: 166 fontWeight = 900; 167 } 139 int fontWeight = static_cast<float>(style->fontCascade().weight()); 168 140 if (fontWeight > 0) { 169 141 buffer.reset(g_strdup_printf("%i", fontWeight)); -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r213341 r213464 57 57 #include "Document.h" 58 58 #include "ExceptionCode.h" 59 #include "FontSelectionValueInlines.h" 59 60 #include "FontTaggedSettings.h" 60 61 #include "HTMLFrameOwnerElement.h" … … 1913 1914 } 1914 1915 1916 static Ref<CSSPrimitiveValue> fontWeightFromStyle(const RenderStyle& style) 1917 { 1918 auto weight = style.fontDescription().weight(); 1919 if (auto value = fontWeightKeyword(weight)) 1920 return CSSValuePool::singleton().createIdentifierValue(value.value()); 1921 return CSSValuePool::singleton().createValue(static_cast<float>(weight), CSSPrimitiveValue::CSS_NUMBER); 1922 } 1923 1924 static Ref<CSSPrimitiveValue> fontStretchFromStyle(const RenderStyle& style) 1925 { 1926 auto stretch = style.fontDescription().stretch(); 1927 if (auto keyword = fontStretchKeyword(stretch)) 1928 return CSSValuePool::singleton().createIdentifierValue(keyword.value()); 1929 return CSSValuePool::singleton().createValue(static_cast<float>(stretch), CSSPrimitiveValue::CSS_PERCENTAGE); 1930 } 1931 1915 1932 static Ref<CSSPrimitiveValue> fontStyleFromStyle(const RenderStyle& style) 1916 1933 { 1917 if (style.fontDescription().italic()) 1918 return CSSValuePool::singleton().createIdentifierValue(CSSValueItalic); 1919 return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 1920 } 1921 1922 static Ref<CSSPrimitiveValue> fontStretchFromStyle(const RenderStyle& style) 1923 { 1924 auto stretch = style.fontDescription().stretch(); 1925 if (stretch == FontSelectionValue(50)) 1926 return CSSValuePool::singleton().createIdentifierValue(CSSValueUltraCondensed); 1927 if (stretch == FontSelectionValue(62.5f)) 1928 return CSSValuePool::singleton().createIdentifierValue(CSSValueExtraCondensed); 1929 if (stretch == FontSelectionValue(75)) 1930 return CSSValuePool::singleton().createIdentifierValue(CSSValueCondensed); 1931 if (stretch == FontSelectionValue(87.5f)) 1932 return CSSValuePool::singleton().createIdentifierValue(CSSValueSemiCondensed); 1933 if (stretch == FontSelectionValue(100)) 1934 return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 1935 if (stretch == FontSelectionValue(112.5f)) 1936 return CSSValuePool::singleton().createIdentifierValue(CSSValueSemiExpanded); 1937 if (stretch == FontSelectionValue(125)) 1938 return CSSValuePool::singleton().createIdentifierValue(CSSValueExpanded); 1939 if (stretch == FontSelectionValue(150)) 1940 return CSSValuePool::singleton().createIdentifierValue(CSSValueExtraExpanded); 1941 if (stretch == FontSelectionValue(200)) 1942 return CSSValuePool::singleton().createIdentifierValue(CSSValueUltraExpanded); 1943 return CSSValuePool::singleton().createValue(static_cast<float>(stretch), CSSPrimitiveValue::CSS_PERCENTAGE); 1934 auto italic = style.fontDescription().italic(); 1935 if (auto italicValue = fontStyleKeyword(italic)) 1936 return CSSValuePool::singleton().createIdentifierValue(italicValue.value()); 1937 return CSSValuePool::singleton().createValue(static_cast<float>(italic), CSSPrimitiveValue::CSS_DEG); 1944 1938 } 1945 1939 … … 2129 2123 2130 2124 return WTFMove(list); 2131 }2132 2133 static Ref<CSSPrimitiveValue> fontWeightFromStyle(const RenderStyle& style)2134 {2135 switch (style.fontDescription().weight()) {2136 case FontWeight100:2137 return CSSValuePool::singleton().createIdentifierValue(CSSValue100);2138 case FontWeight200:2139 return CSSValuePool::singleton().createIdentifierValue(CSSValue200);2140 case FontWeight300:2141 return CSSValuePool::singleton().createIdentifierValue(CSSValue300);2142 case FontWeightNormal:2143 return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal);2144 case FontWeight500:2145 return CSSValuePool::singleton().createIdentifierValue(CSSValue500);2146 case FontWeight600:2147 return CSSValuePool::singleton().createIdentifierValue(CSSValue600);2148 case FontWeightBold:2149 return CSSValuePool::singleton().createIdentifierValue(CSSValueBold);2150 case FontWeight800:2151 return CSSValuePool::singleton().createIdentifierValue(CSSValue800);2152 case FontWeight900:2153 return CSSValuePool::singleton().createIdentifierValue(CSSValue900);2154 }2155 ASSERT_NOT_REACHED();2156 return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal);2157 2125 } 2158 2126 … … 2555 2523 RefPtr<CSSValue> propertyValue = customPropertyValue(propertyName); 2556 2524 return propertyValue ? propertyValue->cssText() : emptyString(); 2525 } 2526 2527 static Ref<CSSFontValue> fontShorthandValueForSelectionProperties(const FontDescription& fontDescription) 2528 { 2529 auto computedFont = CSSFontValue::create(); 2530 2531 auto variantCaps = fontDescription.variantCaps(); 2532 if (variantCaps == FontVariantCaps::Small) 2533 computedFont->variant = CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps); 2534 else if (variantCaps == FontVariantCaps::Normal) 2535 computedFont->variant = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 2536 else 2537 return CSSFontValue::create(); 2538 2539 auto weight = fontDescription.weight(); 2540 if (auto value = fontWeightKeyword(weight)) 2541 computedFont->weight = CSSValuePool::singleton().createIdentifierValue(value.value()); 2542 else if (isCSS21Weight(weight)) 2543 computedFont->weight = CSSValuePool::singleton().createValue(static_cast<float>(weight), CSSPrimitiveValue::CSS_NUMBER); 2544 else 2545 return CSSFontValue::create(); 2546 2547 if (auto keyword = fontStretchKeyword(fontDescription.stretch())) 2548 computedFont->stretch = CSSValuePool::singleton().createIdentifierValue(keyword.value()); 2549 else 2550 return CSSFontValue::create(); 2551 2552 if (auto italic = fontStyleKeyword(fontDescription.italic())) 2553 computedFont->style = CSSValuePool::singleton().createIdentifierValue(italic.value()); 2554 else 2555 return CSSFontValue::create(); 2556 2557 return computedFont; 2557 2558 } 2558 2559 … … 2907 2908 return cssValuePool.createValue(style->floating()); 2908 2909 case CSSPropertyFont: { 2909 auto computedFont = CSSFontValue::create(); 2910 computedFont->style = fontStyleFromStyle(*style); 2911 if (style->fontDescription().variantCaps() == FontVariantCaps::Small) 2912 computedFont->variant = CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps); 2913 else 2914 computedFont->variant = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal); 2915 computedFont->weight = fontWeightFromStyle(*style); 2916 computedFont->stretch = fontStretchFromStyle(*style); 2910 auto computedFont = fontShorthandValueForSelectionProperties(style->fontDescription()); 2917 2911 computedFont->size = fontSizeFromStyle(*style); 2918 2912 computedFont->lineHeight = lineHeightFromStyle(*style); -
trunk/Source/WebCore/css/CSSFontFace.cpp
r213436 r213464 125 125 } 126 126 127 std::optional<FontTraitsMask> CSSFontFace::calculateStyleMask(CSSValue& style) 128 { 129 if (!is<CSSPrimitiveValue>(style)) 130 return std::nullopt; 131 132 switch (downcast<CSSPrimitiveValue>(style).valueID()) { 133 case CSSValueNormal: 134 return FontStyleNormalMask; 135 case CSSValueItalic: 136 case CSSValueOblique: 137 return FontStyleItalicMask; 138 default: 139 return FontStyleNormalMask; 140 } 141 142 return FontStyleNormalMask; 143 } 144 145 bool CSSFontFace::setStyle(CSSValue& style) 146 { 147 if (auto mask = calculateStyleMask(style)) { 148 m_traitsMask = static_cast<FontTraitsMask>((static_cast<unsigned>(m_traitsMask) & (~FontStyleMask)) | mask.value()); 149 150 if (m_cssConnection) 151 m_cssConnection->mutableProperties().setProperty(CSSPropertyFontStyle, &style); 152 153 iterateClients(m_clients, [&](Client& client) { 154 client.fontPropertyChanged(*this); 155 }); 156 157 return true; 158 } 159 return false; 160 } 161 162 std::optional<FontTraitsMask> CSSFontFace::calculateWeightMask(CSSValue& weight) 163 { 164 if (!is<CSSPrimitiveValue>(weight)) 165 return std::nullopt; 166 167 switch (downcast<CSSPrimitiveValue>(weight).valueID()) { 168 case CSSValueBold: 169 case CSSValueBolder: 170 case CSSValue700: 171 return FontWeight700Mask; 172 case CSSValueNormal: 173 case CSSValue400: 174 return FontWeight400Mask; 175 case CSSValue900: 176 return FontWeight900Mask; 177 case CSSValue800: 178 return FontWeight800Mask; 179 case CSSValue600: 180 return FontWeight600Mask; 181 case CSSValue500: 182 return FontWeight500Mask; 183 case CSSValue300: 184 return FontWeight300Mask; 185 case CSSValueLighter: 186 case CSSValue200: 187 return FontWeight200Mask; 188 case CSSValue100: 189 return FontWeight100Mask; 190 default: 191 return FontWeight400Mask; 192 } 193 194 return FontWeight400Mask; 195 } 196 197 std::optional<FontSelectionValue> CSSFontFace::calculateStretch(CSSValue& stretch) 198 { 199 if (!is<CSSPrimitiveValue>(stretch)) 200 return std::nullopt; 201 202 const auto& primitiveValue = downcast<CSSPrimitiveValue>(stretch); 127 static FontSelectionRange calculateWeightRange(CSSValue& value) 128 { 129 // FIXME: Parse range-based values. 130 ASSERT(is<CSSPrimitiveValue>(value)); 131 auto& primitiveValue = downcast<CSSPrimitiveValue>(value); 132 133 FontSelectionValue result; 134 if (primitiveValue.isNumber()) { 135 result = FontSelectionValue::clampFloat(primitiveValue.floatValue()); 136 return { result, result }; 137 } 138 139 ASSERT(primitiveValue.isValueID()); 140 if (auto value = fontWeightValue(primitiveValue.valueID())) 141 result = value.value(); 142 else { 143 ASSERT_NOT_REACHED(); 144 result = normalWeightValue(); 145 } 146 147 return { result, result }; 148 } 149 150 void CSSFontFace::setWeight(CSSValue& weight) 151 { 152 auto range = calculateWeightRange(weight); 153 setWeight(range); 154 155 if (m_cssConnection) 156 m_cssConnection->mutableProperties().setProperty(CSSPropertyFontWeight, &weight); 157 158 iterateClients(m_clients, [&](Client& client) { 159 client.fontPropertyChanged(*this); 160 }); 161 } 162 163 static FontSelectionRange calculateStretchRange(CSSValue& value) 164 { 165 // FIXME: Parse range-based values. 166 ASSERT(is<CSSPrimitiveValue>(value)); 167 const auto& primitiveValue = downcast<CSSPrimitiveValue>(value); 168 169 FontSelectionValue result; 203 170 if (primitiveValue.isPercentage() || primitiveValue.isNumber()) { 204 auto value = primitiveValue.floatValue(); 205 if (value < static_cast<float>(FontSelectionValue::minimumValue())) 206 return FontSelectionValue::minimumValue(); 207 if (value > static_cast<float>(FontSelectionValue::maximumValue())) 208 return FontSelectionValue::maximumValue(); 209 return FontSelectionValue(value); 210 } 211 212 switch (primitiveValue.valueID()) { 213 case CSSValueUltraCondensed: 214 return FontSelectionValue(50); 215 case CSSValueExtraCondensed: 216 return FontSelectionValue(62.5f); 217 case CSSValueCondensed: 218 return FontSelectionValue(75); 219 case CSSValueSemiCondensed: 220 return FontSelectionValue(87.5f); 221 case CSSValueNormal: 222 return FontSelectionValue(100); 223 case CSSValueSemiExpanded: 224 return FontSelectionValue(112.5f); 225 case CSSValueExpanded: 226 return FontSelectionValue(125); 227 case CSSValueExtraExpanded: 228 return FontSelectionValue(150); 229 case CSSValueUltraExpanded: 230 return FontSelectionValue(200); 231 default: 171 result = FontSelectionValue::clampFloat(primitiveValue.floatValue()); 172 return { result, result }; 173 } 174 175 ASSERT(primitiveValue.isValueID()); 176 if (auto value = fontStretchValue(primitiveValue.valueID())) 177 result = value.value(); 178 else { 232 179 ASSERT_NOT_REACHED(); 233 return std::nullopt; 234 } 235 } 236 237 bool CSSFontFace::setWeight(CSSValue& weight) 238 { 239 if (auto mask = calculateWeightMask(weight)) { 240 m_traitsMask = static_cast<FontTraitsMask>((static_cast<unsigned>(m_traitsMask) & (~FontWeightMask)) | mask.value()); 241 242 if (m_cssConnection) 243 m_cssConnection->mutableProperties().setProperty(CSSPropertyFontWeight, &weight); 244 245 iterateClients(m_clients, [&](Client& client) { 246 client.fontPropertyChanged(*this); 247 }); 248 249 return true; 250 } 251 252 return false; 253 } 254 255 bool CSSFontFace::setStretch(CSSValue& stretch) 256 { 257 if (auto parsedStretch = calculateStretch(stretch)) { 258 m_stretch = FontSelectionRange(parsedStretch.value(), parsedStretch.value()); 259 260 if (m_cssConnection) 261 m_cssConnection->mutableProperties().setProperty(CSSPropertyFontStretch, &stretch); 262 263 iterateClients(m_clients, [&](Client& client) { 264 client.fontPropertyChanged(*this); 265 }); 266 267 return true; 268 } 269 270 return false; 180 result = normalStretchValue(); 181 } 182 183 return { result, result }; 184 } 185 186 void CSSFontFace::setStretch(CSSValue& style) 187 { 188 auto range = calculateStretchRange(style); 189 setStretch(range); 190 191 if (m_cssConnection) 192 m_cssConnection->mutableProperties().setProperty(CSSPropertyFontStretch, &style); 193 194 iterateClients(m_clients, [&](Client& client) { 195 client.fontPropertyChanged(*this); 196 }); 197 } 198 199 static FontSelectionRange calculateItalicRange(CSSValue& value) 200 { 201 // FIXME: Parse range-based values. 202 ASSERT(is<CSSPrimitiveValue>(value)); 203 const auto& primitiveValue = downcast<CSSPrimitiveValue>(value); 204 205 FontSelectionValue result; 206 if (primitiveValue.isAngle() || primitiveValue.isNumber() || primitiveValue.isCalculated()) { 207 result = FontSelectionValue::clampFloat(primitiveValue.floatValue(CSSPrimitiveValue::CSS_DEG)); 208 return { result, result }; 209 } 210 211 ASSERT(primitiveValue.isValueID()); 212 if (auto value = fontStyleValue(primitiveValue.valueID())) 213 result = value.value(); 214 else { 215 ASSERT_NOT_REACHED(); 216 result = normalItalicValue(); 217 } 218 return { result, result }; 219 } 220 221 void CSSFontFace::setStyle(CSSValue& style) 222 { 223 auto range = calculateItalicRange(style); 224 setStyle(range); 225 226 if (m_cssConnection) 227 m_cssConnection->mutableProperties().setProperty(CSSPropertyFontStyle, &style); 228 229 iterateClients(m_clients, [&](Client& client) { 230 client.fontPropertyChanged(*this); 231 }); 271 232 } 272 233 -
trunk/Source/WebCore/css/CSSFontFace.h
r213436 r213464 28 28 #include "CSSFontFaceRule.h" 29 29 #include "FontSelectionAlgorithm.h" 30 #include "FontSelectionValueInlines.h" 30 31 #include "FontTaggedSettings.h" 31 32 #include "TextFlags.h" … … 65 66 // Callers only call this with known-valid CSS values. 66 67 bool setFamilies(CSSValue&); 67 boolsetStyle(CSSValue&);68 boolsetWeight(CSSValue&);69 boolsetStretch(CSSValue&);68 void setStyle(CSSValue&); 69 void setWeight(CSSValue&); 70 void setStretch(CSSValue&); 70 71 bool setUnicodeRange(CSSValue&); 71 72 bool setVariantLigatures(CSSValue&); … … 80 81 struct UnicodeRange; 81 82 const CSSValueList* families() const { return m_families.get(); } 82 FontTraitsMask traitsMask() const { return m_traitsMask; } 83 FontSelectionRange stretch() const { return m_stretch; } 83 FontSelectionRange weight() const { return m_fontSelectionCapabilities.weight; } 84 FontSelectionRange stretch() const { return m_fontSelectionCapabilities.width; } 85 FontSelectionRange italic() const { return m_fontSelectionCapabilities.slope; } 86 FontSelectionCapabilities fontSelectionCapabilities() const { return m_fontSelectionCapabilities; } 84 87 const Vector<UnicodeRange>& ranges() const { return m_ranges; } 85 88 const FontFeatureSettings& featureSettings() const { return m_featureSettings; } 86 89 const FontVariantSettings& variantSettings() const { return m_variantSettings; } 87 90 void setVariantSettings(const FontVariantSettings& variantSettings) { m_variantSettings = variantSettings; } 88 void setTraitsMask(FontTraitsMask traitsMask) { m_traitsMask = traitsMask; } 89 void setStretch(FontSelectionRange stretch) { m_stretch = stretch; } 91 void setWeight(FontSelectionRange weight) { m_fontSelectionCapabilities.weight = weight; } 92 void setStretch(FontSelectionRange stretch) { m_fontSelectionCapabilities.width = stretch; } 93 void setStyle(FontSelectionRange italic) { m_fontSelectionCapabilities.slope = italic; } 94 void setFontSelectionCapabilities(FontSelectionCapabilities capabilities) { m_fontSelectionCapabilities = capabilities; } 90 95 bool isLocalFallback() const { return m_isLocalFallback; } 91 96 Status status() const { return m_status; } 92 97 StyleRuleFontFace* cssConnection() const { return m_cssConnection.get(); } 93 FontSelectionCapabilities fontSelectionCapabilities() const { return fontSelectionCapabilitiesForTraitsMask(m_traitsMask, m_stretch); }94 95 static std::optional<FontTraitsMask> calculateStyleMask(CSSValue& style);96 static std::optional<FontTraitsMask> calculateWeightMask(CSSValue& weight);97 static std::optional<FontSelectionValue> calculateStretch(CSSValue& stretch);98 98 99 99 class Client; … … 169 169 170 170 RefPtr<CSSValueList> m_families; 171 FontTraitsMask m_traitsMask { static_cast<FontTraitsMask>(FontStyleNormalMask | FontWeight400Mask) };172 171 Vector<UnicodeRange> m_ranges; 173 172 FontFeatureSettings m_featureSettings; … … 179 178 HashSet<Client*> m_clients; 180 179 WeakPtr<FontFace> m_wrapper; 180 FontSelectionCapabilities m_fontSelectionCapabilities; 181 181 Status m_status { Status::Pending }; 182 FontSelectionRange m_stretch { FontSelectionValue(100), FontSelectionValue(100) };183 182 bool m_isLocalFallback { false }; 184 183 bool m_sourcesPopulated { false }; -
trunk/Source/WebCore/css/CSSFontFaceSet.cpp
r213436 r213464 102 102 return; 103 103 104 Vector<Font Cache::TraitsAndStretch> traitsAndStretch = FontCache::singleton().getTraitsAndStretchInFamily(familyName);105 if ( traitsAndStretch.isEmpty())104 Vector<FontSelectionCapabilities> capabilities = FontCache::singleton().getFontSelectionCapabilitiesInFamily(familyName); 105 if (capabilities.isEmpty()) 106 106 return; 107 107 108 108 Vector<Ref<CSSFontFace>> faces; 109 for (auto item : traitsAndStretch) {109 for (auto item : capabilities) { 110 110 Ref<CSSFontFace> face = CSSFontFace::create(nullptr, nullptr, nullptr, true); 111 111 … … 113 113 familyList->append(CSSValuePool::singleton().createFontFamilyValue(familyName)); 114 114 face->setFamilies(familyList.get()); 115 face->setTraitsMask(item.traits); 116 face->setStretch(item.stretch); 115 face->setFontSelectionCapabilities(item); 117 116 face->adoptSource(std::make_unique<CSSFontFaceSource>(face.get(), familyName)); 118 117 ASSERT(!face->allSourcesFailed()); … … 288 287 } 289 288 290 static std::optional<FontTraitsMask> computeFontTraitsMask(MutableStyleProperties& style) 291 { 289 static std::optional<FontSelectionValue> calculateWeightValue(CSSValue& weight) 290 { 291 if (!is<CSSPrimitiveValue>(weight)) 292 return std::nullopt; 293 294 auto& primitiveWeight = downcast<CSSPrimitiveValue>(weight); 295 if (primitiveWeight.isNumber()) 296 return FontSelectionValue::clampFloat(primitiveWeight.floatValue()); 297 298 if (!primitiveWeight.isValueID()) 299 return std::nullopt; 300 301 if (auto value = fontWeightValue(primitiveWeight.valueID())) 302 return value.value(); 303 ASSERT_NOT_REACHED(); 304 return normalWeightValue(); 305 } 306 307 static std::optional<FontSelectionValue> calculateStretchValue(CSSValue& style) 308 { 309 if (!is<CSSPrimitiveValue>(style)) 310 return std::nullopt; 311 312 auto& primitiveStretch = downcast<CSSPrimitiveValue>(style); 313 if (primitiveStretch.isNumber() || primitiveStretch.isPercentage()) 314 return FontSelectionValue::clampFloat(primitiveStretch.floatValue()); 315 316 if (!primitiveStretch.isValueID()) 317 return std::nullopt; 318 319 if (auto value = fontStretchValue(primitiveStretch.valueID())) 320 return value.value(); 321 return normalStretchValue(); 322 } 323 324 static std::optional<FontSelectionValue> calculateStyleValue(CSSValue& style) 325 { 326 if (!is<CSSPrimitiveValue>(style)) 327 return std::nullopt; 328 329 auto& primitiveSlant = downcast<CSSPrimitiveValue>(style); 330 if (primitiveSlant.isNumber() || primitiveSlant.isAngle()) 331 return FontSelectionValue::clampFloat(primitiveSlant.floatValue()); 332 333 if (!primitiveSlant.isValueID()) 334 return std::nullopt; 335 336 if (auto value = fontStyleValue(downcast<CSSPrimitiveValue>(style).valueID())) 337 return value.value(); 338 return normalItalicValue(); 339 } 340 341 static std::optional<FontSelectionRequest> computeFontSelectionRequest(MutableStyleProperties& style) 342 { 343 RefPtr<CSSValue> weightValue = style.getPropertyCSSValue(CSSPropertyFontWeight).get(); 344 if (!weightValue) 345 weightValue = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal).ptr(); 346 347 FontSelectionValue weightSelectionValue; 348 if (auto weightOptional = calculateWeightValue(*weightValue)) 349 weightSelectionValue = weightOptional.value(); 350 else 351 return std::nullopt; 352 353 RefPtr<CSSValue> stretchValue = style.getPropertyCSSValue(CSSPropertyFontStretch).get(); 354 if (!stretchValue) 355 stretchValue = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal).ptr(); 356 357 FontSelectionValue stretchSelectionValue; 358 if (auto stretchOptional = calculateStretchValue(*weightValue)) 359 stretchSelectionValue = stretchOptional.value(); 360 else 361 return std::nullopt; 362 292 363 RefPtr<CSSValue> styleValue = style.getPropertyCSSValue(CSSPropertyFontStyle).get(); 293 364 if (!styleValue) 294 365 styleValue = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal).ptr(); 295 366 296 Font TraitsMask styleMask;297 if (auto style MaskOptional = CSSFontFace::calculateStyleMask(*styleValue))298 style Mask = styleMaskOptional.value();367 FontSelectionValue styleSelectionValue; 368 if (auto styleOptional = calculateStyleValue(*styleValue)) 369 styleSelectionValue = styleOptional.value(); 299 370 else 300 371 return std::nullopt; 301 372 302 RefPtr<CSSValue> weightValue = style.getPropertyCSSValue(CSSPropertyFontWeight).get(); 303 if (!weightValue) 304 weightValue = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal).ptr(); 305 306 FontTraitsMask weightMask; 307 if (auto weightMaskOptional = CSSFontFace::calculateWeightMask(*weightValue)) 308 weightMask = weightMaskOptional.value(); 309 else 310 return std::nullopt; 311 312 return static_cast<FontTraitsMask>(static_cast<unsigned>(styleMask) | static_cast<unsigned>(weightMask)); 313 } 314 315 static std::optional<FontSelectionValue> computeFontStretch(MutableStyleProperties& style) 316 { 317 RefPtr<CSSValue> stretchValue = style.getPropertyCSSValue(CSSPropertyFontStretch).get(); 318 if (!stretchValue) 319 stretchValue = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal).ptr(); 320 321 if (auto stretchOptional = CSSFontFace::calculateStretch(*stretchValue)) 322 return stretchOptional.value(); 323 return std::nullopt; 373 return {{ weightSelectionValue, stretchSelectionValue, styleSelectionValue }}; 324 374 } 325 375 … … 347 397 return Exception { SYNTAX_ERR }; 348 398 349 FontTraitsMask fontTraitsMask; 350 if (auto maskOptional = computeFontTraitsMask(style.get())) 351 fontTraitsMask = maskOptional.value(); 352 else 353 return Exception { SYNTAX_ERR }; 354 355 FontSelectionValue stretch; 356 if (auto stretchOptional = computeFontStretch(style.get())) 357 stretch = stretchOptional.value(); 399 FontSelectionRequest request; 400 if (auto fontSelectionRequestOptional = computeFontSelectionRequest(style.get())) 401 request = fontSelectionRequestOptional.value(); 358 402 else 359 403 return Exception { SYNTAX_ERR }; … … 378 422 bool found = false; 379 423 for (auto& family : familyOrder) { 380 auto* faces = fontFace( fontTraitsMask, stretch, family);424 auto* faces = fontFace(request, family); 381 425 if (!faces) 382 426 continue; … … 413 457 } 414 458 415 CSSSegmentedFontFace* CSSFontFaceSet::fontFace(Font TraitsMask traitsMask, FontSelectionValue stretch, const AtomicString& family)459 CSSSegmentedFontFace* CSSFontFaceSet::fontFace(FontSelectionRequest request, const AtomicString& family) 416 460 { 417 461 auto iterator = m_facesLookupTable.find(family); … … 420 464 auto& familyFontFaces = iterator->value; 421 465 422 auto& segmentedFontFaceCache = m_cache.add(family, HashMap<unsigned, RefPtr<CSSSegmentedFontFace>>()).iterator->value;423 424 auto& face = segmentedFontFaceCache.add( traitsMask, nullptr).iterator->value;466 auto& segmentedFontFaceCache = m_cache.add(family, FontSelectionHashMap()).iterator->value; 467 468 auto& face = segmentedFontFaceCache.add(request, nullptr).iterator->value; 425 469 if (face) 426 470 return face.get(); … … 431 475 for (int i = familyFontFaces.size() - 1; i >= 0; --i) { 432 476 CSSFontFace& candidate = familyFontFaces[i]; 433 unsigned candidateTraitsMask = candidate.traitsMask();434 if ( (traitsMask & FontStyleNormalMask) && !(candidateTraitsMask & FontStyleNormalMask))477 auto capabilities = candidate.fontSelectionCapabilities(); 478 if (!isItalic(request.slope) && isItalic(capabilities.slope.minimum)) 435 479 continue; 436 480 candidateFontFaces.append(candidate); … … 440 484 if (localIterator != m_locallyInstalledFacesLookupTable.end()) { 441 485 for (auto& candidate : localIterator->value) { 442 unsigned candidateTraitsMask = candidate->traitsMask();443 if ( (traitsMask & FontStyleNormalMask) && !(candidateTraitsMask & FontStyleNormalMask))486 auto capabilities = candidate->fontSelectionCapabilities(); 487 if (!isItalic(request.slope) && isItalic(capabilities.slope.minimum)) 444 488 continue; 445 489 candidateFontFaces.append(candidate); … … 452 496 for (auto& face : candidateFontFaces) 453 497 capabilities.uncheckedAppend(face.get().fontSelectionCapabilities()); 454 FontSelectionAlgorithm fontSelectionAlgorithm( fontSelectionRequestForTraitsMask(traitsMask, stretch), capabilities);498 FontSelectionAlgorithm fontSelectionAlgorithm(request, capabilities); 455 499 std::stable_sort(candidateFontFaces.begin(), candidateFontFaces.end(), [&fontSelectionAlgorithm](const CSSFontFace& first, const CSSFontFace& second) { 456 500 auto firstCapabilities = first.fontSelectionCapabilities(); -
trunk/Source/WebCore/css/CSSFontFaceSet.h
r213436 r213464 68 68 ExceptionOr<bool> check(const String& font, const String& text); 69 69 70 CSSSegmentedFontFace* fontFace(Font TraitsMask, FontSelectionValue stretch, const AtomicString& family);70 CSSSegmentedFontFace* fontFace(FontSelectionRequest, const AtomicString& family); 71 71 72 72 enum class Status { Loading, Loaded }; … … 99 99 HashMap<String, Vector<Ref<CSSFontFace>>, ASCIICaseInsensitiveHash> m_facesLookupTable; 100 100 HashMap<String, Vector<Ref<CSSFontFace>>, ASCIICaseInsensitiveHash> m_locallyInstalledFacesLookupTable; 101 HashMap<String, HashMap<unsigned, RefPtr<CSSSegmentedFontFace>>, ASCIICaseInsensitiveHash> m_cache; 101 typedef HashMap<FontSelectionRequestKey, RefPtr<CSSSegmentedFontFace>, FontSelectionRequestKeyHash, WTF::SimpleClassHashTraits<FontSelectionRequestKey>> FontSelectionHashMap; 102 HashMap<String, FontSelectionHashMap, ASCIICaseInsensitiveHash> m_cache; 102 103 HashMap<StyleRuleFontFace*, CSSFontFace*> m_constituentCSSConnections; 103 104 size_t m_facesPartitionIndex { 0 }; // All entries in m_faces before this index are CSS-connected. -
trunk/Source/WebCore/css/CSSFontSelector.cpp
r213436 r213464 183 183 if (!fontFace->setFamilies(*fontFamily)) 184 184 return; 185 if (!fontFace->setStyle(*fontStyle)) 186 return; 187 if (!fontFace->setWeight(*fontWeight)) 188 return; 189 if (!fontFace->setStretch(*fontStretch)) 190 return; 185 fontFace->setStyle(*fontStyle); 186 fontFace->setWeight(*fontWeight); 187 fontFace->setStretch(*fontStretch); 191 188 if (rangeList && !fontFace->setUnicodeRange(*rangeList)) 192 189 return; … … 302 299 303 300 AtomicString familyForLookup = resolveGenericFamilyFirst ? resolveGenericFamily(m_document, fontDescription, familyName) : familyName; 304 auto* face = m_cssFontFaceSet->fontFace(fontDescription. traitsMask(), fontDescription.stretch(), familyForLookup);301 auto* face = m_cssFontFaceSet->fontFace(fontDescription.fontSelectionRequest(), familyForLookup); 305 302 if (!face) { 306 303 if (!resolveGenericFamilyFirst) -
trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h
r212629 r213464 3678 3678 ASSERT_NOT_REACHED(); 3679 3679 return AutoSmoothing; 3680 }3681 3682 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontWeight weight)3683 : CSSValue(PrimitiveClass)3684 {3685 m_primitiveUnitType = CSS_VALUE_ID;3686 switch (weight) {3687 case FontWeight900:3688 m_value.valueID = CSSValue900;3689 return;3690 case FontWeight800:3691 m_value.valueID = CSSValue800;3692 return;3693 case FontWeight700:3694 m_value.valueID = CSSValue700;3695 return;3696 case FontWeight600:3697 m_value.valueID = CSSValue600;3698 return;3699 case FontWeight500:3700 m_value.valueID = CSSValue500;3701 return;3702 case FontWeight400:3703 m_value.valueID = CSSValue400;3704 return;3705 case FontWeight300:3706 m_value.valueID = CSSValue300;3707 return;3708 case FontWeight200:3709 m_value.valueID = CSSValue200;3710 return;3711 case FontWeight100:3712 m_value.valueID = CSSValue100;3713 return;3714 }3715 3716 ASSERT_NOT_REACHED();3717 m_value.valueID = CSSValueNormal;3718 }3719 3720 template<> inline CSSPrimitiveValue::operator FontWeight() const3721 {3722 ASSERT(isValueID());3723 3724 switch (m_value.valueID) {3725 case CSSValueBold:3726 return FontWeightBold;3727 case CSSValueNormal:3728 return FontWeightNormal;3729 case CSSValue900:3730 return FontWeight900;3731 case CSSValue800:3732 return FontWeight800;3733 case CSSValue700:3734 return FontWeight700;3735 case CSSValue600:3736 return FontWeight600;3737 case CSSValue500:3738 return FontWeight500;3739 case CSSValue400:3740 return FontWeight400;3741 case CSSValue300:3742 return FontWeight300;3743 case CSSValue200:3744 return FontWeight200;3745 case CSSValue100:3746 return FontWeight100;3747 default:3748 break;3749 }3750 3751 ASSERT_NOT_REACHED();3752 return FontWeightNormal;3753 }3754 3755 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontItalic italic)3756 : CSSValue(PrimitiveClass)3757 {3758 m_primitiveUnitType = CSS_VALUE_ID;3759 switch (italic) {3760 case FontItalicOff:3761 m_value.valueID = CSSValueNormal;3762 return;3763 case FontItalicOn:3764 m_value.valueID = CSSValueItalic;3765 return;3766 }3767 3768 ASSERT_NOT_REACHED();3769 m_value.valueID = CSSValueNormal;3770 }3771 3772 template<> inline CSSPrimitiveValue::operator FontItalic() const3773 {3774 ASSERT(isValueID());3775 3776 switch (m_value.valueID) {3777 case CSSValueOblique:3778 // FIXME: oblique is the same as italic for the moment...3779 case CSSValueItalic:3780 return FontItalicOn;3781 case CSSValueNormal:3782 return FontItalicOff;3783 default:3784 break;3785 }3786 ASSERT_NOT_REACHED();3787 return FontItalicOff;3788 3680 } 3789 3681 -
trunk/Source/WebCore/css/CSSProperties.json
r213267 r213464 298 298 "name-for-methods": "Italic", 299 299 "font-property": true, 300 "high-priority": true 300 "high-priority": true, 301 "converter": "FontStyle" 301 302 }, 302 303 "specification": { … … 308 309 "inherited": true, 309 310 "codegen-properties": { 310 "custom": "All", 311 "high-priority": true 311 "name-for-methods": "Weight", 312 "font-property": true, 313 "high-priority": true, 314 "converter": "FontWeight" 312 315 }, 313 316 "specification": { -
trunk/Source/WebCore/css/CSSSegmentedFontFace.cpp
r212513 r213464 108 108 FontRanges CSSSegmentedFontFace::fontRanges(const FontDescription& fontDescription) 109 109 { 110 FontTraitsMask desiredTraitsMask = fontDescription.traitsMask();110 auto desiredRequest = fontDescription.fontSelectionRequest(); 111 111 112 112 auto addResult = m_cache.add(FontDescriptionKey(fontDescription), FontRanges()); … … 118 118 continue; 119 119 120 FontTraitsMask traitsMask = face->traitsMask();121 bool syntheticBold = (fontDescription.fontSynthesis() & FontSynthesisWeight) && ! (traitsMask & (FontWeight600Mask | FontWeight700Mask | FontWeight800Mask | FontWeight900Mask)) && (desiredTraitsMask & (FontWeight600Mask | FontWeight700Mask | FontWeight800Mask | FontWeight900Mask));122 bool syntheticItalic = (fontDescription.fontSynthesis() & FontSynthesisStyle) && ! (traitsMask & FontStyleItalicMask) && (desiredTraitsMask & FontStyleItalicMask);120 auto selectionCapabilities = face->fontSelectionCapabilities(); 121 bool syntheticBold = (fontDescription.fontSynthesis() & FontSynthesisWeight) && !isFontWeightBold(selectionCapabilities.weight.maximum) && isFontWeightBold(desiredRequest.weight); 122 bool syntheticItalic = (fontDescription.fontSynthesis() & FontSynthesisStyle) && !isItalic(selectionCapabilities.slope.maximum) && isItalic(desiredRequest.slope); 123 123 124 124 // This doesn't trigger an unnecessary download because every element styled with this family will need font metrics in order to run layout. -
trunk/Source/WebCore/css/CSSValueKeywords.in
r212985 r213464 126 126 bolder 127 127 lighter 128 100 129 200 130 300 131 400 132 500 133 600 134 700 135 800 136 900 128 137 129 // 138 130 // CSS_PROP_FONT_SIZE: -
trunk/Source/WebCore/css/FontFace.cpp
r213436 r213464 164 164 return Exception { SYNTAX_ERR }; 165 165 166 bool success = false; 167 if (auto value = parseString(style, CSSPropertyFontStyle)) 168 success = m_backing->setStyle(*value); 169 if (!success) 170 return Exception { SYNTAX_ERR }; 171 return { }; 166 if (auto value = parseString(style, CSSPropertyFontStyle)) { 167 m_backing->setStyle(*value); 168 return { }; 169 } 170 return Exception { SYNTAX_ERR }; 172 171 } 173 172 … … 177 176 return Exception { SYNTAX_ERR }; 178 177 179 bool success = false; 180 if (auto value = parseString(weight, CSSPropertyFontWeight)) 181 success = m_backing->setWeight(*value); 182 if (!success) 183 return Exception { SYNTAX_ERR }; 184 return { }; 178 if (auto value = parseString(weight, CSSPropertyFontWeight)) { 179 m_backing->setWeight(*value); 180 return { }; 181 } 182 return Exception { SYNTAX_ERR }; 185 183 } 186 184 … … 190 188 return Exception { SYNTAX_ERR }; 191 189 192 bool success = false; 193 if (auto value = parseString(stretch, CSSPropertyFontStretch)) 194 success = m_backing->setStretch(*value); 195 if (!success) 196 return Exception { SYNTAX_ERR }; 197 return { }; 190 if (auto value = parseString(stretch, CSSPropertyFontStretch)) { 191 m_backing->setStretch(*value); 192 return { }; 193 } 194 return Exception { SYNTAX_ERR }; 198 195 } 199 196 … … 284 281 } 285 282 283 static inline bool rangeIsSingleValue(FontSelectionRange range, FontSelectionValue value) 284 { 285 return range.minimum == value && range.maximum == value; 286 }; 287 286 288 String FontFace::style() const 287 289 { 288 290 m_backing->updateStyleIfNeeded(); 289 switch (m_backing->traitsMask() & FontStyleMask) { 290 case FontStyleNormalMask: 291 return String("normal", String::ConstructFromLiteral); 292 case FontStyleItalicMask: 293 return String("italic", String::ConstructFromLiteral); 294 } 295 ASSERT_NOT_REACHED(); 296 return String("normal", String::ConstructFromLiteral); 291 auto style = m_backing->italic(); 292 293 if (rangeIsSingleValue(style, italicValue())) 294 return ASCIILiteral("italic"); 295 if (rangeIsSingleValue(style, normalItalicValue())) 296 return ASCIILiteral("normal"); 297 298 if (style.minimum == style.maximum) { 299 auto value = static_cast<float>(style.minimum); 300 if (value >= 0) { 301 auto floored = std::floor(value); 302 if (floored == value) 303 return String::format("oblique %ddeg", static_cast<int>(floored)); 304 } 305 return String::format("oblique %fdeg", static_cast<float>(style.minimum)); 306 } 307 308 return String::format("oblique %fdeg-%fdeg", static_cast<float>(style.minimum), static_cast<float>(style.maximum)); 297 309 } 298 310 … … 300 312 { 301 313 m_backing->updateStyleIfNeeded(); 302 switch (m_backing->traitsMask() & FontWeightMask) { 303 case FontWeight100Mask: 304 return String("100", String::ConstructFromLiteral); 305 case FontWeight200Mask: 306 return String("200", String::ConstructFromLiteral); 307 case FontWeight300Mask: 308 return String("300", String::ConstructFromLiteral); 309 case FontWeight400Mask: 310 return String("normal", String::ConstructFromLiteral); 311 case FontWeight500Mask: 312 return String("500", String::ConstructFromLiteral); 313 case FontWeight600Mask: 314 return String("600", String::ConstructFromLiteral); 315 case FontWeight700Mask: 316 return String("bold", String::ConstructFromLiteral); 317 case FontWeight800Mask: 318 return String("800", String::ConstructFromLiteral); 319 case FontWeight900Mask: 320 return String("900", String::ConstructFromLiteral); 321 } 322 ASSERT_NOT_REACHED(); 323 return String("normal", String::ConstructFromLiteral); 314 auto weight = m_backing->weight(); 315 316 if (rangeIsSingleValue(weight, normalWeightValue())) 317 return ASCIILiteral("normal"); 318 if (rangeIsSingleValue(weight, boldWeightValue())) 319 return ASCIILiteral("bold"); 320 321 if (weight.minimum == weight.maximum) { 322 auto value = static_cast<float>(weight.minimum); 323 if (value >= 0) { 324 auto floored = std::floor(value); 325 if (floored == value) 326 return String::format("%d", static_cast<int>(floored)); 327 } 328 return String::format("%f", static_cast<float>(weight.minimum)); 329 } 330 331 return String::format("%f-%f", static_cast<float>(weight.minimum), static_cast<float>(weight.maximum)); 324 332 } 325 333 … … 329 337 auto stretch = m_backing->stretch(); 330 338 331 auto rangeIsSingleValue = [](FontSelectionRange range, FontSelectionValue value) -> bool { 332 return range.minimum == value && range.maximum == value; 333 }; 334 335 if (rangeIsSingleValue(stretch, FontSelectionValue(50))) 339 if (rangeIsSingleValue(stretch, ultraCondensedStretchValue())) 336 340 return ASCIILiteral("ultra-condensed"); 337 if (rangeIsSingleValue(stretch, FontSelectionValue(62.5f)))341 if (rangeIsSingleValue(stretch, extraCondensedStretchValue())) 338 342 return ASCIILiteral("extra-condensed"); 339 if (rangeIsSingleValue(stretch, FontSelectionValue(75)))343 if (rangeIsSingleValue(stretch, condensedStretchValue())) 340 344 return ASCIILiteral("condensed"); 341 if (rangeIsSingleValue(stretch, FontSelectionValue(87.5f)))345 if (rangeIsSingleValue(stretch, semiCondensedStretchValue())) 342 346 return ASCIILiteral("semi-condensed"); 343 if (rangeIsSingleValue(stretch, FontSelectionValue(100)))347 if (rangeIsSingleValue(stretch, normalStretchValue())) 344 348 return ASCIILiteral("normal"); 345 if (rangeIsSingleValue(stretch, FontSelectionValue(112.5f)))349 if (rangeIsSingleValue(stretch, semiExpandedStretchValue())) 346 350 return ASCIILiteral("semi-expanded"); 347 if (rangeIsSingleValue(stretch, FontSelectionValue(125)))351 if (rangeIsSingleValue(stretch, expandedStretchValue())) 348 352 return ASCIILiteral("expanded"); 349 if (rangeIsSingleValue(stretch, FontSelectionValue(150)))353 if (rangeIsSingleValue(stretch, extraExpandedStretchValue())) 350 354 return ASCIILiteral("extra-expanded"); 351 if (rangeIsSingleValue(stretch, FontSelectionValue(200)))355 if (rangeIsSingleValue(stretch, ultraExpandedStretchValue())) 352 356 return ASCIILiteral("ultra-expanded"); 353 357 354 return String::format("%f-%f", static_cast<float>(stretch.minimum), static_cast<float>(stretch.maximum)); 358 if (stretch.minimum == stretch.maximum) { 359 auto value = static_cast<float>(stretch.minimum); 360 if (value >= 0) { 361 auto floored = std::floor(value); 362 if (floored == value) 363 return String::format("%d%%", static_cast<int>(floored)); 364 } 365 return String::format("%f%%", static_cast<float>(stretch.minimum)); 366 } 367 368 return String::format("%f%%-%f%%", static_cast<float>(stretch.minimum), static_cast<float>(stretch.maximum)); 355 369 } 356 370 -
trunk/Source/WebCore/css/StyleBuilderConverter.h
r213341 r213464 41 41 #include "CSSPrimitiveValue.h" 42 42 #include "CSSReflectValue.h" 43 #include "FontSelectionValueInlines.h" 43 44 #include "Frame.h" 44 45 #include "LayoutUnit.h" … … 115 116 #endif 116 117 static FontFeatureSettings convertFontFeatureSettings(StyleResolver&, const CSSValue&); 118 static FontSelectionValue convertFontWeight(StyleResolver&, const CSSValue&); 117 119 static FontSelectionValue convertFontStretch(StyleResolver&, const CSSValue&); 120 static FontSelectionValue convertFontStyle(StyleResolver&, const CSSValue&); 118 121 #if ENABLE(VARIATION_FONTS) 119 122 static FontVariationSettings convertFontVariationSettings(StyleResolver&, const CSSValue&); … … 1155 1158 } 1156 1159 1160 inline FontSelectionValue StyleBuilderConverter::convertFontWeight(StyleResolver& styleResolver, const CSSValue& value) 1161 { 1162 ASSERT(is<CSSPrimitiveValue>(value)); 1163 auto& primitiveValue = downcast<CSSPrimitiveValue>(value); 1164 1165 if (primitiveValue.isNumber()) 1166 return FontSelectionValue::clampFloat(primitiveValue.floatValue()); 1167 1168 ASSERT(primitiveValue.isValueID()); 1169 switch (primitiveValue.valueID()) { 1170 case CSSValueNormal: 1171 return normalWeightValue(); 1172 case CSSValueBold: 1173 return boldWeightValue(); 1174 case CSSValueBolder: 1175 return FontCascadeDescription::bolderWeight(styleResolver.parentStyle()->fontDescription().weight()); 1176 case CSSValueLighter: 1177 return FontCascadeDescription::lighterWeight(styleResolver.parentStyle()->fontDescription().weight()); 1178 default: 1179 ASSERT_NOT_REACHED(); 1180 return normalWeightValue(); 1181 } 1182 } 1183 1157 1184 inline FontSelectionValue StyleBuilderConverter::convertFontStretch(StyleResolver&, const CSSValue& value) 1158 1185 { 1159 1186 ASSERT(is<CSSPrimitiveValue>(value)); 1160 1187 const auto& primitiveValue = downcast<CSSPrimitiveValue>(value); 1161 if (primitiveValue.isPercentage() || primitiveValue.isNumber()) { 1162 auto value = primitiveValue.floatValue(); 1163 if (value <= static_cast<float>(FontSelectionValue::maximumValue()) 1164 && value >= static_cast<float>(FontSelectionValue::minimumValue())) 1165 return FontSelectionValue(value); 1166 if (value < static_cast<float>(FontSelectionValue::minimumValue())) 1167 return FontSelectionValue::minimumValue(); 1168 ASSERT(value > static_cast<float>(FontSelectionValue::maximumValue())); 1169 return FontSelectionValue::maximumValue(); 1170 } 1171 1172 switch (primitiveValue.valueID()) { 1173 case CSSValueUltraCondensed: 1174 return FontSelectionValue(50); 1175 case CSSValueExtraCondensed: 1176 return FontSelectionValue(62.5f); 1177 case CSSValueCondensed: 1178 return FontSelectionValue(75); 1179 case CSSValueSemiCondensed: 1180 return FontSelectionValue(87.5f); 1181 case CSSValueNormal: 1182 return FontSelectionValue(100); 1183 case CSSValueSemiExpanded: 1184 return FontSelectionValue(112.5f); 1185 case CSSValueExpanded: 1186 return FontSelectionValue(125); 1187 case CSSValueExtraExpanded: 1188 return FontSelectionValue(150); 1189 case CSSValueUltraExpanded: 1190 return FontSelectionValue(200); 1191 default: 1192 ASSERT_NOT_REACHED(); 1193 return FontSelectionValue(100); 1194 } 1188 1189 if (primitiveValue.isPercentage() || primitiveValue.isNumber()) 1190 return FontSelectionValue::clampFloat(primitiveValue.floatValue()); 1191 1192 ASSERT(primitiveValue.isValueID()); 1193 if (auto value = fontStretchValue(primitiveValue.valueID())) 1194 return value.value(); 1195 ASSERT_NOT_REACHED(); 1196 return normalStretchValue(); 1197 } 1198 1199 inline FontSelectionValue StyleBuilderConverter::convertFontStyle(StyleResolver&, const CSSValue& value) 1200 { 1201 ASSERT(is<CSSPrimitiveValue>(value)); 1202 const auto& primitiveValue = downcast<CSSPrimitiveValue>(value); 1203 1204 if (primitiveValue.isAngle() || primitiveValue.isNumber() || primitiveValue.isCalculated()) 1205 return FontSelectionValue::clampFloat(primitiveValue.floatValue(CSSPrimitiveValue::CSS_DEG)); 1206 1207 ASSERT(primitiveValue.isValueID()); 1208 if (auto value = fontStyleValue(primitiveValue.valueID())) 1209 return value.value(); 1210 ASSERT_NOT_REACHED(); 1211 return normalItalicValue(); 1195 1212 } 1196 1213 -
trunk/Source/WebCore/css/StyleBuilderCustom.h
r212985 r213464 82 82 DECLARE_PROPERTY_CUSTOM_HANDLERS(FontFamily); 83 83 DECLARE_PROPERTY_CUSTOM_HANDLERS(FontSize); 84 DECLARE_PROPERTY_CUSTOM_HANDLERS(FontWeight);85 84 #if ENABLE(CSS_IMAGE_RESOLUTION) 86 85 DECLARE_PROPERTY_CUSTOM_HANDLERS(ImageResolution); … … 1294 1293 1295 1294 svgStyle.setShadow(std::make_unique<ShadowData>(location, blur, 0, Normal, false, color.isValid() ? color : Color::transparent)); 1296 }1297 1298 inline void StyleBuilderCustom::applyInitialFontWeight(StyleResolver& styleResolver)1299 {1300 auto fontDescription = styleResolver.fontDescription();1301 fontDescription.setWeight(FontWeightNormal);1302 styleResolver.setFontDescription(fontDescription);1303 }1304 1305 inline void StyleBuilderCustom::applyInheritFontWeight(StyleResolver& styleResolver)1306 {1307 auto fontDescription = styleResolver.fontDescription();1308 fontDescription.setWeight(styleResolver.parentFontDescription().weight());1309 styleResolver.setFontDescription(fontDescription);1310 }1311 1312 inline void StyleBuilderCustom::applyValueFontWeight(StyleResolver& styleResolver, CSSValue& value)1313 {1314 auto& primitiveValue = downcast<CSSPrimitiveValue>(value);1315 auto fontDescription = styleResolver.fontDescription();1316 switch (primitiveValue.valueID()) {1317 case CSSValueInvalid:1318 ASSERT_NOT_REACHED();1319 break;1320 case CSSValueBolder:1321 fontDescription.setWeight(styleResolver.parentStyle()->fontDescription().weight());1322 fontDescription.setWeight(fontDescription.bolderWeight());1323 break;1324 case CSSValueLighter:1325 fontDescription.setWeight(styleResolver.parentStyle()->fontDescription().weight());1326 fontDescription.setWeight(fontDescription.lighterWeight());1327 break;1328 default:1329 fontDescription.setWeight(primitiveValue);1330 }1331 styleResolver.setFontDescription(fontDescription);1332 1295 } 1333 1296 -
trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp
r213267 r213464 560 560 case CSSPropertyFloat: // left | right | none 561 561 return valueID == CSSValueLeft || valueID == CSSValueRight || valueID == CSSValueNone; 562 case CSSPropertyFontStyle: // normal | italic | oblique563 return valueID == CSSValueNormal || valueID == CSSValueItalic || valueID == CSSValueOblique;564 562 case CSSPropertyImageRendering: // auto | optimizeContrast | pixelated | optimizeSpeed | crispEdges | optimizeQuality | webkit-crispEdges 565 563 return valueID == CSSValueAuto || valueID == CSSValueOptimizeSpeed || valueID == CSSValueOptimizeQuality || valueID == CSSValueWebkitCrispEdges || valueID == CSSValueWebkitOptimizeContrast || valueID == CSSValueCrispEdges || valueID == CSSValuePixelated; … … 832 830 case CSSPropertyFlexWrap: 833 831 case CSSPropertyFloat: 834 case CSSPropertyFontStyle:835 832 case CSSPropertyFontVariantAlternates: 836 833 case CSSPropertyFontVariantCaps: -
trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp
r213436 r213464 865 865 } 866 866 867 static RefPtr<CSSPrimitiveValue> consumeFontWeight(CSSParserTokenRange& range) 868 { 869 const CSSParserToken& token = range.peek(); 870 if (token.id() >= CSSValueNormal && token.id() <= CSSValueLighter) 871 return consumeIdent(range); 867 static RefPtr<CSSPrimitiveValue> consumeFontWeightKeywordValue(CSSParserTokenRange& range) 868 { 869 return consumeIdent<CSSValueNormal, CSSValueBold, CSSValueBolder, CSSValueLighter>(range); 870 } 871 872 static RefPtr<CSSPrimitiveValue> consumeFontWeightCSS21(CSSParserTokenRange& range) 873 { 874 if (auto result = consumeFontWeightKeywordValue(range)) 875 return result; 872 876 int weight; 873 877 if (!consumePositiveIntegerRaw(range, weight)) 874 878 return nullptr; 875 if ((weight % 100) || weight < 100 || weight > 900) 876 return nullptr; 877 return CSSValuePool::singleton().createIdentifierValue(static_cast<CSSValueID>(CSSValue100 + weight / 100 - 1)); 879 if (!isCSS21Weight(weight)) 880 return nullptr; 881 return CSSValuePool::singleton().createValue(weight, CSSPrimitiveValue::CSS_NUMBER); 882 } 883 884 static RefPtr<CSSPrimitiveValue> consumeFontWeight(CSSParserTokenRange& range) 885 { 886 if (auto result = consumeFontWeightKeywordValue(range)) 887 return result; 888 return consumeNumber(range, ValueRangeAll); 878 889 } 879 890 … … 890 901 return percent; 891 902 return consumeNumber(range, ValueRangeAll); 903 } 904 905 static RefPtr<CSSPrimitiveValue> consumeFontStyleKeywordValue(CSSParserTokenRange& range) 906 { 907 return consumeIdent<CSSValueNormal, CSSValueItalic, CSSValueOblique>(range); 908 } 909 910 static RefPtr<CSSPrimitiveValue> consumeFontStyle(CSSParserTokenRange& range, CSSParserMode cssParserMode) 911 { 912 if (auto result = consumeFontStyleKeywordValue(range)) { 913 if (result->valueID() == CSSValueOblique) { 914 if (range.atEnd()) 915 return result; 916 if (auto angle = consumeAngle(range, cssParserMode)) 917 return angle; 918 if (auto number = consumeNumber(range, ValueRangeAll)) 919 return number; 920 return nullptr; 921 } 922 return result; 923 } 924 return nullptr; 892 925 } 893 926 … … 3667 3700 case CSSPropertyFontStretch: 3668 3701 return consumeFontStretch(m_range); 3702 case CSSPropertyFontStyle: 3703 return consumeFontStyle(m_range, m_context.mode); 3669 3704 case CSSPropertyFontSynthesis: 3670 3705 return consumeFontSynthesis(m_range); … … 4185 4220 parsedValue = consumeFontFaceUnicodeRange(m_range); 4186 4221 break; 4222 case CSSPropertyFontWeight: 4223 // FIXME: Parse range-based values. 4224 parsedValue = consumeFontWeight(m_range); 4225 break; 4187 4226 case CSSPropertyFontStretch: 4227 // FIXME: Parse range-based values. 4188 4228 parsedValue = consumeFontStretch(m_range); 4189 4229 break; 4190 case CSSPropertyFontStyle: { 4191 CSSValueID id = m_range.consumeIncludingWhitespace().id(); 4192 if (!CSSParserFastPaths::isValidKeywordPropertyAndValue(propId, id, m_context.mode)) 4193 return false; 4194 parsedValue = CSSValuePool::singleton().createIdentifierValue(id); 4230 case CSSPropertyFontStyle: 4231 // FIXME: Parse range-based values. 4232 parsedValue = consumeFontStyle(m_range, m_context.mode); 4195 4233 break; 4196 }4197 4234 case CSSPropertyFontVariantCaps: 4198 4235 parsedValue = consumeFontVariantCaps(m_range); … … 4215 4252 case CSSPropertyFontVariant: 4216 4253 return consumeFontVariantShorthand(false); 4217 case CSSPropertyFontWeight:4218 parsedValue = consumeFontWeight(m_range);4219 break;4220 4254 case CSSPropertyFontFeatureSettings: 4221 4255 parsedValue = consumeFontFeatureSettings(m_range); … … 4244 4278 return false; 4245 4279 4246 addProperty(CSSPropertyFontStyle, CSSPropertyFont, CSSValuePool::singleton().createIdentifierValue( fontDescription.italic() == FontItalicOn? CSSValueItalic : CSSValueNormal), important);4247 addProperty(CSSPropertyFontWeight, CSSPropertyFont, CSSValuePool::singleton().createValue( fontDescription.weight()), important);4280 addProperty(CSSPropertyFontStyle, CSSPropertyFont, CSSValuePool::singleton().createIdentifierValue(isItalic(fontDescription.italic()) ? CSSValueItalic : CSSValueNormal), important); 4281 addProperty(CSSPropertyFontWeight, CSSPropertyFont, CSSValuePool::singleton().createValue(static_cast<float>(fontDescription.weight())), important); 4248 4282 addProperty(CSSPropertyFontSize, CSSPropertyFont, CSSValuePool::singleton().createValue(fontDescription.specifiedSize(), CSSPrimitiveValue::CSS_PX), important); 4249 4283 Ref<CSSValueList> fontFamilyList = CSSValueList::createCommaSeparated(); … … 4275 4309 while (!m_range.atEnd()) { 4276 4310 CSSValueID id = m_range.peek().id(); 4277 if (!fontStyle && CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyFontStyle, id, m_context.mode)) { 4278 fontStyle = consumeIdent(m_range); 4279 continue; 4311 if (!fontStyle) { 4312 fontStyle = consumeFontStyleKeywordValue(m_range); 4313 if (fontStyle) 4314 continue; 4280 4315 } 4281 4316 if (!fontVariantCaps && (id == CSSValueNormal || id == CSSValueSmallCaps)) { … … 4287 4322 } 4288 4323 if (!fontWeight) { 4289 fontWeight = consumeFontWeight (m_range);4324 fontWeight = consumeFontWeightCSS21(m_range); 4290 4325 if (fontWeight) 4291 4326 continue; -
trunk/Source/WebCore/editing/EditingStyle.cpp
r213355 r213464 1739 1739 return false; 1740 1740 1741 // Because b tag can only bold text, there are only two states in plain html: bold and not bold. 1742 // Collapse all other values to either one of these two states for editing purposes. 1743 switch (downcast<CSSPrimitiveValue>(fontWeight).valueID()) { 1744 case CSSValue100: 1745 case CSSValue200: 1746 case CSSValue300: 1747 case CSSValue400: 1748 case CSSValue500: 1741 auto& primitiveValue = downcast<CSSPrimitiveValue>(fontWeight); 1742 switch (primitiveValue.valueID()) { 1749 1743 case CSSValueNormal: 1750 1744 return false; 1751 1745 case CSSValueBold: 1752 case CSSValue600:1753 case CSSValue700:1754 case CSSValue800:1755 case CSSValue900:1756 1746 return true; 1757 1747 default: … … 1759 1749 } 1760 1750 1761 ASSERT _NOT_REACHED(); // For CSSValueBolder and CSSValueLighter1762 return false;1751 ASSERT(primitiveValue.isNumber()); 1752 return primitiveValue.floatValue() >= static_cast<float>(boldThreshold()); 1763 1753 } 1764 1754 -
trunk/Source/WebCore/editing/mac/EditorMac.mm
r213355 r213464 493 493 style->setProperty(CSSPropertyFontFamily, cssValuePool.createFontFamilyValue(fontFamily)); 494 494 style->setProperty(CSSPropertyFontStyle, (fontTraits & NSFontItalicTrait) ? CSSValueItalic : CSSValueNormal); 495 style->setProperty(CSSPropertyFontWeight, cssValuePool.createValue(fontTraits & NSFontBoldTrait ? FontWeightBold : FontWeightNormal));495 style->setProperty(CSSPropertyFontWeight, (fontTraits & NSFontBoldTrait) ? CSSValueBold : CSSValueNormal); 496 496 style->setProperty(CSSPropertyFontSize, cssValuePool.createValue(fontSize, CSSPrimitiveValue::CSS_PX)); 497 497 applyStyleToSelection(style.ptr(), EditActionSetFont); -
trunk/Source/WebCore/platform/graphics/FontCache.h
r213436 r213464 189 189 void platformInit(); 190 190 191 #if PLATFORM(IOS)192 static float weightOfCTFont(CTFontRef);193 #endif194 191 #if PLATFORM(COCOA) 195 192 WEBCORE_EXPORT static void setFontWhitelist(const Vector<String>&); … … 204 201 // This function exists so CSSFontSelector can have a unified notion of preinstalled fonts and @font-face. 205 202 // It comes into play when you create an @font-face which shares a family name as a preinstalled font. 206 struct TraitsAndStretch { 207 FontTraitsMask traits; 208 FontSelectionRange stretch; 209 }; 210 Vector<TraitsAndStretch> getTraitsAndStretchInFamily(const AtomicString&); 203 Vector<FontSelectionCapabilities> getFontSelectionCapabilitiesInFamily(const AtomicString&); 211 204 212 205 WEBCORE_EXPORT RefPtr<Font> fontForFamily(const FontDescription&, const AtomicString&, const FontFeatureSettings* fontFaceFeatures = nullptr, const FontVariantSettings* fontFaceVariantSettings = nullptr, bool checkingAlternateName = false); … … 287 280 288 281 RetainPtr<CTFontRef> preparePlatformFont(CTFontRef, TextRenderingMode, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings, const FontFeatureSettings& features, const FontVariantSettings&, const FontVariationSettings&); 289 FontWeight fontWeightFromCoreText(CGFloat weight);290 uint16_t toCoreTextFontWeight(FontWeight);291 bool isFontWeightBold(FontWeight);292 282 SynthesisPair computeNecessarySynthesis(CTFontRef, const FontDescription&, bool isPlatformFont = false); 293 RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, Font Weight, CTFontSymbolicTraits, float size);294 RetainPtr<CTFontRef> platformFontWithFamily(const AtomicString& family, CTFontSymbolicTraits, FontWeight, TextRenderingMode, float size);283 RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, FontSelectionRequest, float size); 284 RetainPtr<CTFontRef> platformFontWithFamily(const AtomicString& family, FontSelectionRequest, TextRenderingMode, float size); 295 285 bool requiresCustomFallbackFont(UChar32 character); 286 FontSelectionCapabilities capabilitiesForFontDescriptor(CTFontDescriptorRef); 296 287 297 288 #else -
trunk/Source/WebCore/platform/graphics/FontCascade.cpp
r213008 r213464 122 122 m_fontDescription.setComputedSize(CTFontGetSize(fontData.font())); 123 123 m_fontDescription.setIsItalic(CTFontGetSymbolicTraits(fontData.font()) & kCTFontTraitItalic); 124 m_fontDescription.setWeight((CTFontGetSymbolicTraits(fontData.font()) & kCTFontTraitBold) ? FontWeightBold : FontWeightNormal);124 m_fontDescription.setWeight((CTFontGetSymbolicTraits(fontData.font()) & kCTFontTraitBold) ? boldWeightValue() : normalWeightValue()); 125 125 #endif 126 126 } -
trunk/Source/WebCore/platform/graphics/FontCascade.h
r211836 r213464 165 165 const AtomicString& familyAt(unsigned i) const { return m_fontDescription.familyAt(i); } 166 166 167 Font Italicitalic() const { return m_fontDescription.italic(); }168 Font Weightweight() const { return m_fontDescription.weight(); }167 FontSelectionValue italic() const { return m_fontDescription.italic(); } 168 FontSelectionValue weight() const { return m_fontDescription.weight(); } 169 169 FontWidthVariant widthVariant() const { return m_fontDescription.widthVariant(); } 170 170 -
trunk/Source/WebCore/platform/graphics/FontDescription.cpp
r213267 r213464 43 43 #endif 44 44 AtomicString string; 45 float size[2]; 45 int16_t fontSelectionRequest[3]; 46 float size; 46 47 unsigned bitfields1; 47 48 unsigned bitfields2 : 22; … … 54 55 55 56 FontDescription::FontDescription() 56 : m_orientation(Horizontal) 57 : m_fontSelectionRequest(FontCascadeDescription::initialWeight(), FontCascadeDescription::initialStretch(), FontCascadeDescription::initialItalic()) 58 , m_orientation(Horizontal) 57 59 , m_nonCJKGlyphOrientation(static_cast<unsigned>(NonCJKGlyphOrientation::Mixed)) 58 60 , m_widthVariant(RegularWidth) 59 , m_italic(FontItalicOff)60 , m_weight(FontWeightNormal)61 61 , m_renderingMode(static_cast<unsigned>(FontRenderingMode::Normal)) 62 62 , m_textRendering(AutoTextRendering) … … 81 81 } 82 82 83 FontTraitsMask FontDescription::traitsMask() const84 {85 return static_cast<FontTraitsMask>((m_italic ? FontStyleItalicMask : FontStyleNormalMask)86 | (FontWeight100Mask << (m_weight - FontWeight100)));87 88 }89 90 83 void FontDescription::setLocale(const AtomicString& locale) 91 84 { … … 103 96 } 104 97 105 Font Weight FontCascadeDescription::lighterWeight(void) const98 FontSelectionValue FontCascadeDescription::lighterWeight(FontSelectionValue weight) 106 99 { 107 switch (weight()) { 108 case FontWeight100: 109 case FontWeight200: 110 case FontWeight300: 111 case FontWeight400: 112 case FontWeight500: 113 return FontWeight100; 114 115 case FontWeight600: 116 case FontWeight700: 117 return FontWeight400; 118 119 case FontWeight800: 120 case FontWeight900: 121 return FontWeight700; 122 } 123 ASSERT_NOT_REACHED(); 124 return FontWeightNormal; 100 if (weight < FontSelectionValue(100)) 101 return weight; 102 if (weight < FontSelectionValue(550)) 103 return FontSelectionValue(100); 104 if (weight < FontSelectionValue(750)) 105 return FontSelectionValue(400); 106 return FontSelectionValue(700); 125 107 } 126 108 127 Font Weight FontCascadeDescription::bolderWeight(void) const109 FontSelectionValue FontCascadeDescription::bolderWeight(FontSelectionValue weight) 128 110 { 129 switch (weight()) { 130 case FontWeight100: 131 case FontWeight200: 132 case FontWeight300: 133 return FontWeight400; 134 135 case FontWeight400: 136 case FontWeight500: 137 return FontWeight700; 138 139 case FontWeight600: 140 case FontWeight700: 141 case FontWeight800: 142 case FontWeight900: 143 return FontWeight900; 144 } 145 ASSERT_NOT_REACHED(); 146 return FontWeightNormal; 111 if (weight < FontSelectionValue(350)) 112 return FontSelectionValue(400); 113 if (weight < FontSelectionValue(550)) 114 return FontSelectionValue(700); 115 if (weight < FontSelectionValue(900)) 116 return FontSelectionValue(900); 117 return weight; 147 118 } 148 119 -
trunk/Source/WebCore/platform/graphics/FontDescription.h
r213436 r213464 47 47 48 48 float computedSize() const { return m_computedSize; } 49 FontItalic italic() const { return static_cast<FontItalic>(m_italic); } 50 FontSelectionValue stretch() const { return m_stretch; } 49 FontSelectionValue italic() const { return m_fontSelectionRequest.slope; } 50 FontSelectionValue stretch() const { return m_fontSelectionRequest.width; } 51 FontSelectionValue weight() const { return m_fontSelectionRequest.weight; } 52 FontSelectionRequest fontSelectionRequest() const { return m_fontSelectionRequest; } 51 53 int computedPixelSize() const { return int(m_computedSize + 0.5f); } 52 FontWeight weight() const { return static_cast<FontWeight>(m_weight); }53 FontWeight lighterWeight() const;54 FontWeight bolderWeight() const;55 54 FontRenderingMode renderingMode() const { return static_cast<FontRenderingMode>(m_renderingMode); } 56 55 TextRenderingMode textRenderingMode() const { return static_cast<TextRenderingMode>(m_textRendering); } … … 99 98 100 99 void setComputedSize(float s) { m_computedSize = clampToFloat(s); } 101 void setItalic(Font Italic i) { m_italic = i; }102 void setStretch(FontSelectionValue stretch) { m_ stretch = stretch; }103 void setIsItalic(bool i) { setItalic(i ? FontItalicOn : FontItalicOff); }104 void setWeight(Font Weight w) { m_weight = w; }100 void setItalic(FontSelectionValue italic) { m_fontSelectionRequest.slope = italic; } 101 void setStretch(FontSelectionValue stretch) { m_fontSelectionRequest.width = stretch; } 102 void setIsItalic(bool i) { setItalic(i ? italicValue() : normalItalicValue()); } 103 void setWeight(FontSelectionValue weight) { m_fontSelectionRequest.weight = weight; } 105 104 void setRenderingMode(FontRenderingMode mode) { m_renderingMode = static_cast<unsigned>(mode); } 106 105 void setTextRenderingMode(TextRenderingMode rendering) { m_textRendering = rendering; } … … 130 129 void setVariantEastAsianRuby(FontVariantEastAsianRuby variant) { m_variantEastAsianRuby = static_cast<unsigned>(variant); } 131 130 132 FontTraitsMask traitsMask() const;133 134 131 private: 135 132 // FIXME: Investigate moving these into their own object on the heap (to save memory). … … 138 135 AtomicString m_locale; 139 136 137 FontSelectionRequest m_fontSelectionRequest; 140 138 float m_computedSize { 0 }; // Computed size adjusted for the minimum font size and the zoom factor. 141 FontSelectionValue m_stretch { 100 }; // Stretch, or "width," of the font142 139 unsigned m_orientation : 1; // FontOrientation - Whether the font is rendering on a horizontal line or a vertical line. 143 140 unsigned m_nonCJKGlyphOrientation : 1; // NonCJKGlyphOrientation - Only used by vertical text. Determines the default orientation for non-ideograph glyphs. 144 141 unsigned m_widthVariant : 2; // FontWidthVariant 145 unsigned m_italic : 1; // FontItalic146 unsigned m_weight : 8; // FontWeight147 142 unsigned m_renderingMode : 1; // Used to switch between CG and GDI text on Windows. 148 143 unsigned m_textRendering : 2; // TextRenderingMode … … 169 164 { 170 165 return m_computedSize == other.m_computedSize 171 && m_stretch == other.m_stretch 172 && m_italic == other.m_italic 173 && m_weight == other.m_weight 166 && m_fontSelectionRequest == other.m_fontSelectionRequest 174 167 && m_renderingMode == other.m_renderingMode 175 168 && m_textRendering == other.m_textRendering … … 215 208 float specifiedSize() const { return m_specifiedSize; } 216 209 bool isAbsoluteSize() const { return m_isAbsoluteSize; } 217 FontWeight lighterWeight() const; 218 FontWeight bolderWeight() const; 210 FontSelectionValue lighterWeight() const { return lighterWeight(weight()); } 211 FontSelectionValue bolderWeight() const { return bolderWeight(weight()); } 212 static FontSelectionValue lighterWeight(FontSelectionValue); 213 static FontSelectionValue bolderWeight(FontSelectionValue); 219 214 220 215 // only use fixed default size when there is only one font family, and that family is "monospace" … … 266 261 267 262 // Initial values for font properties. 268 static FontItalic initialItalic() { return FontItalicOff; } 269 static FontSelectionValue initialStretch() { return FontSelectionValue(100); } 263 static FontSelectionValue initialItalic() { return normalItalicValue(); } 264 static FontSelectionValue initialWeight() { return normalWeightValue(); } 265 static FontSelectionValue initialStretch() { return normalStretchValue(); } 270 266 static FontSmallCaps initialSmallCaps() { return FontSmallCapsOff; } 271 267 static Kerning initialKerning() { return Kerning::Auto; } -
trunk/Source/WebCore/platform/graphics/FontSelectionAlgorithm.cpp
r213436 r213464 36 36 return { FontSelectionValue(), m_request.width }; 37 37 38 if (m_request.width >= FontSelectionValue(100)) {38 if (m_request.width >= normalStretchValue()) { 39 39 if (width.minimum > m_request.width) 40 40 return { width.minimum - m_request.width, width.minimum }; … … 153 153 } 154 154 155 FontSelectionRequest fontSelectionRequestForTraitsMask(FontTraitsMask traitsMask, FontSelectionValue stretch)156 {157 FontSelectionRequest result;158 if (traitsMask & FontWeight100Mask)159 result.weight = FontSelectionValue(100);160 else if (traitsMask & FontWeight200Mask)161 result.weight = FontSelectionValue(200);162 else if (traitsMask & FontWeight300Mask)163 result.weight = FontSelectionValue(300);164 else if (traitsMask & FontWeight400Mask)165 result.weight = FontSelectionValue(400);166 else if (traitsMask & FontWeight500Mask)167 result.weight = FontSelectionValue(500);168 else if (traitsMask & FontWeight600Mask)169 result.weight = FontSelectionValue(600);170 else if (traitsMask & FontWeight700Mask)171 result.weight = FontSelectionValue(700);172 else if (traitsMask & FontWeight800Mask)173 result.weight = FontSelectionValue(800);174 else {175 ASSERT(traitsMask & FontWeight900Mask);176 result.weight = FontSelectionValue(900);177 }178 179 result.width = stretch;180 181 if (traitsMask & FontStyleNormalMask)182 result.slope = FontSelectionValue();183 else {184 ASSERT(traitsMask & FontStyleItalicMask);185 result.slope = italicThreshold();186 }187 188 return result;189 155 } 190 191 static FontSelectionCapabilities initialFontSelectionCapabilitiesForTraitsMask(FontTraitsMask traitsMask)192 {193 FontSelectionCapabilities result;194 if (traitsMask & FontWeight100Mask)195 result.weight = { FontSelectionValue(100), FontSelectionValue(100) };196 else if (traitsMask & FontWeight200Mask)197 result.weight = { FontSelectionValue(200), FontSelectionValue(200) };198 else if (traitsMask & FontWeight300Mask)199 result.weight = { FontSelectionValue(300), FontSelectionValue(300) };200 else if (traitsMask & FontWeight400Mask)201 result.weight = { FontSelectionValue(400), FontSelectionValue(400) };202 else if (traitsMask & FontWeight500Mask)203 result.weight = { FontSelectionValue(500), FontSelectionValue(500) };204 else if (traitsMask & FontWeight600Mask)205 result.weight = { FontSelectionValue(600), FontSelectionValue(600) };206 else if (traitsMask & FontWeight700Mask)207 result.weight = { FontSelectionValue(700), FontSelectionValue(700) };208 else if (traitsMask & FontWeight800Mask)209 result.weight = { FontSelectionValue(800), FontSelectionValue(800) };210 else {211 ASSERT(traitsMask & FontWeight900Mask);212 result.weight = { FontSelectionValue(900), FontSelectionValue(900) };213 }214 215 if (traitsMask & FontStyleNormalMask)216 result.slope = { FontSelectionValue(), FontSelectionValue() };217 else {218 ASSERT(traitsMask & FontStyleItalicMask);219 result.slope = { italicThreshold(), italicThreshold() };220 }221 222 return result;223 }224 225 FontSelectionCapabilities fontSelectionCapabilitiesForTraitsMask(FontTraitsMask traitsMask, FontSelectionValue stretch)226 {227 FontSelectionCapabilities result = initialFontSelectionCapabilitiesForTraitsMask(traitsMask);228 result.width = { stretch, stretch };229 return result;230 }231 232 FontSelectionCapabilities fontSelectionCapabilitiesForTraitsMask(FontTraitsMask traitsMask, FontSelectionRange stretch)233 {234 FontSelectionCapabilities result = initialFontSelectionCapabilitiesForTraitsMask(traitsMask);235 result.width = stretch;236 return result;237 }238 239 } -
trunk/Source/WebCore/platform/graphics/FontSelectionAlgorithm.h
r213436 r213464 89 89 } 90 90 91 static FontSelectionValue clampFloat(float value) 92 { 93 if (value < static_cast<float>(FontSelectionValue::minimumValue())) 94 return FontSelectionValue::minimumValue(); 95 if (value > static_cast<float>(FontSelectionValue::maximumValue())) 96 return FontSelectionValue::maximumValue(); 97 return FontSelectionValue(value); 98 } 99 91 100 private: 92 101 enum class RawTag { RawTag }; … … 162 171 } 163 172 173 static inline bool isItalic(FontSelectionValue fontWeight) 174 { 175 return fontWeight >= italicThreshold(); 176 } 177 178 static inline FontSelectionValue normalItalicValue() 179 { 180 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(); 181 return result.get(); 182 } 183 184 static inline FontSelectionValue italicValue() 185 { 186 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(20); 187 return result.get(); 188 } 189 164 190 static inline FontSelectionValue boldThreshold() 165 191 { … … 168 194 } 169 195 196 static inline FontSelectionValue boldWeightValue() 197 { 198 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(700); 199 return result.get(); 200 } 201 202 static inline FontSelectionValue normalWeightValue() 203 { 204 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(400); 205 return result.get(); 206 } 207 208 static inline FontSelectionValue lightWeightValue() 209 { 210 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(200); 211 return result.get(); 212 } 213 214 static inline bool isFontWeightBold(FontSelectionValue fontWeight) 215 { 216 return fontWeight >= boldThreshold(); 217 } 218 170 219 static inline FontSelectionValue weightSearchThreshold() 171 220 { 172 221 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(500); 222 return result.get(); 223 } 224 225 static inline FontSelectionValue ultraCondensedStretchValue() 226 { 227 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(50); 228 return result.get(); 229 } 230 231 static inline FontSelectionValue extraCondensedStretchValue() 232 { 233 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(62.5f); 234 return result.get(); 235 } 236 237 static inline FontSelectionValue condensedStretchValue() 238 { 239 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(75); 240 return result.get(); 241 } 242 243 static inline FontSelectionValue semiCondensedStretchValue() 244 { 245 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(87.5f); 246 return result.get(); 247 } 248 249 static inline FontSelectionValue normalStretchValue() 250 { 251 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(100); 252 return result.get(); 253 } 254 255 static inline FontSelectionValue semiExpandedStretchValue() 256 { 257 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(112.5f); 258 return result.get(); 259 } 260 261 static inline FontSelectionValue expandedStretchValue() 262 { 263 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(125); 264 return result.get(); 265 } 266 267 static inline FontSelectionValue extraExpandedStretchValue() 268 { 269 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(150); 270 return result.get(); 271 } 272 273 static inline FontSelectionValue ultraExpandedStretchValue() 274 { 275 static NeverDestroyed<FontSelectionValue> result = FontSelectionValue(200); 173 276 return result.get(); 174 277 } … … 215 318 216 319 struct FontSelectionRequest { 320 FontSelectionRequest() = default; 321 322 FontSelectionRequest(FontSelectionValue weight, FontSelectionValue width, FontSelectionValue slope) 323 : weight(weight) 324 , width(width) 325 , slope(slope) 326 { 327 } 328 217 329 bool operator==(const FontSelectionRequest& other) const 218 330 { … … 290 402 } 291 403 292 FontSelectionRange weight { FontSelectionValue(400), FontSelectionValue(400) };293 FontSelectionRange width { FontSelectionValue(100), FontSelectionValue(100) };294 FontSelectionRange slope { FontSelectionValue(), FontSelectionValue() };404 FontSelectionRange weight { normalWeightValue(), normalWeightValue() }; 405 FontSelectionRange width { normalStretchValue(), normalStretchValue() }; 406 FontSelectionRange slope { normalItalicValue(), normalItalicValue() }; 295 407 }; 296 408 … … 359 471 }; 360 472 361 FontSelectionRequest fontSelectionRequestForTraitsMask(FontTraitsMask, FontSelectionValue stretch); 362 FontSelectionCapabilities fontSelectionCapabilitiesForTraitsMask(FontTraitsMask, FontSelectionValue stretch); 363 FontSelectionCapabilities fontSelectionCapabilitiesForTraitsMask(FontTraitsMask, FontSelectionRange stretch); 364 365 } 473 } -
trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
r213436 r213464 552 552 } 553 553 554 FontWeight fontWeightFromCoreText(CGFloat weight)555 {556 if (weight < -0.6)557 return FontWeight100;558 if (weight < -0.365)559 return FontWeight200;560 if (weight < -0.115)561 return FontWeight300;562 if (weight < 0.130)563 return FontWeight400;564 if (weight < 0.235)565 return FontWeight500;566 if (weight < 0.350)567 return FontWeight600;568 if (weight < 0.500)569 return FontWeight700;570 if (weight < 0.700)571 return FontWeight800;572 return FontWeight900;573 }574 575 static inline FontTraitsMask toTraitsMask(CTFontSymbolicTraits ctFontTraits, CGFloat weight)576 {577 FontTraitsMask weightMask;578 switch (fontWeightFromCoreText(weight)) {579 case FontWeight100:580 weightMask = FontWeight100Mask;581 break;582 case FontWeight200:583 weightMask = FontWeight200Mask;584 break;585 case FontWeight300:586 weightMask = FontWeight300Mask;587 break;588 case FontWeight400:589 weightMask = FontWeight400Mask;590 break;591 case FontWeight500:592 weightMask = FontWeight500Mask;593 break;594 case FontWeight600:595 weightMask = FontWeight600Mask;596 break;597 case FontWeight700:598 weightMask = FontWeight700Mask;599 break;600 case FontWeight800:601 weightMask = FontWeight800Mask;602 break;603 case FontWeight900:604 weightMask = FontWeight900Mask;605 break;606 }607 return static_cast<FontTraitsMask>(((ctFontTraits & kCTFontTraitItalic) ? FontStyleItalicMask : FontStyleNormalMask) | weightMask);608 }609 610 bool isFontWeightBold(FontWeight fontWeight)611 {612 return fontWeight >= FontWeight600;613 }614 615 uint16_t toCoreTextFontWeight(FontWeight fontWeight)616 {617 static const int coreTextFontWeights[] = {618 100, // FontWeight100619 200, // FontWeight200620 300, // FontWeight300621 400, // FontWeight400622 500, // FontWeight500623 600, // FontWeight600624 700, // FontWeight700625 800, // FontWeight800626 900, // FontWeight900627 };628 return coreTextFontWeights[fontWeight];629 }630 631 554 RefPtr<Font> FontCache::similarFont(const FontDescription& description, const AtomicString& family) 632 555 { … … 673 596 return FontSelectionValue(ctWidth < 0.5 ? ctWidth * 50 + 100 : ctWidth * 150 + 50); 674 597 } 675 return FontSelectionValue(100); 676 } 677 678 auto FontCache::getTraitsAndStretchInFamily(const AtomicString& familyName) -> Vector<TraitsAndStretch> 679 { 680 auto familyNameStr = familyName.string().createCFString(); 681 CFTypeRef keys[] = { kCTFontFamilyNameAttribute }; 682 CFTypeRef values[] = { familyNameStr.get() }; 683 auto attributes = adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(keys), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)); 684 auto fontDescriptor = adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get())); 685 auto matchedDescriptors = adoptCF(CTFontDescriptorCreateMatchingFontDescriptors(fontDescriptor.get(), nullptr)); 686 if (!matchedDescriptors) 687 return { }; 688 689 CFIndex numMatches = CFArrayGetCount(matchedDescriptors.get()); 690 if (!numMatches) 691 return { }; 692 693 Vector<TraitsAndStretch> result; 694 result.reserveInitialCapacity(numMatches); 695 for (CFIndex i = 0; i < numMatches; ++i) { 696 auto traits = adoptCF((CFDictionaryRef)CTFontDescriptorCopyAttribute((CTFontDescriptorRef)CFArrayGetValueAtIndex(matchedDescriptors.get(), i), kCTFontTraitsAttribute)); 697 CFNumberRef resultRef = (CFNumberRef)CFDictionaryGetValue(traits.get(), kCTFontSymbolicTrait); 698 CFNumberRef weightRef = (CFNumberRef)CFDictionaryGetValue(traits.get(), kCTFontWeightTrait); 699 if (resultRef && weightRef) { 700 CTFontSymbolicTraits symbolicTraits; 701 CFNumberGetValue(resultRef, kCFNumberIntType, &symbolicTraits); 702 CGFloat weight = 0; 703 CFNumberGetValue(weightRef, kCFNumberCGFloatType, &weight); 704 auto stretch = stretchFromCoreTextTraits(traits.get()); 705 result.uncheckedAppend({ toTraitsMask(symbolicTraits, weight), { stretch, stretch } }); 706 } 707 } 708 return result; 598 return normalStretchValue(); 709 599 } 710 600 … … 802 692 } 803 693 804 #if !SHOULD_USE_CORE_TEXT_FONT_LOOKUP 694 #if SHOULD_USE_CORE_TEXT_FONT_LOOKUP 695 static FontSelectionValue fontWeightFromCoreText(CGFloat weight) 696 { 697 if (weight < -0.6) 698 return FontSelectionValue(100); 699 if (weight < -0.365) 700 return FontSelectionValue(200); 701 if (weight < -0.115) 702 return FontSelectionValue(300); 703 if (weight < 0.130) 704 return FontSelectionValue(400); 705 if (weight < 0.235) 706 return FontSelectionValue(500); 707 if (weight < 0.350) 708 return FontSelectionValue(600); 709 if (weight < 0.500) 710 return FontSelectionValue(700); 711 if (weight < 0.700) 712 return FontSelectionValue(800); 713 return FontSelectionValue(900); 714 } 715 #endif 805 716 806 717 class FontDatabase { … … 900 811 } 901 812 902 static FontSelectionCapabilities capabilitiesForFontDescriptor(CTFontDescriptorRef fontDescriptor)903 {904 if (!fontDescriptor)905 return { };906 907 auto traits = adoptCF(static_cast<CFDictionaryRef>(CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontTraitsAttribute)));908 FontSelectionValue width;909 FontSelectionValue slant;910 FontSelectionValue weight;911 if (traits) {912 width = stretchFromCoreTextTraits(traits.get());913 914 auto symbolicTraitsNumber = static_cast<CFNumberRef>(CFDictionaryGetValue(traits.get(), kCTFontSymbolicTrait));915 if (symbolicTraitsNumber) {916 int32_t symbolicTraits;917 auto success = CFNumberGetValue(symbolicTraitsNumber, kCFNumberSInt32Type, &symbolicTraits);918 ASSERT_UNUSED(success, success);919 slant = symbolicTraits & kCTFontTraitItalic ? italicThreshold() : FontSelectionValue();920 }921 }922 923 auto weightNumber = adoptCF(static_cast<CFNumberRef>(CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontCSSWeightAttribute)));924 if (weightNumber) {925 float cssWeight;926 auto success = CFNumberGetValue(weightNumber.get(), kCFNumberFloatType, &cssWeight);927 ASSERT_UNUSED(success, success);928 weight = FontSelectionValue(cssWeight);929 }930 931 // FIXME: Educate this function about font variations.932 933 return { { weight, weight }, { width, width }, { slant, slant } };934 }935 936 813 private: 937 814 friend class NeverDestroyed<FontDatabase>; … … 943 820 }; 944 821 822 FontSelectionCapabilities capabilitiesForFontDescriptor(CTFontDescriptorRef fontDescriptor) 823 { 824 if (!fontDescriptor) 825 return { }; 826 827 auto traits = adoptCF(static_cast<CFDictionaryRef>(CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontTraitsAttribute))); 828 FontSelectionValue width; 829 FontSelectionValue slant; 830 FontSelectionValue weight; 831 if (traits) { 832 width = stretchFromCoreTextTraits(traits.get()); 833 834 auto symbolicTraitsNumber = static_cast<CFNumberRef>(CFDictionaryGetValue(traits.get(), kCTFontSymbolicTrait)); 835 if (symbolicTraitsNumber) { 836 int32_t symbolicTraits; 837 auto success = CFNumberGetValue(symbolicTraitsNumber, kCFNumberSInt32Type, &symbolicTraits); 838 ASSERT_UNUSED(success, success); 839 slant = symbolicTraits & kCTFontTraitItalic ? italicValue() : normalItalicValue(); 840 } 841 842 #if SHOULD_USE_CORE_TEXT_FONT_LOOKUP 843 auto weightNumber = static_cast<CFNumberRef>(CFDictionaryGetValue(traits.get(), kCTFontWeightTrait)); 844 if (weightNumber) { 845 CGFloat ctWeight; 846 auto success = CFNumberGetValue(weightNumber, kCFNumberCGFloatType, &ctWeight); 847 ASSERT_UNUSED(success, success); 848 weight = fontWeightFromCoreText(ctWeight); 849 } 850 #endif 851 } 852 853 #if !SHOULD_USE_CORE_TEXT_FONT_LOOKUP 854 auto weightNumber = adoptCF(static_cast<CFNumberRef>(CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontCSSWeightAttribute))); 855 if (weightNumber) { 856 float cssWeight; 857 auto success = CFNumberGetValue(weightNumber.get(), kCFNumberFloatType, &cssWeight); 858 ASSERT_UNUSED(success, success); 859 weight = FontSelectionValue(cssWeight); 860 } 861 #endif 862 863 // FIXME: Educate this function about font variations. 864 865 return { { weight, weight }, { width, width }, { slant, slant } }; 866 } 867 868 #if !SHOULD_USE_CORE_TEXT_FONT_LOOKUP 945 869 static const FontDatabase::InstalledFont* findClosestFont(const FontDatabase::InstalledFontFamily& familyFonts, FontSelectionRequest fontSelectionRequest) 946 870 { … … 952 876 return &familyFonts.installedFonts[fontSelectionAlgorithm.indexOfBestCapabilities()]; 953 877 } 954 955 static FontSelectionRequest calculateFontSelectionRequest(CTFontSymbolicTraits requestedTraits, FontWeight weight, FontSelectionValue stretch) 956 { 957 FontSelectionRequest result; 958 switch (weight) { 959 case FontWeight100: 960 result.weight = FontSelectionValue(100); 961 break; 962 case FontWeight200: 963 result.weight = FontSelectionValue(200); 964 break; 965 case FontWeight300: 966 result.weight = FontSelectionValue(300); 967 break; 968 case FontWeight400: 969 result.weight = FontSelectionValue(400); 970 break; 971 case FontWeight500: 972 result.weight = FontSelectionValue(500); 973 break; 974 case FontWeight600: 975 result.weight = FontSelectionValue(600); 976 break; 977 case FontWeight700: 978 result.weight = FontSelectionValue(700); 979 break; 980 case FontWeight800: 981 result.weight = FontSelectionValue(800); 982 break; 983 case FontWeight900: 984 result.weight = FontSelectionValue(900); 985 break; 986 default: 987 ASSERT_NOT_REACHED(); 988 result.weight = FontSelectionValue(400); 989 break; 990 } 991 992 result.width = stretch; 993 994 if (requestedTraits & kCTFontTraitItalic) 995 result.slope = italicThreshold(); 996 else 997 result.slope = FontSelectionValue(); 998 878 #endif 879 880 Vector<FontSelectionCapabilities> FontCache::getFontSelectionCapabilitiesInFamily(const AtomicString& familyName) 881 { 882 const auto& fonts = FontDatabase::singleton().collectionForFamily(familyName.string()); 883 if (fonts.isEmpty()) 884 return { }; 885 886 Vector<FontSelectionCapabilities> result; 887 result.reserveInitialCapacity(fonts.size()); 888 for (const auto& font : fonts.installedFonts) 889 result.uncheckedAppend(font.capabilities); 999 890 return result; 1000 891 } 1001 892 1002 #endif // !SHOULD_USE_CORE_TEXT_FONT_LOOKUP 1003 1004 static RetainPtr<CTFontRef> platformFontLookupWithFamily(const AtomicString& family, CTFontSymbolicTraits requestedTraits, FontWeight weight, FontSelectionValue stretch, float size) 893 static RetainPtr<CTFontRef> platformFontLookupWithFamily(const AtomicString& family, FontSelectionRequest request, float size) 1005 894 { 1006 895 const auto& whitelist = fontWhitelist(); … … 1009 898 1010 899 #if SHOULD_USE_CORE_TEXT_FONT_LOOKUP 1011 UNUSED_PARAM(stretch);1012 return adoptCF(CTFontCreateForCSS(family.string().createCFString().get(), toCoreTextFontWeight(weight), requestedTraits, size));900 CTFontSymbolicTraits traits = (isFontWeightBold(request.weight) ? kCTFontTraitBold : 0) | (isItalic(request.slope) ? kCTFontTraitItalic : 0); 901 return adoptCF(CTFontCreateForCSS(family.string().createCFString().get(), static_cast<float>(request.weight), traits, size)); 1013 902 #else 1014 903 const auto& familyFonts = FontDatabase::singleton().collectionForFamily(family.string()); … … 1024 913 if (!postScriptFont.fontDescriptor) 1025 914 return nullptr; 1026 if (( (requestedTraits & kCTFontTraitItalic) && postScriptFont.capabilities.slope.maximum < italicThreshold())1027 || ( weight >= FontWeight600 && postScriptFont.capabilities.weight.maximum < boldThreshold())) {915 if ((isItalic(request.slope) && !isItalic(postScriptFont.capabilities.slope.maximum)) 916 || (isFontWeightBold(request.weight) && !isFontWeightBold(postScriptFont.capabilities.weight.maximum))) { 1028 917 auto postScriptFamilyName = adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(postScriptFont.fontDescriptor.get(), kCTFontFamilyNameAttribute))); 1029 918 if (!postScriptFamilyName) … … 1032 921 if (familyFonts.isEmpty()) 1033 922 return nullptr; 1034 if (const auto* installedFont = findClosestFont(familyFonts, calculateFontSelectionRequest(requestedTraits, weight, stretch))) {923 if (const auto* installedFont = findClosestFont(familyFonts, request)) { 1035 924 if (!installedFont->fontDescriptor) 1036 925 return nullptr; … … 1042 931 } 1043 932 1044 if (const auto* installedFont = findClosestFont(familyFonts, calculateFontSelectionRequest(requestedTraits, weight, stretch)))933 if (const auto* installedFont = findClosestFont(familyFonts, request)) 1045 934 return adoptCF(CTFontCreateWithFontDescriptor(installedFont->fontDescriptor.get(), size, nullptr)); 1046 935 … … 1058 947 } 1059 948 1060 #if !SHOULD_USE_CORE_TEXT_FONT_LOOKUP1061 949 FontDatabase::singleton().clear(); 1062 #endif1063 950 1064 951 FontCache::singleton().invalidate(); 1065 952 } 1066 953 1067 static RetainPtr<CTFontRef> fontWithFamily(const AtomicString& family, CTFontSymbolicTraits desiredTraits, FontWeight weight, FontSelectionValue stretch, const FontFeatureSettings& featureSettings, const FontVariantSettings& variantSettings, const FontVariationSettings& variationSettings, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings, const TextRenderingMode& textRenderingMode, float size)954 static RetainPtr<CTFontRef> fontWithFamily(const AtomicString& family, FontSelectionRequest request, const FontFeatureSettings& featureSettings, const FontVariantSettings& variantSettings, const FontVariationSettings& variationSettings, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings, const TextRenderingMode& textRenderingMode, float size) 1068 955 { 1069 956 if (family.isEmpty()) 1070 957 return nullptr; 1071 958 1072 auto foundFont = platformFontWithFamilySpecialCase(family, weight, desiredTraits, size);959 auto foundFont = platformFontWithFamilySpecialCase(family, request, size); 1073 960 if (!foundFont) 1074 foundFont = platformFontLookupWithFamily(family, desiredTraits, weight, stretch, size);961 foundFont = platformFontLookupWithFamily(family, request, size); 1075 962 return preparePlatformFont(foundFont.get(), textRenderingMode, fontFaceFeatures, fontFaceVariantSettings, featureSettings, variantSettings, variationSettings); 1076 963 } … … 1110 997 std::unique_ptr<FontPlatformData> FontCache::createFontPlatformData(const FontDescription& fontDescription, const AtomicString& family, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings) 1111 998 { 1112 CTFontSymbolicTraits traits = computeTraits(fontDescription);1113 999 float size = fontDescription.computedPixelSize(); 1114 1000 1115 auto font = fontWithFamily(family, traits, fontDescription.weight(), fontDescription.stretch(), fontDescription.featureSettings(), fontDescription.variantSettings(), fontDescription.variationSettings(), fontFaceFeatures, fontFaceVariantSettings, fontDescription.textRenderingMode(), size);1001 auto font = fontWithFamily(family, fontDescription.fontSelectionRequest(), fontDescription.featureSettings(), fontDescription.variantSettings(), fontDescription.variationSettings(), fontFaceFeatures, fontFaceVariantSettings, fontDescription.textRenderingMode(), size); 1116 1002 1117 1003 #if PLATFORM(MAC) … … 1124 1010 autoActivateFont(family.string(), size); 1125 1011 1126 font = fontWithFamily(family, traits, fontDescription.weight(), fontDescription.stretch(), fontDescription.featureSettings(), fontDescription.variantSettings(), fontDescription.variationSettings(), fontFaceFeatures, fontFaceVariantSettings, fontDescription.textRenderingMode(), size);1012 font = fontWithFamily(family, fontDescription.fontSelectionRequest(), fontDescription.featureSettings(), fontDescription.variantSettings(), fontDescription.variationSettings(), fontFaceFeatures, fontFaceVariantSettings, fontDescription.textRenderingMode(), size); 1127 1013 } 1128 1014 #endif … … 1162 1048 #endif 1163 1049 1164 static RetainPtr<CTFontRef> lookupFallbackFont(CTFontRef font, Font WeightfontWeight, const AtomicString& locale, const UChar* characters, unsigned length)1050 static RetainPtr<CTFontRef> lookupFallbackFont(CTFontRef font, FontSelectionValue fontWeight, const AtomicString& locale, const UChar* characters, unsigned length) 1165 1051 { 1166 1052 ASSERT(length > 0); -
trunk/Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp
r213436 r213464 139 139 } 140 140 141 auto FontCache::getTraitsAndStretchInFamily(const AtomicString& familyName) -> Vector<TraitsAndStretch> 141 Vector<FontSelectionCapabilities> FontCache::getFontSelectionCapabilitiesInFamily(const AtomicString& familyName) 142 142 { 143 143 return { }; … … 164 164 } 165 165 166 static int fontWeightToFontconfigWeight(FontWeight weight) 167 { 168 switch (weight) { 169 case FontWeight100: 166 static int fontWeightToFontconfigWeight(FontSelectionValue weight) 167 { 168 if (weight < FontSelectionValue(150)) 170 169 return FC_WEIGHT_THIN; 171 case FontWeight200:170 if (weight < FontSelectionValue(250)) 172 171 return FC_WEIGHT_ULTRALIGHT; 173 case FontWeight300:172 if (weight < FontSelectionValue(350)) 174 173 return FC_WEIGHT_LIGHT; 175 case FontWeight400:174 if (weight < FontSelectionValue(450)) 176 175 return FC_WEIGHT_REGULAR; 177 case FontWeight500:176 if (weight < FontSelectionValue(550)) 178 177 return FC_WEIGHT_MEDIUM; 179 case FontWeight600:178 if (weight < FontSelectionValue(650)) 180 179 return FC_WEIGHT_SEMIBOLD; 181 case FontWeight700:180 if (weight < FontSelectionValue(750)) 182 181 return FC_WEIGHT_BOLD; 183 case FontWeight800:182 if (weight < FontSelectionValue(850)) 184 183 return FC_WEIGHT_EXTRABOLD; 185 case FontWeight900: 186 return FC_WEIGHT_ULTRABLACK; 187 default: 188 ASSERT_NOT_REACHED(); 189 return FC_WEIGHT_REGULAR; 190 } 184 return FC_WEIGHT_ULTRABLACK; 191 185 } 192 186 -
trunk/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp
r211029 r213464 150 150 151 151 bool descriptionAllowsSyntheticBold = fontDescription.fontSynthesis() & FontSynthesisWeight; 152 if (descriptionAllowsSyntheticBold && fontDescription.weight() >= FontWeightBold) {152 if (descriptionAllowsSyntheticBold && isFontWeightBold(fontDescription.weight())) { 153 153 // The FC_EMBOLDEN property instructs us to fake the boldness of the font. 154 154 FcBool fontConfigEmbolden = FcFalse; -
trunk/Source/WebCore/platform/graphics/ios/FontCacheIOS.mm
r213163 r213464 80 80 } 81 81 82 float FontCache::weightOfCTFont(CTFontRef font) 83 { 84 RetainPtr<CFDictionaryRef> traits = adoptCF(CTFontCopyTraits(font)); 85 86 CFNumberRef resultRef = (CFNumberRef)CFDictionaryGetValue(traits.get(), kCTFontWeightTrait); 87 float result = 0; 88 CFNumberGetValue(resultRef, kCFNumberFloatType, &result); 89 90 return result; 91 } 92 93 static RetainPtr<CTFontDescriptorRef> baseSystemFontDescriptor(FontWeight weight, bool bold, float size) 82 static RetainPtr<CTFontDescriptorRef> baseSystemFontDescriptor(FontSelectionValue weight, bool bold, float size) 94 83 { 95 84 CTFontUIFontType fontType = kCTFontUIFontSystem; 96 if (weight > FontWeight300) {85 if (weight >= FontSelectionValue(350)) { 97 86 if (bold) 98 87 fontType = kCTFontUIFontEmphasizedSystem; 99 } else if (weight > FontWeight200)88 } else if (weight >= FontSelectionValue(250)) 100 89 fontType = static_cast<CTFontUIFontType>(kCTFontUIFontSystemLight); 101 else if (weight > FontWeight100)90 else if (weight >= FontSelectionValue(150)) 102 91 fontType = static_cast<CTFontUIFontType>(kCTFontUIFontSystemThin); 103 92 else … … 107 96 108 97 #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 100000 109 static RetainPtr<NSDictionary> systemFontModificationAttributes(Font Weightweight, bool italic)98 static RetainPtr<NSDictionary> systemFontModificationAttributes(FontSelectionValue weight, bool italic) 110 99 { 111 100 RetainPtr<NSMutableDictionary> traitsDictionary = adoptNS([[NSMutableDictionary alloc] init]); 112 101 113 ASSERT(weight >= FontWeight100 && weight <= FontWeight900); 114 float ctWeights[] = { 115 static_cast<float>(kCTFontWeightUltraLight), 116 static_cast<float>(kCTFontWeightThin), 117 static_cast<float>(kCTFontWeightLight), 118 static_cast<float>(kCTFontWeightRegular), 119 static_cast<float>(kCTFontWeightMedium), 120 static_cast<float>(kCTFontWeightSemibold), 121 static_cast<float>(kCTFontWeightBold), 122 static_cast<float>(kCTFontWeightHeavy), 123 static_cast<float>(kCTFontWeightBlack) 124 }; 125 [traitsDictionary setObject:[NSNumber numberWithFloat:ctWeights[weight]] forKey:static_cast<NSString *>(kCTFontWeightTrait)]; 102 float ctWeight = kCTFontWeightRegular; 103 if (weight < FontSelectionValue(150)) 104 ctWeight = kCTFontWeightUltraLight; 105 else if (weight < FontSelectionValue(250)) 106 ctWeight = kCTFontWeightThin; 107 else if (weight < FontSelectionValue(350)) 108 ctWeight = kCTFontWeightLight; 109 else if (weight < FontSelectionValue(450)) 110 ctWeight = kCTFontWeightRegular; 111 else if (weight < FontSelectionValue(550)) 112 ctWeight = kCTFontWeightMedium; 113 else if (weight < FontSelectionValue(650)) 114 ctWeight = kCTFontWeightSemibold; 115 else if (weight < FontSelectionValue(750)) 116 ctWeight = kCTFontWeightBold; 117 else if (weight < FontSelectionValue(850)) 118 ctWeight = kCTFontWeightHeavy; 119 else 120 ctWeight = kCTFontWeightBlack; 121 [traitsDictionary setObject:[NSNumber numberWithFloat:ctWeight] forKey:static_cast<NSString *>(kCTFontWeightTrait)]; 126 122 127 123 [traitsDictionary setObject:@YES forKey:static_cast<NSString *>(kCTFontUIFontDesignTrait)]; … … 134 130 #endif 135 131 136 static RetainPtr<CTFontDescriptorRef> systemFontDescriptor(Font Weightweight, bool bold, bool italic, float size)132 static RetainPtr<CTFontDescriptorRef> systemFontDescriptor(FontSelectionValue weight, bool bold, bool italic, float size) 137 133 { 138 134 RetainPtr<CTFontDescriptorRef> fontDescriptor = baseSystemFontDescriptor(weight, bold, size); … … 147 143 } 148 144 149 RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, Font Weight weight, CTFontSymbolicTraits traits, float size)145 RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, FontSelectionRequest request, float size) 150 146 { 151 147 if (family.startsWith("UICTFontTextStyle")) { 152 traits &= (kCTFontBoldTrait | kCTFontItalicTrait);148 CTFontSymbolicTraits traits = (isFontWeightBold(request.weight) ? kCTFontTraitBold : 0) | (isItalic(request.slope) ? kCTFontTraitItalic : 0); 153 149 RetainPtr<CFStringRef> familyNameStr = family.string().createCFString(); 154 150 RetainPtr<CTFontDescriptorRef> fontDescriptor = adoptCF(CTFontDescriptorCreateWithTextStyle(familyNameStr.get(), RenderThemeIOS::contentSizeCategory(), nullptr)); … … 160 156 161 157 if (equalLettersIgnoringASCIICase(family, "-webkit-system-font") || equalLettersIgnoringASCIICase(family, "-apple-system") || equalLettersIgnoringASCIICase(family, "-apple-system-font") || equalLettersIgnoringASCIICase(family, "system-ui")) { 162 return adoptCF(CTFontCreateWithFontDescriptor(systemFontDescriptor( weight, traits & kCTFontTraitBold, traits & kCTFontTraitItalic, size).get(), size, nullptr));158 return adoptCF(CTFontCreateWithFontDescriptor(systemFontDescriptor(request.weight, isFontWeightBold(request.weight), isItalic(request.slope), size).get(), size, nullptr)); 163 159 } 164 160 -
trunk/Source/WebCore/platform/graphics/mac/FontCacheMac.mm
r213163 r213464 53 53 #if PLATFORM(MAC) 54 54 55 static CGFloat toNSFontWeight(Font WeightfontWeight)55 static CGFloat toNSFontWeight(FontSelectionValue fontWeight) 56 56 { 57 static const CGFloat nsFontWeights[] = { 58 NSFontWeightUltraLight, 59 NSFontWeightThin, 60 NSFontWeightLight, 61 NSFontWeightRegular, 62 NSFontWeightMedium, 63 NSFontWeightSemibold, 64 NSFontWeightBold, 65 NSFontWeightHeavy, 66 NSFontWeightBlack 67 }; 68 ASSERT(fontWeight >= 0 && fontWeight <= 8); 69 return nsFontWeights[fontWeight]; 57 if (fontWeight < FontSelectionValue(150)) 58 return NSFontWeightUltraLight; 59 if (fontWeight < FontSelectionValue(250)) 60 return NSFontWeightThin; 61 if (fontWeight < FontSelectionValue(350)) 62 return NSFontWeightLight; 63 if (fontWeight < FontSelectionValue(450)) 64 return NSFontWeightRegular; 65 if (fontWeight < FontSelectionValue(550)) 66 return NSFontWeightMedium; 67 if (fontWeight < FontSelectionValue(650)) 68 return NSFontWeightSemibold; 69 if (fontWeight < FontSelectionValue(750)) 70 return NSFontWeightBold; 71 if (fontWeight < FontSelectionValue(850)) 72 return NSFontWeightHeavy; 73 return NSFontWeightBlack; 70 74 } 71 75 72 RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, Font Weight weight, CTFontSymbolicTraits desiredTraits, float size)76 RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, FontSelectionRequest request, float size) 73 77 { 74 78 if (equalLettersIgnoringASCIICase(family, "-webkit-system-font") || equalLettersIgnoringASCIICase(family, "-apple-system") || equalLettersIgnoringASCIICase(family, "-apple-system-font") || equalLettersIgnoringASCIICase(family, "system-ui")) { 75 RetainPtr<CTFontRef> result = toCTFont([NSFont systemFontOfSize:size weight:toNSFontWeight(weight)]); 76 if (desiredTraits & kCTFontItalicTrait) { 79 RetainPtr<CTFontRef> result = toCTFont([NSFont systemFontOfSize:size weight:toNSFontWeight(request.weight)]); 80 if (isItalic(request.slope)) { 81 CTFontSymbolicTraits desiredTraits = kCTFontItalicTrait; 82 if (isFontWeightBold(request.weight)) 83 desiredTraits |= kCTFontBoldTrait; 77 84 if (auto italicizedFont = adoptCF(CTFontCreateCopyWithSymbolicTraits(result.get(), size, nullptr, desiredTraits, desiredTraits))) 78 85 result = italicizedFont; -
trunk/Source/WebCore/platform/graphics/win/FontCacheWin.cpp
r213436 r213464 399 399 } 400 400 401 static LONG toGDIFontWeight(FontWeight fontWeight) 402 { 403 static LONG gdiFontWeights[] = { 404 FW_THIN, // FontWeight100 405 FW_EXTRALIGHT, // FontWeight200 406 FW_LIGHT, // FontWeight300 407 FW_NORMAL, // FontWeight400 408 FW_MEDIUM, // FontWeight500 409 FW_SEMIBOLD, // FontWeight600 410 FW_BOLD, // FontWeight700 411 FW_EXTRABOLD, // FontWeight800 412 FW_HEAVY // FontWeight900 413 }; 414 return gdiFontWeights[fontWeight]; 401 static LONG toGDIFontWeight(FontSelectionValue fontWeight) 402 { 403 if (fontWeight < FontSelectionValue(150)) 404 return FW_THIN; 405 if (fontWeight < FontSelectionValue(250)) 406 return FW_EXTRALIGHT; 407 if (fontWeight < FontSelectionValue(350)) 408 return FW_LIGHT; 409 if (fontWeight < FontSelectionValue(450)) 410 return FW_NORMAL; 411 if (fontWeight < FontSelectionValue(550)) 412 return FW_MEDIUM; 413 if (fontWeight < FontSelectionValue(650)) 414 return FW_SEMIBOLD; 415 if (fontWeight < FontSelectionValue(750)) 416 return FW_BOLD; 417 if (fontWeight < FontSelectionValue(850)) 418 return FW_EXTRABOLD; 419 return FW_HEAVY; 415 420 } 416 421 … … 537 542 538 543 const AtomicString& m_familyName; 539 HashSet<unsigned> m_traitsMasks;544 Vector<FontSelectionCapabilities> m_capabilities; 540 545 }; 541 546 … … 544 549 TraitsInFamilyProcData* procData = reinterpret_cast<TraitsInFamilyProcData*>(lParam); 545 550 546 unsigned traitsMask = 0; 547 traitsMask |= logFont->lfItalic ? FontStyleItalicMask : FontStyleNormalMask; 548 LONG weight = adjustedGDIFontWeight(logFont->lfWeight, procData->m_familyName); 549 traitsMask |= weight == FW_THIN ? FontWeight100Mask : 550 weight == FW_EXTRALIGHT ? FontWeight200Mask : 551 weight == FW_LIGHT ? FontWeight300Mask : 552 weight == FW_NORMAL ? FontWeight400Mask : 553 weight == FW_MEDIUM ? FontWeight500Mask : 554 weight == FW_SEMIBOLD ? FontWeight600Mask : 555 weight == FW_BOLD ? FontWeight700Mask : 556 weight == FW_EXTRABOLD ? FontWeight800Mask : 557 FontWeight900Mask; 558 procData->m_traitsMasks.add(traitsMask); 551 FontSelectionValue italic = logFont->lfItalic ? italicThreshold() : FontSelectionValue(); 552 553 FontSelectionValue weight; 554 switch (adjustedGDIFontWeight(logFont->lfWeight, procData->m_familyName)) { 555 case FW_THIN: 556 weight = FontSelectionValue(100); 557 break; 558 case FW_EXTRALIGHT: 559 weight = FontSelectionValue(200); 560 break; 561 case FW_LIGHT: 562 weight = FontSelectionValue(300); 563 break; 564 case FW_NORMAL: 565 weight = FontSelectionValue(400); 566 break; 567 case FW_MEDIUM: 568 weight = FontSelectionValue(500); 569 break; 570 case FW_SEMIBOLD: 571 weight = FontSelectionValue(600); 572 break; 573 case FW_BOLD: 574 weight = FontSelectionValue(700); 575 break; 576 case FW_EXTRABOLD: 577 weight = FontSelectionValue(800); 578 break; 579 default: 580 weight = FontSelectionValue(900); 581 break; 582 } 583 584 FontSelectionValue stretch = normalStretchValue(); 585 586 FontSelectionCapabilities result; 587 result.weight = FontSelectionRange(weight, weight); 588 result.width = FontSelectionRange(stretch, stretch); 589 result.slope = FontSelectionRange(italic, italic); 590 procData->m_capabilities.append(WTFMove(result)); 559 591 return 1; 560 592 } 561 593 562 auto FontCache::getTraitsAndStretchInFamily(const AtomicString& familyName) -> Vector<TraitsAndStretch> 594 Vector<FontSelectionCapabilities> FontCache::getFontSelectionCapabilitiesInFamily(const AtomicString& familyName) 563 595 { 564 596 HWndDC hdc(0); … … 573 605 TraitsInFamilyProcData procData(familyName); 574 606 EnumFontFamiliesEx(hdc, &logFont, traitsInFamilyEnumProc, reinterpret_cast<LPARAM>(&procData), 0); 575 Vector< TraitsAndStretch> result;576 result.reserveInitialCapacity(procData.m_ traitsMasks.size());577 for ( unsigned mask : procData.m_traitsMasks)578 result.uncheckedAppend( { static_cast<FontTraitsMask>(mask), FontSelectionRange(FontSelectionValue(), FontSelectionValue()) });607 Vector<FontSelectionCapabilities> result; 608 result.reserveInitialCapacity(procData.m_capabilities.size()); 609 for (auto capabilities : procData.m_capabilities) 610 result.uncheckedAppend(capabilities); 579 611 return result; 580 612 } -
trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
r212399 r213464 150 150 fontDescription.setSpecifiedSize(m_baseFontSize); 151 151 fontDescription.setComputedSize(m_baseFontSize); 152 fontDescription.setWeight(Font Weight500);152 fontDescription.setWeight(FontSelectionValue(500)); 153 153 154 154 m_timeFont = FontCascade(fontDescription, 0, 0); -
trunk/Source/WebCore/platform/text/TextFlags.h
r213436 r213464 341 341 COMPILE_ASSERT(!(LastFontWidthVariant >> FontWidthVariantWidth), FontWidthVariantWidth_is_correct); 342 342 343 enum FontWeight {344 FontWeight100,345 FontWeight200,346 FontWeight300,347 FontWeight400,348 FontWeight500,349 FontWeight600,350 FontWeight700,351 FontWeight800,352 FontWeight900,353 FontWeightNormal = FontWeight400,354 FontWeightBold = FontWeight700355 };356 357 enum FontItalic {358 FontItalicOff = 0,359 FontItalicOn = 1360 };361 362 343 enum FontSmallCaps { 363 344 FontSmallCapsOff = 0, … … 365 346 }; 366 347 367 enum {368 FontStyleNormalBit = 0,369 FontStyleItalicBit,370 FontWeight100Bit,371 FontWeight200Bit,372 FontWeight300Bit,373 FontWeight400Bit,374 FontWeight500Bit,375 FontWeight600Bit,376 FontWeight700Bit,377 FontWeight800Bit,378 FontWeight900Bit,379 FontTraitsMaskWidth380 };381 382 enum FontTraitsMask {383 FontStyleNormalMask = 1 << FontStyleNormalBit,384 FontStyleItalicMask = 1 << FontStyleItalicBit,385 FontStyleMask = FontStyleNormalMask | FontStyleItalicMask,386 387 FontWeight100Mask = 1 << FontWeight100Bit,388 FontWeight200Mask = 1 << FontWeight200Bit,389 FontWeight300Mask = 1 << FontWeight300Bit,390 FontWeight400Mask = 1 << FontWeight400Bit,391 FontWeight500Mask = 1 << FontWeight500Bit,392 FontWeight600Mask = 1 << FontWeight600Bit,393 FontWeight700Mask = 1 << FontWeight700Bit,394 FontWeight800Mask = 1 << FontWeight800Bit,395 FontWeight900Mask = 1 << FontWeight900Bit,396 FontWeightMask = FontWeight100Mask | FontWeight200Mask | FontWeight300Mask | FontWeight400Mask | FontWeight500Mask | FontWeight600Mask | FontWeight700Mask | FontWeight800Mask | FontWeight900Mask397 };398 399 348 enum class Kerning { 400 349 Auto, -
trunk/Source/WebCore/platform/win/DragImageWin.cpp
r212669 r213464 112 112 113 113 FontCascadeDescription description; 114 description.setWeight(bold ? FontWeightBold : FontWeightNormal);114 description.setWeight(bold ? boldWeightValue() : normalWeightValue()); 115 115 description.setOneFamily(metrics.lfSmCaptionFont.lfFaceName); 116 116 description.setSpecifiedSize((float)size); -
trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp
r211033 r213464 353 353 FontCascadeDescription fontDescription; 354 354 RenderTheme::defaultTheme()->systemFont(CSSValueWebkitSmallControl, fontDescription); 355 fontDescription.setWeight( FontWeightBold);355 fontDescription.setWeight(boldWeightValue()); 356 356 fontDescription.setRenderingMode(settings().fontRenderingMode()); 357 357 fontDescription.setComputedSize(12); -
trunk/Source/WebCore/rendering/RenderThemeGtk.cpp
r210758 r213464 111 111 fontDescription.setSpecifiedSize(size); 112 112 fontDescription.setIsAbsoluteSize(true); 113 fontDescription.setWeight( FontWeightNormal);114 fontDescription.setItalic(Font ItalicOff);113 fontDescription.setWeight(normalWeightValue()); 114 fontDescription.setItalic(FontSelectionValue()); 115 115 pango_font_description_free(pangoDescription); 116 116 } -
trunk/Source/WebCore/rendering/RenderThemeIOS.mm
r210959 r213464 1274 1274 ASSERT(fontDescriptor); 1275 1275 RetainPtr<CTFontRef> font = adoptCF(CTFontCreateWithFontDescriptor(fontDescriptor.get(), 0, nullptr)); 1276 font = preparePlatformFont(font.get(), fontDescription.textRenderingMode(), nullptr, nullptr, fontDescription.featureSettings(), fontDescription.variantSettings(), fontDescription.variationSettings());1277 1276 fontDescription.setIsAbsoluteSize(true); 1278 1277 fontDescription.setOneFamily(textStyle); 1279 1278 fontDescription.setSpecifiedSize(CTFontGetSize(font.get())); 1280 fontDescription.setWeight(fontWeightFromCoreText(FontCache::weightOfCTFont(font.get()))); 1281 fontDescription.setItalic(FontItalicOff); 1279 auto capabilities = capabilitiesForFontDescriptor(adoptCF(CTFontCopyFontDescriptor(font.get())).get()); 1280 fontDescription.setWeight(capabilities.weight.minimum); 1281 fontDescription.setItalic(normalItalicValue()); 1282 1282 } 1283 1283 -
trunk/Source/WebCore/rendering/RenderThemeMac.mm
r212985 r213464 358 358 } 359 359 360 static Font WeighttoFontWeight(NSInteger appKitFontWeight)360 static FontSelectionValue toFontWeight(NSInteger appKitFontWeight) 361 361 { 362 362 ASSERT(appKitFontWeight > 0 && appKitFontWeight < 15); … … 366 366 appKitFontWeight = 1; 367 367 368 static const Font WeightfontWeights[] = {369 Font Weight100,370 Font Weight100,371 Font Weight200,372 Font Weight300,373 Font Weight400,374 Font Weight500,375 Font Weight600,376 Font Weight600,377 Font Weight700,378 Font Weight800,379 Font Weight800,380 Font Weight900,381 Font Weight900,382 Font Weight900368 static const FontSelectionValue fontWeights[] = { 369 FontSelectionValue(100), 370 FontSelectionValue(100), 371 FontSelectionValue(200), 372 FontSelectionValue(300), 373 FontSelectionValue(400), 374 FontSelectionValue(500), 375 FontSelectionValue(600), 376 FontSelectionValue(600), 377 FontSelectionValue(700), 378 FontSelectionValue(800), 379 FontSelectionValue(800), 380 FontSelectionValue(900), 381 FontSelectionValue(900), 382 FontSelectionValue(900) 383 383 }; 384 384 return fontWeights[appKitFontWeight - 1]; -
trunk/Source/WebCore/rendering/RenderThemeWin.cpp
r207814 r213464 325 325 fontDescription.setOneFamily(String(logFont.lfFaceName)); 326 326 fontDescription.setSpecifiedSize(fontSize); 327 fontDescription.setWeight(logFont.lfWeight >= 700 ? FontWeightBold : FontWeightNormal); // FIXME: Use real weight.327 fontDescription.setWeight(logFont.lfWeight >= 700 ? boldWeightValue() : normalWeightValue()); // FIXME: Use real weight. 328 328 fontDescription.setIsItalic(logFont.lfItalic); 329 329 } -
trunk/Source/WebKit/mac/ChangeLog
r213410 r213464 1 2017-03-06 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Expand font-weight and font-stretch to take any number 4 https://bugs.webkit.org/show_bug.cgi?id=168889 5 6 Reviewed by Simon Fraser. 7 8 Migrate off old enum types. 9 10 * WebCoreSupport/PopupMenuMac.mm: 11 (PopupMenuMac::populate): 12 * WebView/WebHTMLView.mm: 13 (fontNameForDescription): 14 * WebView/WebView.mm: 15 (-[WebView updateTextTouchBar]): 16 1 17 2017-03-03 Dean Jackson <dino@apple.com> 2 18 -
trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm
r208455 r213464 85 85 if (!font) { 86 86 CGFloat size = style.font().primaryFont().platformData().size(); 87 font = adoptCF(CTFontCreateUIFontForLanguage( style.font().weight() < FontWeightBold ? kCTFontUIFontSystem : kCTFontUIFontEmphasizedSystem, size, nullptr));87 font = adoptCF(CTFontCreateUIFontForLanguage(isFontWeightBold(style.font().weight()) ? kCTFontUIFontEmphasizedSystem : kCTFontUIFontSystem, size, nullptr)); 88 88 } 89 89 [attributes setObject:toNSFont(font.get()) forKey:NSFontAttributeName]; -
trunk/Source/WebKit/mac/WebView/WebHTMLView.mm
r212697 r213464 5630 5630 FontDescription fontDescription; 5631 5631 fontDescription.setIsItalic(italic); 5632 fontDescription.setWeight(bold ? Font Weight900 : FontWeight500);5632 fontDescription.setWeight(bold ? FontSelectionValue(900) : FontSelectionValue(500)); 5633 5633 RefPtr<Font> font = FontCache::singleton().fontForFamily(fontDescription, familyName); 5634 5634 return adoptCF(CTFontCopyPostScriptName(font->getCTFont())); -
trunk/Source/WebKit/mac/WebView/WebView.mm
r213410 r213464 9619 9619 Node* nodeToRemove; 9620 9620 if (auto* style = Editor::styleForSelectionStart(coreFrame, nodeToRemove)) { 9621 [_private->_textTouchBarItemController setTextIsBold: (style->fontCascade().weight() >= FontWeightBold)];9622 [_private->_textTouchBarItemController setTextIsItalic: (style->fontCascade().italic() == FontItalicOn)];9621 [_private->_textTouchBarItemController setTextIsBold:isFontWeightBold(style->fontCascade().weight())]; 9622 [_private->_textTouchBarItemController setTextIsItalic:isItalic(style->fontCascade().italic())]; 9623 9623 9624 9624 RefPtr<EditingStyle> typingStyle = coreFrame->selection().typingStyle(); -
trunk/Source/WebKit/win/ChangeLog
r213355 r213464 1 2017-03-06 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Expand font-weight and font-stretch to take any number 4 https://bugs.webkit.org/show_bug.cgi?id=168889 5 6 Reviewed by Simon Fraser. 7 8 Migrate off old enum types. 9 10 * WebKitGraphics.cpp: 11 (makeFont): 12 1 13 2017-03-02 Sam Weinig <sam@webkit.org> 2 14 -
trunk/Source/WebKit/win/DOMCoreClasses.cpp
r208603 r213464 1295 1295 webFontDescription->familyLength = family.length(); 1296 1296 webFontDescription->size = fontDescription.computedSize(); 1297 webFontDescription->bold = fontDescription.weight() >= WebCore::FontWeight600;1297 webFontDescription->bold = isFontWeightBold(fontDescription.weight()); 1298 1298 webFontDescription->italic = fontDescription.italic(); 1299 1299 -
trunk/Source/WebKit/win/WebKitGraphics.cpp
r195180 r213464 58 58 f.setComputedSize(description.size); 59 59 f.setIsItalic(description.italic); 60 f.setWeight(description.bold ? FontWeightBold : FontWeightNormal);60 f.setWeight(description.bold ? boldWeightValue() : normalWeightValue()); 61 61 f.setIsAbsoluteSize(true); 62 62 -
trunk/Source/WebKit2/ChangeLog
r213444 r213464 1 2017-03-06 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Expand font-weight and font-stretch to take any number 4 https://bugs.webkit.org/show_bug.cgi?id=168889 5 6 Reviewed by Simon Fraser. 7 8 Migrate off old enum types. 9 10 * WebProcess/WebPage/WebPage.cpp: 11 (WebKit::WebPage::editorState): 12 1 13 2017-03-06 Andreas Kling <akling@apple.com> 2 14 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r213410 r213464 832 832 Node* nodeToRemove; 833 833 if (auto* style = Editor::styleForSelectionStart(&frame, nodeToRemove)) { 834 if ( style->fontCascade().weight() >= FontWeightBold)834 if (isFontWeightBold(style->fontCascade().weight())) 835 835 postLayoutData.typingAttributes |= AttributeBold; 836 if ( style->fontCascade().italic() == FontItalicOn)836 if (isItalic(style->fontCascade().italic())) 837 837 postLayoutData.typingAttributes |= AttributeItalics; 838 838 -
trunk/Tools/ChangeLog
r213450 r213464 1 2017-03-06 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Expand font-weight and font-stretch to take any number 4 https://bugs.webkit.org/show_bug.cgi?id=168889 5 6 Reviewed by Simon Fraser. 7 8 Migrate off old enum types. 9 10 * TestWebKitAPI/Tests/WebCore/FontCache.cpp: 11 (TestWebKitAPI::createPlatformFont): 12 (TestWebKitAPI::compareFonts): 13 (TestWebKitAPI::TEST_F): 14 1 15 2017-03-06 Yusuke Suzuki <utatane.tea@gmail.com> 2 16 -
trunk/Tools/TestWebKitAPI/Tests/WebCore/FontCache.cpp
r213341 r213464 50 50 }; 51 51 52 static std::unique_ptr<FontPlatformData> createPlatformFont(const char* familyName, FontWeight weight, FontItalicitalic, float stretch, float size)52 static std::unique_ptr<FontPlatformData> createPlatformFont(const char* familyName, float weight, float italic, float stretch, float size) 53 53 { 54 54 AtomicString familyNameString(familyName); 55 55 FontCascadeDescription description; 56 56 description.setOneFamily(familyNameString); 57 description.setWeight( weight);58 description.setItalic( italic);57 description.setWeight(FontSelectionValue(weight)); 58 description.setItalic(FontSelectionValue(italic)); 59 59 description.setStretch(FontSelectionValue(stretch)); 60 60 description.setComputedSize(size); … … 64 64 } 65 65 66 static bool compareFonts(const char* familyName, FontWeight weight, FontItalicitalic, float stretch, CFStringRef expectedPostScriptName)66 static bool compareFonts(const char* familyName, float weight, float italic, float stretch, CFStringRef expectedPostScriptName) 67 67 { 68 68 float size = 80; … … 74 74 TEST_F(FontCacheTest, FontLookupFromFamilyName) 75 75 { 76 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Thin")));77 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));78 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-UltraLight")));79 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));80 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Light")));81 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));82 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Regular")));83 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));84 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Medium")));85 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));86 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));87 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));88 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));89 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));90 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));91 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));92 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));93 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));94 EXPECT_TRUE(compareFonts("Arial", FontWeight100, FontItalicOff, 100, CFSTR("ArialMT")));95 EXPECT_TRUE(compareFonts("Arial", FontWeight100, FontItalicOn, 100, CFSTR("Arial-ItalicMT")));96 EXPECT_TRUE(compareFonts("Arial", FontWeight200, FontItalicOff, 100, CFSTR("ArialMT")));97 EXPECT_TRUE(compareFonts("Arial", FontWeight200, FontItalicOn, 100, CFSTR("Arial-ItalicMT")));98 EXPECT_TRUE(compareFonts("Arial", FontWeight300, FontItalicOff, 100, CFSTR("ArialMT")));99 EXPECT_TRUE(compareFonts("Arial", FontWeight300, FontItalicOn, 100, CFSTR("Arial-ItalicMT")));100 EXPECT_TRUE(compareFonts("Arial", FontWeight400, FontItalicOff, 100, CFSTR("ArialMT")));101 EXPECT_TRUE(compareFonts("Arial", FontWeight400, FontItalicOn, 100, CFSTR("Arial-ItalicMT")));102 EXPECT_TRUE(compareFonts("Arial", FontWeight500, FontItalicOff, 100, CFSTR("ArialMT")));103 EXPECT_TRUE(compareFonts("Arial", FontWeight500, FontItalicOn, 100, CFSTR("Arial-ItalicMT")));104 EXPECT_TRUE(compareFonts("Arial", FontWeight600, FontItalicOff, 100, CFSTR("Arial-BoldMT")));105 EXPECT_TRUE(compareFonts("Arial", FontWeight600, FontItalicOn, 100, CFSTR("Arial-BoldItalicMT")));106 EXPECT_TRUE(compareFonts("Arial", FontWeight700, FontItalicOff, 100, CFSTR("Arial-BoldMT")));107 EXPECT_TRUE(compareFonts("Arial", FontWeight700, FontItalicOn, 100, CFSTR("Arial-BoldItalicMT")));108 EXPECT_TRUE(compareFonts("Arial", FontWeight800, FontItalicOff, 100, CFSTR("Arial-BoldMT")));109 EXPECT_TRUE(compareFonts("Arial", FontWeight800, FontItalicOn, 100, CFSTR("Arial-BoldItalicMT")));110 EXPECT_TRUE(compareFonts("Arial", FontWeight900, FontItalicOff, 100, CFSTR("Arial-BoldMT")));111 EXPECT_TRUE(compareFonts("Arial", FontWeight900, FontItalicOn, 100, CFSTR("Arial-BoldItalicMT")));112 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));113 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));114 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));115 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));116 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));117 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));118 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-Regular")));119 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));120 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-Medium")));121 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));122 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));123 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));124 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));125 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));126 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));127 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));128 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));129 EXPECT_TRUE(compareFonts("Avenir Next", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));130 EXPECT_TRUE(compareFonts("Avenir", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Light")));131 EXPECT_TRUE(compareFonts("Avenir", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));132 EXPECT_TRUE(compareFonts("Avenir", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Light")));133 EXPECT_TRUE(compareFonts("Avenir", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));134 EXPECT_TRUE(compareFonts("Avenir", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Light")));135 EXPECT_TRUE(compareFonts("Avenir", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));136 EXPECT_TRUE(compareFonts("Avenir", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Book")));137 EXPECT_TRUE(compareFonts("Avenir", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));138 EXPECT_TRUE(compareFonts("Avenir", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Medium")));139 EXPECT_TRUE(compareFonts("Avenir", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));140 EXPECT_TRUE(compareFonts("Avenir", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));141 EXPECT_TRUE(compareFonts("Avenir", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));142 EXPECT_TRUE(compareFonts("Avenir", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));143 EXPECT_TRUE(compareFonts("Avenir", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));144 EXPECT_TRUE(compareFonts("Avenir", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));145 EXPECT_TRUE(compareFonts("Avenir", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));146 EXPECT_TRUE(compareFonts("Avenir", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));147 EXPECT_TRUE(compareFonts("Avenir", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));148 EXPECT_TRUE(compareFonts("Baskerville", FontWeight100, FontItalicOff, 100, CFSTR("Baskerville")));149 EXPECT_TRUE(compareFonts("Baskerville", FontWeight100, FontItalicOn, 100, CFSTR("Baskerville-Italic")));150 EXPECT_TRUE(compareFonts("Baskerville", FontWeight200, FontItalicOff, 100, CFSTR("Baskerville")));151 EXPECT_TRUE(compareFonts("Baskerville", FontWeight200, FontItalicOn, 100, CFSTR("Baskerville-Italic")));152 EXPECT_TRUE(compareFonts("Baskerville", FontWeight300, FontItalicOff, 100, CFSTR("Baskerville")));153 EXPECT_TRUE(compareFonts("Baskerville", FontWeight300, FontItalicOn, 100, CFSTR("Baskerville-Italic")));154 EXPECT_TRUE(compareFonts("Baskerville", FontWeight400, FontItalicOff, 100, CFSTR("Baskerville")));155 EXPECT_TRUE(compareFonts("Baskerville", FontWeight400, FontItalicOn, 100, CFSTR("Baskerville-Italic")));156 EXPECT_TRUE(compareFonts("Baskerville", FontWeight500, FontItalicOff, 100, CFSTR("Baskerville")));157 EXPECT_TRUE(compareFonts("Baskerville", FontWeight500, FontItalicOn, 100, CFSTR("Baskerville-Italic")));158 EXPECT_TRUE(compareFonts("Baskerville", FontWeight600, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));159 EXPECT_TRUE(compareFonts("Baskerville", FontWeight600, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));160 EXPECT_TRUE(compareFonts("Baskerville", FontWeight700, FontItalicOff, 100, CFSTR("Baskerville-Bold")));161 EXPECT_TRUE(compareFonts("Baskerville", FontWeight700, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));162 EXPECT_TRUE(compareFonts("Baskerville", FontWeight800, FontItalicOff, 100, CFSTR("Baskerville-Bold")));163 EXPECT_TRUE(compareFonts("Baskerville", FontWeight800, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));164 EXPECT_TRUE(compareFonts("Baskerville", FontWeight900, FontItalicOff, 100, CFSTR("Baskerville-Bold")));165 EXPECT_TRUE(compareFonts("Baskerville", FontWeight900, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));166 EXPECT_TRUE(compareFonts("Didot", FontWeight100, FontItalicOff, 100, CFSTR("Didot")));167 EXPECT_TRUE(compareFonts("Didot", FontWeight100, FontItalicOn, 100, CFSTR("Didot-Italic")));168 EXPECT_TRUE(compareFonts("Didot", FontWeight200, FontItalicOff, 100, CFSTR("Didot")));169 EXPECT_TRUE(compareFonts("Didot", FontWeight200, FontItalicOn, 100, CFSTR("Didot-Italic")));170 EXPECT_TRUE(compareFonts("Didot", FontWeight300, FontItalicOff, 100, CFSTR("Didot")));171 EXPECT_TRUE(compareFonts("Didot", FontWeight300, FontItalicOn, 100, CFSTR("Didot-Italic")));172 EXPECT_TRUE(compareFonts("Didot", FontWeight400, FontItalicOff, 100, CFSTR("Didot")));173 EXPECT_TRUE(compareFonts("Didot", FontWeight400, FontItalicOn, 100, CFSTR("Didot-Italic")));174 EXPECT_TRUE(compareFonts("Didot", FontWeight500, FontItalicOff, 100, CFSTR("Didot")));175 EXPECT_TRUE(compareFonts("Didot", FontWeight500, FontItalicOn, 100, CFSTR("Didot-Italic")));176 EXPECT_TRUE(compareFonts("Didot", FontWeight600, FontItalicOff, 100, CFSTR("Didot-Bold")));177 EXPECT_TRUE(compareFonts("Didot", FontWeight600, FontItalicOn, 100, CFSTR("Didot-Italic")));178 EXPECT_TRUE(compareFonts("Didot", FontWeight700, FontItalicOff, 100, CFSTR("Didot-Bold")));179 EXPECT_TRUE(compareFonts("Didot", FontWeight700, FontItalicOn, 100, CFSTR("Didot-Italic")));180 EXPECT_TRUE(compareFonts("Didot", FontWeight800, FontItalicOff, 100, CFSTR("Didot-Bold")));181 EXPECT_TRUE(compareFonts("Didot", FontWeight800, FontItalicOn, 100, CFSTR("Didot-Italic")));182 EXPECT_TRUE(compareFonts("Didot", FontWeight900, FontItalicOff, 100, CFSTR("Didot-Bold")));183 EXPECT_TRUE(compareFonts("Didot", FontWeight900, FontItalicOn, 100, CFSTR("Didot-Italic")));184 EXPECT_TRUE(compareFonts("Futura", FontWeight100, FontItalicOff, 100, CFSTR("Futura-Medium")));185 EXPECT_TRUE(compareFonts("Futura", FontWeight100, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));186 EXPECT_TRUE(compareFonts("Futura", FontWeight200, FontItalicOff, 100, CFSTR("Futura-Medium")));187 EXPECT_TRUE(compareFonts("Futura", FontWeight200, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));188 EXPECT_TRUE(compareFonts("Futura", FontWeight300, FontItalicOff, 100, CFSTR("Futura-Medium")));189 EXPECT_TRUE(compareFonts("Futura", FontWeight300, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));190 EXPECT_TRUE(compareFonts("Futura", FontWeight400, FontItalicOff, 100, CFSTR("Futura-Medium")));191 EXPECT_TRUE(compareFonts("Futura", FontWeight400, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));192 EXPECT_TRUE(compareFonts("Futura", FontWeight500, FontItalicOff, 100, CFSTR("Futura-Medium")));193 EXPECT_TRUE(compareFonts("Futura", FontWeight500, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));194 EXPECT_TRUE(compareFonts("Futura", FontWeight600, FontItalicOff, 100, CFSTR("Futura-Bold")));195 EXPECT_TRUE(compareFonts("Futura", FontWeight600, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));196 EXPECT_TRUE(compareFonts("Futura", FontWeight700, FontItalicOff, 100, CFSTR("Futura-Bold")));197 EXPECT_TRUE(compareFonts("Futura", FontWeight700, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));198 EXPECT_TRUE(compareFonts("Futura", FontWeight800, FontItalicOff, 100, CFSTR("Futura-Bold")));199 EXPECT_TRUE(compareFonts("Futura", FontWeight800, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));200 EXPECT_TRUE(compareFonts("Futura", FontWeight900, FontItalicOff, 100, CFSTR("Futura-Bold")));201 EXPECT_TRUE(compareFonts("Futura", FontWeight900, FontItalicOn, 100, CFSTR("Futura-MediumItalic")));202 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight100, FontItalicOff, 100, CFSTR("HelveticaNeue-UltraLight")));203 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight100, FontItalicOn, 100, CFSTR("HelveticaNeue-UltraLightItalic")));204 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight200, FontItalicOff, 100, CFSTR("HelveticaNeue-Thin")));205 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight200, FontItalicOn, 100, CFSTR("HelveticaNeue-ThinItalic")));206 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight300, FontItalicOff, 100, CFSTR("HelveticaNeue-Light")));207 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight300, FontItalicOn, 100, CFSTR("HelveticaNeue-LightItalic")));208 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight400, FontItalicOff, 100, CFSTR("HelveticaNeue")));209 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight400, FontItalicOn, 100, CFSTR("HelveticaNeue-Italic")));210 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight500, FontItalicOff, 100, CFSTR("HelveticaNeue-Medium")));211 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight500, FontItalicOn, 100, CFSTR("HelveticaNeue-MediumItalic")));212 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight600, FontItalicOff, 100, CFSTR("HelveticaNeue-Bold")));213 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight600, FontItalicOn, 100, CFSTR("HelveticaNeue-BoldItalic")));214 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight700, FontItalicOff, 100, CFSTR("HelveticaNeue-Bold")));215 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight700, FontItalicOn, 100, CFSTR("HelveticaNeue-BoldItalic")));216 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight800, FontItalicOff, 100, CFSTR("HelveticaNeue-Bold")));217 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight800, FontItalicOn, 100, CFSTR("HelveticaNeue-BoldItalic")));218 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight900, FontItalicOff, 100, CFSTR("HelveticaNeue-Bold")));219 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight900, FontItalicOn, 100, CFSTR("HelveticaNeue-BoldItalic")));220 EXPECT_TRUE(compareFonts("Helvetica", FontWeight100, FontItalicOff, 100, CFSTR("Helvetica-Light")));221 EXPECT_TRUE(compareFonts("Helvetica", FontWeight100, FontItalicOn, 100, CFSTR("Helvetica-LightOblique")));222 EXPECT_TRUE(compareFonts("Helvetica", FontWeight200, FontItalicOff, 100, CFSTR("Helvetica-Light")));223 EXPECT_TRUE(compareFonts("Helvetica", FontWeight200, FontItalicOn, 100, CFSTR("Helvetica-LightOblique")));224 EXPECT_TRUE(compareFonts("Helvetica", FontWeight300, FontItalicOff, 100, CFSTR("Helvetica-Light")));225 EXPECT_TRUE(compareFonts("Helvetica", FontWeight300, FontItalicOn, 100, CFSTR("Helvetica-LightOblique")));226 EXPECT_TRUE(compareFonts("Helvetica", FontWeight400, FontItalicOff, 100, CFSTR("Helvetica")));227 EXPECT_TRUE(compareFonts("Helvetica", FontWeight400, FontItalicOn, 100, CFSTR("Helvetica-Oblique")));228 EXPECT_TRUE(compareFonts("Helvetica", FontWeight500, FontItalicOff, 100, CFSTR("Helvetica")));229 EXPECT_TRUE(compareFonts("Helvetica", FontWeight500, FontItalicOn, 100, CFSTR("Helvetica-Oblique")));230 EXPECT_TRUE(compareFonts("Helvetica", FontWeight600, FontItalicOff, 100, CFSTR("Helvetica-Bold")));231 EXPECT_TRUE(compareFonts("Helvetica", FontWeight600, FontItalicOn, 100, CFSTR("Helvetica-BoldOblique")));232 EXPECT_TRUE(compareFonts("Helvetica", FontWeight700, FontItalicOff, 100, CFSTR("Helvetica-Bold")));233 EXPECT_TRUE(compareFonts("Helvetica", FontWeight700, FontItalicOn, 100, CFSTR("Helvetica-BoldOblique")));234 EXPECT_TRUE(compareFonts("Helvetica", FontWeight800, FontItalicOff, 100, CFSTR("Helvetica-Bold")));235 EXPECT_TRUE(compareFonts("Helvetica", FontWeight800, FontItalicOn, 100, CFSTR("Helvetica-BoldOblique")));236 EXPECT_TRUE(compareFonts("Helvetica", FontWeight900, FontItalicOff, 100, CFSTR("Helvetica-Bold")));237 EXPECT_TRUE(compareFonts("Helvetica", FontWeight900, FontItalicOn, 100, CFSTR("Helvetica-BoldOblique")));238 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight100, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));239 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight100, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));240 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight200, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));241 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight200, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));242 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight300, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));243 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight300, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));244 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight400, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));245 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight400, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));246 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight500, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));247 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight500, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));248 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight600, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));249 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight600, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));250 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight700, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));251 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight700, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));252 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight800, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));253 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight800, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));254 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight900, FontItalicOff, 100, CFSTR("HiraKakuStdN-W8")));255 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", FontWeight900, FontItalicOn, 100, CFSTR("HiraKakuStdN-W8")));256 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight100, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));257 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight100, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));258 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight200, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));259 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight200, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));260 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight300, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));261 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight300, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));262 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight400, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));263 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight400, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));264 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight500, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));265 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight500, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));266 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight600, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));267 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight600, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));268 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight700, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));269 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight700, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));270 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight800, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));271 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight800, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));272 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight900, FontItalicOff, 100, CFSTR("HiraMaruProN-W4")));273 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", FontWeight900, FontItalicOn, 100, CFSTR("HiraMaruProN-W4")));274 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight100, FontItalicOff, 100, CFSTR("HiraMinProN-W3")));275 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight100, FontItalicOn, 100, CFSTR("HiraMinProN-W3")));276 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight200, FontItalicOff, 100, CFSTR("HiraMinProN-W3")));277 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight200, FontItalicOn, 100, CFSTR("HiraMinProN-W3")));278 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight300, FontItalicOff, 100, CFSTR("HiraMinProN-W3")));279 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight300, FontItalicOn, 100, CFSTR("HiraMinProN-W3")));280 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight400, FontItalicOff, 100, CFSTR("HiraMinProN-W3")));281 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight400, FontItalicOn, 100, CFSTR("HiraMinProN-W3")));282 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight500, FontItalicOff, 100, CFSTR("HiraMinProN-W3")));283 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight500, FontItalicOn, 100, CFSTR("HiraMinProN-W3")));284 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight600, FontItalicOff, 100, CFSTR("HiraMinProN-W6")));285 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight600, FontItalicOn, 100, CFSTR("HiraMinProN-W6")));286 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight700, FontItalicOff, 100, CFSTR("HiraMinProN-W6")));287 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight700, FontItalicOn, 100, CFSTR("HiraMinProN-W6")));288 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight800, FontItalicOff, 100, CFSTR("HiraMinProN-W6")));289 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight800, FontItalicOn, 100, CFSTR("HiraMinProN-W6")));290 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight900, FontItalicOff, 100, CFSTR("HiraMinProN-W6")));291 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", FontWeight900, FontItalicOn, 100, CFSTR("HiraMinProN-W6")));292 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight100, FontItalicOff, 100, CFSTR("HiraginoSansGB-W3")));293 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight100, FontItalicOn, 100, CFSTR("HiraginoSansGB-W3")));294 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight200, FontItalicOff, 100, CFSTR("HiraginoSansGB-W3")));295 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight200, FontItalicOn, 100, CFSTR("HiraginoSansGB-W3")));296 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight300, FontItalicOff, 100, CFSTR("HiraginoSansGB-W3")));297 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight300, FontItalicOn, 100, CFSTR("HiraginoSansGB-W3")));298 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight400, FontItalicOff, 100, CFSTR("HiraginoSansGB-W3")));299 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight400, FontItalicOn, 100, CFSTR("HiraginoSansGB-W3")));300 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight500, FontItalicOff, 100, CFSTR("HiraginoSansGB-W3")));301 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight500, FontItalicOn, 100, CFSTR("HiraginoSansGB-W3")));302 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight600, FontItalicOff, 100, CFSTR("HiraginoSansGB-W6")));303 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight600, FontItalicOn, 100, CFSTR("HiraginoSansGB-W6")));304 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight700, FontItalicOff, 100, CFSTR("HiraginoSansGB-W6")));305 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight700, FontItalicOn, 100, CFSTR("HiraginoSansGB-W6")));306 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight800, FontItalicOff, 100, CFSTR("HiraginoSansGB-W6")));307 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight800, FontItalicOn, 100, CFSTR("HiraginoSansGB-W6")));308 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight900, FontItalicOff, 100, CFSTR("HiraginoSansGB-W6")));309 EXPECT_TRUE(compareFonts("Hiragino Sans GB", FontWeight900, FontItalicOn, 100, CFSTR("HiraginoSansGB-W6")));310 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight100, FontItalicOff, 100, CFSTR("HiraginoSans-W0")));311 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight100, FontItalicOn, 100, CFSTR("HiraginoSans-W0")));312 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight200, FontItalicOff, 100, CFSTR("HiraginoSans-W1")));313 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight200, FontItalicOn, 100, CFSTR("HiraginoSans-W1")));314 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight300, FontItalicOff, 100, CFSTR("HiraginoSans-W3")));315 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight300, FontItalicOn, 100, CFSTR("HiraginoSans-W3")));316 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight400, FontItalicOff, 100, CFSTR("HiraginoSans-W4")));317 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight400, FontItalicOn, 100, CFSTR("HiraginoSans-W4")));318 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight500, FontItalicOff, 100, CFSTR("HiraginoSans-W5")));319 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight500, FontItalicOn, 100, CFSTR("HiraginoSans-W5")));320 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight600, FontItalicOff, 100, CFSTR("HiraginoSans-W6")));321 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight600, FontItalicOn, 100, CFSTR("HiraginoSans-W6")));322 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight700, FontItalicOff, 100, CFSTR("HiraginoSans-W7")));323 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight700, FontItalicOn, 100, CFSTR("HiraginoSans-W7")));324 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight800, FontItalicOff, 100, CFSTR("HiraginoSans-W8")));325 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight800, FontItalicOn, 100, CFSTR("HiraginoSans-W8")));326 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight900, FontItalicOff, 100, CFSTR("HiraginoSans-W9")));327 EXPECT_TRUE(compareFonts("Hiragino Sans", FontWeight900, FontItalicOn, 100, CFSTR("HiraginoSans-W9")));328 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight100, FontItalicOff, 100, CFSTR("HoeflerText-Regular")));329 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight100, FontItalicOn, 100, CFSTR("HoeflerText-Italic")));330 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight200, FontItalicOff, 100, CFSTR("HoeflerText-Regular")));331 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight200, FontItalicOn, 100, CFSTR("HoeflerText-Italic")));332 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight300, FontItalicOff, 100, CFSTR("HoeflerText-Regular")));333 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight300, FontItalicOn, 100, CFSTR("HoeflerText-Italic")));334 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight400, FontItalicOff, 100, CFSTR("HoeflerText-Regular")));335 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight400, FontItalicOn, 100, CFSTR("HoeflerText-Italic")));336 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight500, FontItalicOff, 100, CFSTR("HoeflerText-Regular")));337 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight500, FontItalicOn, 100, CFSTR("HoeflerText-Italic")));338 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight600, FontItalicOff, 100, CFSTR("HoeflerText-Black")));339 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight600, FontItalicOn, 100, CFSTR("HoeflerText-BlackItalic")));340 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight700, FontItalicOff, 100, CFSTR("HoeflerText-Black")));341 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight700, FontItalicOn, 100, CFSTR("HoeflerText-BlackItalic")));342 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight800, FontItalicOff, 100, CFSTR("HoeflerText-Black")));343 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight800, FontItalicOn, 100, CFSTR("HoeflerText-BlackItalic")));344 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight900, FontItalicOff, 100, CFSTR("HoeflerText-Black")));345 EXPECT_TRUE(compareFonts("Hoefler Text", FontWeight900, FontItalicOn, 100, CFSTR("HoeflerText-BlackItalic")));346 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight100, FontItalicOff, 100, CFSTR("LucidaGrande")));347 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight100, FontItalicOn, 100, CFSTR("LucidaGrande")));348 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight200, FontItalicOff, 100, CFSTR("LucidaGrande")));349 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight200, FontItalicOn, 100, CFSTR("LucidaGrande")));350 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight300, FontItalicOff, 100, CFSTR("LucidaGrande")));351 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight300, FontItalicOn, 100, CFSTR("LucidaGrande")));352 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight400, FontItalicOff, 100, CFSTR("LucidaGrande")));353 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight400, FontItalicOn, 100, CFSTR("LucidaGrande")));354 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight500, FontItalicOff, 100, CFSTR("LucidaGrande")));355 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight500, FontItalicOn, 100, CFSTR("LucidaGrande")));356 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight600, FontItalicOff, 100, CFSTR("LucidaGrande-Bold")));357 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight600, FontItalicOn, 100, CFSTR("LucidaGrande-Bold")));358 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight700, FontItalicOff, 100, CFSTR("LucidaGrande-Bold")));359 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight700, FontItalicOn, 100, CFSTR("LucidaGrande-Bold")));360 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight800, FontItalicOff, 100, CFSTR("LucidaGrande-Bold")));361 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight800, FontItalicOn, 100, CFSTR("LucidaGrande-Bold")));362 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight900, FontItalicOff, 100, CFSTR("LucidaGrande-Bold")));363 EXPECT_TRUE(compareFonts("Lucida Grande", FontWeight900, FontItalicOn, 100, CFSTR("LucidaGrande-Bold")));364 EXPECT_TRUE(compareFonts("Optima", FontWeight100, FontItalicOff, 100, CFSTR("Optima-Regular")));365 EXPECT_TRUE(compareFonts("Optima", FontWeight100, FontItalicOn, 100, CFSTR("Optima-Italic")));366 EXPECT_TRUE(compareFonts("Optima", FontWeight200, FontItalicOff, 100, CFSTR("Optima-Regular")));367 EXPECT_TRUE(compareFonts("Optima", FontWeight200, FontItalicOn, 100, CFSTR("Optima-Italic")));368 EXPECT_TRUE(compareFonts("Optima", FontWeight300, FontItalicOff, 100, CFSTR("Optima-Regular")));369 EXPECT_TRUE(compareFonts("Optima", FontWeight300, FontItalicOn, 100, CFSTR("Optima-Italic")));370 EXPECT_TRUE(compareFonts("Optima", FontWeight400, FontItalicOff, 100, CFSTR("Optima-Regular")));371 EXPECT_TRUE(compareFonts("Optima", FontWeight400, FontItalicOn, 100, CFSTR("Optima-Italic")));372 EXPECT_TRUE(compareFonts("Optima", FontWeight500, FontItalicOff, 100, CFSTR("Optima-Regular")));373 EXPECT_TRUE(compareFonts("Optima", FontWeight500, FontItalicOn, 100, CFSTR("Optima-Italic")));374 EXPECT_TRUE(compareFonts("Optima", FontWeight600, FontItalicOff, 100, CFSTR("Optima-Bold")));375 EXPECT_TRUE(compareFonts("Optima", FontWeight600, FontItalicOn, 100, CFSTR("Optima-BoldItalic")));376 EXPECT_TRUE(compareFonts("Optima", FontWeight700, FontItalicOff, 100, CFSTR("Optima-Bold")));377 EXPECT_TRUE(compareFonts("Optima", FontWeight700, FontItalicOn, 100, CFSTR("Optima-BoldItalic")));378 EXPECT_TRUE(compareFonts("Optima", FontWeight800, FontItalicOff, 100, CFSTR("Optima-ExtraBlack")));379 EXPECT_TRUE(compareFonts("Optima", FontWeight800, FontItalicOn, 100, CFSTR("Optima-BoldItalic")));380 EXPECT_TRUE(compareFonts("Optima", FontWeight900, FontItalicOff, 100, CFSTR("Optima-ExtraBlack")));381 EXPECT_TRUE(compareFonts("Optima", FontWeight900, FontItalicOn, 100, CFSTR("Optima-BoldItalic")));382 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight100, FontItalicOff, 100, CFSTR("PingFangHK-Ultralight")));383 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight100, FontItalicOn, 100, CFSTR("PingFangHK-Ultralight")));384 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight200, FontItalicOff, 100, CFSTR("PingFangHK-Thin")));385 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight200, FontItalicOn, 100, CFSTR("PingFangHK-Thin")));386 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight300, FontItalicOff, 100, CFSTR("PingFangHK-Light")));387 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight300, FontItalicOn, 100, CFSTR("PingFangHK-Light")));388 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight400, FontItalicOff, 100, CFSTR("PingFangHK-Regular")));389 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight400, FontItalicOn, 100, CFSTR("PingFangHK-Regular")));390 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight500, FontItalicOff, 100, CFSTR("PingFangHK-Medium")));391 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight500, FontItalicOn, 100, CFSTR("PingFangHK-Medium")));392 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight600, FontItalicOff, 100, CFSTR("PingFangHK-Semibold")));393 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight600, FontItalicOn, 100, CFSTR("PingFangHK-Semibold")));394 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight700, FontItalicOff, 100, CFSTR("PingFangHK-Semibold")));395 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight700, FontItalicOn, 100, CFSTR("PingFangHK-Semibold")));396 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight800, FontItalicOff, 100, CFSTR("PingFangHK-Semibold")));397 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight800, FontItalicOn, 100, CFSTR("PingFangHK-Semibold")));398 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight900, FontItalicOff, 100, CFSTR("PingFangHK-Semibold")));399 EXPECT_TRUE(compareFonts("PingFang HK", FontWeight900, FontItalicOn, 100, CFSTR("PingFangHK-Semibold")));400 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight100, FontItalicOff, 100, CFSTR("PingFangSC-Ultralight")));401 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight100, FontItalicOn, 100, CFSTR("PingFangSC-Ultralight")));402 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight200, FontItalicOff, 100, CFSTR("PingFangSC-Thin")));403 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight200, FontItalicOn, 100, CFSTR("PingFangSC-Thin")));404 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight300, FontItalicOff, 100, CFSTR("PingFangSC-Light")));405 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight300, FontItalicOn, 100, CFSTR("PingFangSC-Light")));406 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight400, FontItalicOff, 100, CFSTR("PingFangSC-Regular")));407 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight400, FontItalicOn, 100, CFSTR("PingFangSC-Regular")));408 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight500, FontItalicOff, 100, CFSTR("PingFangSC-Medium")));409 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight500, FontItalicOn, 100, CFSTR("PingFangSC-Medium")));410 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight600, FontItalicOff, 100, CFSTR("PingFangSC-Semibold")));411 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight600, FontItalicOn, 100, CFSTR("PingFangSC-Semibold")));412 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight700, FontItalicOff, 100, CFSTR("PingFangSC-Semibold")));413 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight700, FontItalicOn, 100, CFSTR("PingFangSC-Semibold")));414 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight800, FontItalicOff, 100, CFSTR("PingFangSC-Semibold")));415 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight800, FontItalicOn, 100, CFSTR("PingFangSC-Semibold")));416 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight900, FontItalicOff, 100, CFSTR("PingFangSC-Semibold")));417 EXPECT_TRUE(compareFonts("PingFang SC", FontWeight900, FontItalicOn, 100, CFSTR("PingFangSC-Semibold")));418 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight100, FontItalicOff, 100, CFSTR("PingFangTC-Ultralight")));419 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight100, FontItalicOn, 100, CFSTR("PingFangTC-Ultralight")));420 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight200, FontItalicOff, 100, CFSTR("PingFangTC-Thin")));421 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight200, FontItalicOn, 100, CFSTR("PingFangTC-Thin")));422 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight300, FontItalicOff, 100, CFSTR("PingFangTC-Light")));423 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight300, FontItalicOn, 100, CFSTR("PingFangTC-Light")));424 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight400, FontItalicOff, 100, CFSTR("PingFangTC-Regular")));425 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight400, FontItalicOn, 100, CFSTR("PingFangTC-Regular")));426 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight500, FontItalicOff, 100, CFSTR("PingFangTC-Medium")));427 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight500, FontItalicOn, 100, CFSTR("PingFangTC-Medium")));428 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight600, FontItalicOff, 100, CFSTR("PingFangTC-Semibold")));429 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight600, FontItalicOn, 100, CFSTR("PingFangTC-Semibold")));430 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight700, FontItalicOff, 100, CFSTR("PingFangTC-Semibold")));431 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight700, FontItalicOn, 100, CFSTR("PingFangTC-Semibold")));432 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight800, FontItalicOff, 100, CFSTR("PingFangTC-Semibold")));433 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight800, FontItalicOn, 100, CFSTR("PingFangTC-Semibold")));434 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight900, FontItalicOff, 100, CFSTR("PingFangTC-Semibold")));435 EXPECT_TRUE(compareFonts("PingFang TC", FontWeight900, FontItalicOn, 100, CFSTR("PingFangTC-Semibold")));436 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight100, FontItalicOff, 100, CFSTR("TimesNewRomanPSMT")));437 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight100, FontItalicOn, 100, CFSTR("TimesNewRomanPS-ItalicMT")));438 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight200, FontItalicOff, 100, CFSTR("TimesNewRomanPSMT")));439 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight200, FontItalicOn, 100, CFSTR("TimesNewRomanPS-ItalicMT")));440 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight300, FontItalicOff, 100, CFSTR("TimesNewRomanPSMT")));441 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight300, FontItalicOn, 100, CFSTR("TimesNewRomanPS-ItalicMT")));442 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight400, FontItalicOff, 100, CFSTR("TimesNewRomanPSMT")));443 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight400, FontItalicOn, 100, CFSTR("TimesNewRomanPS-ItalicMT")));444 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight500, FontItalicOff, 100, CFSTR("TimesNewRomanPSMT")));445 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight500, FontItalicOn, 100, CFSTR("TimesNewRomanPS-ItalicMT")));446 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight600, FontItalicOff, 100, CFSTR("TimesNewRomanPS-BoldMT")));447 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight600, FontItalicOn, 100, CFSTR("TimesNewRomanPS-BoldItalicMT")));448 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight700, FontItalicOff, 100, CFSTR("TimesNewRomanPS-BoldMT")));449 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight700, FontItalicOn, 100, CFSTR("TimesNewRomanPS-BoldItalicMT")));450 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight800, FontItalicOff, 100, CFSTR("TimesNewRomanPS-BoldMT")));451 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight800, FontItalicOn, 100, CFSTR("TimesNewRomanPS-BoldItalicMT")));452 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight900, FontItalicOff, 100, CFSTR("TimesNewRomanPS-BoldMT")));453 EXPECT_TRUE(compareFonts("Times New Roman", FontWeight900, FontItalicOn, 100, CFSTR("TimesNewRomanPS-BoldItalicMT")));454 EXPECT_TRUE(compareFonts("Times", FontWeight100, FontItalicOff, 100, CFSTR("Times-Roman")));455 EXPECT_TRUE(compareFonts("Times", FontWeight100, FontItalicOn, 100, CFSTR("Times-Italic")));456 EXPECT_TRUE(compareFonts("Times", FontWeight200, FontItalicOff, 100, CFSTR("Times-Roman")));457 EXPECT_TRUE(compareFonts("Times", FontWeight200, FontItalicOn, 100, CFSTR("Times-Italic")));458 EXPECT_TRUE(compareFonts("Times", FontWeight300, FontItalicOff, 100, CFSTR("Times-Roman")));459 EXPECT_TRUE(compareFonts("Times", FontWeight300, FontItalicOn, 100, CFSTR("Times-Italic")));460 EXPECT_TRUE(compareFonts("Times", FontWeight400, FontItalicOff, 100, CFSTR("Times-Roman")));461 EXPECT_TRUE(compareFonts("Times", FontWeight400, FontItalicOn, 100, CFSTR("Times-Italic")));462 EXPECT_TRUE(compareFonts("Times", FontWeight500, FontItalicOff, 100, CFSTR("Times-Roman")));463 EXPECT_TRUE(compareFonts("Times", FontWeight500, FontItalicOn, 100, CFSTR("Times-Italic")));464 EXPECT_TRUE(compareFonts("Times", FontWeight600, FontItalicOff, 100, CFSTR("Times-Bold")));465 EXPECT_TRUE(compareFonts("Times", FontWeight600, FontItalicOn, 100, CFSTR("Times-BoldItalic")));466 EXPECT_TRUE(compareFonts("Times", FontWeight700, FontItalicOff, 100, CFSTR("Times-Bold")));467 EXPECT_TRUE(compareFonts("Times", FontWeight700, FontItalicOn, 100, CFSTR("Times-BoldItalic")));468 EXPECT_TRUE(compareFonts("Times", FontWeight800, FontItalicOff, 100, CFSTR("Times-Bold")));469 EXPECT_TRUE(compareFonts("Times", FontWeight800, FontItalicOn, 100, CFSTR("Times-BoldItalic")));470 EXPECT_TRUE(compareFonts("Times", FontWeight900, FontItalicOff, 100, CFSTR("Times-Bold")));471 EXPECT_TRUE(compareFonts("Times", FontWeight900, FontItalicOn, 100, CFSTR("Times-BoldItalic")));472 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight700, FontItalicOff, 87.5, CFSTR("HelveticaNeue-CondensedBold")));473 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight800, FontItalicOff, 87.5, CFSTR("HelveticaNeue-CondensedBlack")));474 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight900, FontItalicOff, 87.5, CFSTR("HelveticaNeue-CondensedBlack")));475 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight700, FontItalicOff, 75, CFSTR("HelveticaNeue-CondensedBold")));476 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight800, FontItalicOff, 75, CFSTR("HelveticaNeue-CondensedBlack")));477 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight900, FontItalicOff, 75, CFSTR("HelveticaNeue-CondensedBlack")));478 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight700, FontItalicOn, 87.5, CFSTR("HelveticaNeue-CondensedBold")));479 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight800, FontItalicOn, 87.5, CFSTR("HelveticaNeue-CondensedBlack")));480 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight900, FontItalicOn, 87.5, CFSTR("HelveticaNeue-CondensedBlack")));481 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight700, FontItalicOn, 75, CFSTR("HelveticaNeue-CondensedBold")));482 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight800, FontItalicOn, 75, CFSTR("HelveticaNeue-CondensedBlack")));483 EXPECT_TRUE(compareFonts("Helvetica Neue", FontWeight900, FontItalicOn, 75, CFSTR("HelveticaNeue-CondensedBlack")));484 EXPECT_TRUE(compareFonts("Futura", FontWeight500, FontItalicOff, 87.5, CFSTR("Futura-CondensedMedium")));485 EXPECT_TRUE(compareFonts("Futura", FontWeight500, FontItalicOn, 87.5, CFSTR("Futura-CondensedMedium")));486 EXPECT_TRUE(compareFonts("Futura", FontWeight600, FontItalicOff, 87.5, CFSTR("Futura-CondensedExtraBold")));487 EXPECT_TRUE(compareFonts("Futura", FontWeight600, FontItalicOn, 87.5, CFSTR("Futura-CondensedExtraBold")));488 EXPECT_TRUE(compareFonts("Futura", FontWeight700, FontItalicOff, 87.5, CFSTR("Futura-CondensedExtraBold")));489 EXPECT_TRUE(compareFonts("Futura", FontWeight700, FontItalicOn, 87.5, CFSTR("Futura-CondensedExtraBold")));490 EXPECT_TRUE(compareFonts("Futura", FontWeight800, FontItalicOff, 87.5, CFSTR("Futura-CondensedExtraBold")));491 EXPECT_TRUE(compareFonts("Futura", FontWeight800, FontItalicOn, 87.5, CFSTR("Futura-CondensedExtraBold")));492 EXPECT_TRUE(compareFonts("Futura", FontWeight900, FontItalicOff, 87.5, CFSTR("Futura-CondensedExtraBold")));493 EXPECT_TRUE(compareFonts("Futura", FontWeight900, FontItalicOn, 87.5, CFSTR("Futura-CondensedExtraBold")));76 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 100, 0 , 100, CFSTR("AppleSDGothicNeo-Thin"))); 77 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 78 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 200, 0 , 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 79 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 80 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 300, 0 , 100, CFSTR("AppleSDGothicNeo-Light"))); 81 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 82 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 400, 0 , 100, CFSTR("AppleSDGothicNeo-Regular"))); 83 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 84 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 500, 0 , 100, CFSTR("AppleSDGothicNeo-Medium"))); 85 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 86 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 600, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 87 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 88 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 89 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 90 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 800, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 91 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 92 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 93 EXPECT_TRUE(compareFonts("Apple SD Gothic Neo", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 94 EXPECT_TRUE(compareFonts("Arial", 100, 0 , 100, CFSTR("ArialMT"))); 95 EXPECT_TRUE(compareFonts("Arial", 100, 20, 100, CFSTR("Arial-ItalicMT"))); 96 EXPECT_TRUE(compareFonts("Arial", 200, 0 , 100, CFSTR("ArialMT"))); 97 EXPECT_TRUE(compareFonts("Arial", 200, 20, 100, CFSTR("Arial-ItalicMT"))); 98 EXPECT_TRUE(compareFonts("Arial", 300, 0 , 100, CFSTR("ArialMT"))); 99 EXPECT_TRUE(compareFonts("Arial", 300, 20, 100, CFSTR("Arial-ItalicMT"))); 100 EXPECT_TRUE(compareFonts("Arial", 400, 0 , 100, CFSTR("ArialMT"))); 101 EXPECT_TRUE(compareFonts("Arial", 400, 20, 100, CFSTR("Arial-ItalicMT"))); 102 EXPECT_TRUE(compareFonts("Arial", 500, 0 , 100, CFSTR("ArialMT"))); 103 EXPECT_TRUE(compareFonts("Arial", 500, 20, 100, CFSTR("Arial-ItalicMT"))); 104 EXPECT_TRUE(compareFonts("Arial", 600, 0 , 100, CFSTR("Arial-BoldMT"))); 105 EXPECT_TRUE(compareFonts("Arial", 600, 20, 100, CFSTR("Arial-BoldItalicMT"))); 106 EXPECT_TRUE(compareFonts("Arial", 700, 0 , 100, CFSTR("Arial-BoldMT"))); 107 EXPECT_TRUE(compareFonts("Arial", 700, 20, 100, CFSTR("Arial-BoldItalicMT"))); 108 EXPECT_TRUE(compareFonts("Arial", 800, 0 , 100, CFSTR("Arial-BoldMT"))); 109 EXPECT_TRUE(compareFonts("Arial", 800, 20, 100, CFSTR("Arial-BoldItalicMT"))); 110 EXPECT_TRUE(compareFonts("Arial", 900, 0 , 100, CFSTR("Arial-BoldMT"))); 111 EXPECT_TRUE(compareFonts("Arial", 900, 20, 100, CFSTR("Arial-BoldItalicMT"))); 112 EXPECT_TRUE(compareFonts("Avenir Next", 100, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 113 EXPECT_TRUE(compareFonts("Avenir Next", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 114 EXPECT_TRUE(compareFonts("Avenir Next", 200, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 115 EXPECT_TRUE(compareFonts("Avenir Next", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 116 EXPECT_TRUE(compareFonts("Avenir Next", 300, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 117 EXPECT_TRUE(compareFonts("Avenir Next", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 118 EXPECT_TRUE(compareFonts("Avenir Next", 400, 0 , 100, CFSTR("AvenirNext-Regular"))); 119 EXPECT_TRUE(compareFonts("Avenir Next", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 120 EXPECT_TRUE(compareFonts("Avenir Next", 500, 0 , 100, CFSTR("AvenirNext-Medium"))); 121 EXPECT_TRUE(compareFonts("Avenir Next", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 122 EXPECT_TRUE(compareFonts("Avenir Next", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 123 EXPECT_TRUE(compareFonts("Avenir Next", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 124 EXPECT_TRUE(compareFonts("Avenir Next", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 125 EXPECT_TRUE(compareFonts("Avenir Next", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 126 EXPECT_TRUE(compareFonts("Avenir Next", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 127 EXPECT_TRUE(compareFonts("Avenir Next", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 128 EXPECT_TRUE(compareFonts("Avenir Next", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 129 EXPECT_TRUE(compareFonts("Avenir Next", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 130 EXPECT_TRUE(compareFonts("Avenir", 100, 0 , 100, CFSTR("Avenir-Light"))); 131 EXPECT_TRUE(compareFonts("Avenir", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 132 EXPECT_TRUE(compareFonts("Avenir", 200, 0 , 100, CFSTR("Avenir-Light"))); 133 EXPECT_TRUE(compareFonts("Avenir", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 134 EXPECT_TRUE(compareFonts("Avenir", 300, 0 , 100, CFSTR("Avenir-Light"))); 135 EXPECT_TRUE(compareFonts("Avenir", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 136 EXPECT_TRUE(compareFonts("Avenir", 400, 0 , 100, CFSTR("Avenir-Book"))); 137 EXPECT_TRUE(compareFonts("Avenir", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 138 EXPECT_TRUE(compareFonts("Avenir", 500, 0 , 100, CFSTR("Avenir-Medium"))); 139 EXPECT_TRUE(compareFonts("Avenir", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 140 EXPECT_TRUE(compareFonts("Avenir", 600, 0 , 100, CFSTR("Avenir-Black"))); 141 EXPECT_TRUE(compareFonts("Avenir", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 142 EXPECT_TRUE(compareFonts("Avenir", 700, 0 , 100, CFSTR("Avenir-Black"))); 143 EXPECT_TRUE(compareFonts("Avenir", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 144 EXPECT_TRUE(compareFonts("Avenir", 800, 0 , 100, CFSTR("Avenir-Black"))); 145 EXPECT_TRUE(compareFonts("Avenir", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 146 EXPECT_TRUE(compareFonts("Avenir", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 147 EXPECT_TRUE(compareFonts("Avenir", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 148 EXPECT_TRUE(compareFonts("Baskerville", 100, 0 , 100, CFSTR("Baskerville"))); 149 EXPECT_TRUE(compareFonts("Baskerville", 100, 20, 100, CFSTR("Baskerville-Italic"))); 150 EXPECT_TRUE(compareFonts("Baskerville", 200, 0 , 100, CFSTR("Baskerville"))); 151 EXPECT_TRUE(compareFonts("Baskerville", 200, 20, 100, CFSTR("Baskerville-Italic"))); 152 EXPECT_TRUE(compareFonts("Baskerville", 300, 0 , 100, CFSTR("Baskerville"))); 153 EXPECT_TRUE(compareFonts("Baskerville", 300, 20, 100, CFSTR("Baskerville-Italic"))); 154 EXPECT_TRUE(compareFonts("Baskerville", 400, 0 , 100, CFSTR("Baskerville"))); 155 EXPECT_TRUE(compareFonts("Baskerville", 400, 20, 100, CFSTR("Baskerville-Italic"))); 156 EXPECT_TRUE(compareFonts("Baskerville", 500, 0 , 100, CFSTR("Baskerville"))); 157 EXPECT_TRUE(compareFonts("Baskerville", 500, 20, 100, CFSTR("Baskerville-Italic"))); 158 EXPECT_TRUE(compareFonts("Baskerville", 600, 0 , 100, CFSTR("Baskerville-SemiBold"))); 159 EXPECT_TRUE(compareFonts("Baskerville", 600, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 160 EXPECT_TRUE(compareFonts("Baskerville", 700, 0 , 100, CFSTR("Baskerville-Bold"))); 161 EXPECT_TRUE(compareFonts("Baskerville", 700, 20, 100, CFSTR("Baskerville-BoldItalic"))); 162 EXPECT_TRUE(compareFonts("Baskerville", 800, 0 , 100, CFSTR("Baskerville-Bold"))); 163 EXPECT_TRUE(compareFonts("Baskerville", 800, 20, 100, CFSTR("Baskerville-BoldItalic"))); 164 EXPECT_TRUE(compareFonts("Baskerville", 900, 0 , 100, CFSTR("Baskerville-Bold"))); 165 EXPECT_TRUE(compareFonts("Baskerville", 900, 20, 100, CFSTR("Baskerville-BoldItalic"))); 166 EXPECT_TRUE(compareFonts("Didot", 100, 0 , 100, CFSTR("Didot"))); 167 EXPECT_TRUE(compareFonts("Didot", 100, 20, 100, CFSTR("Didot-Italic"))); 168 EXPECT_TRUE(compareFonts("Didot", 200, 0 , 100, CFSTR("Didot"))); 169 EXPECT_TRUE(compareFonts("Didot", 200, 20, 100, CFSTR("Didot-Italic"))); 170 EXPECT_TRUE(compareFonts("Didot", 300, 0 , 100, CFSTR("Didot"))); 171 EXPECT_TRUE(compareFonts("Didot", 300, 20, 100, CFSTR("Didot-Italic"))); 172 EXPECT_TRUE(compareFonts("Didot", 400, 0 , 100, CFSTR("Didot"))); 173 EXPECT_TRUE(compareFonts("Didot", 400, 20, 100, CFSTR("Didot-Italic"))); 174 EXPECT_TRUE(compareFonts("Didot", 500, 0 , 100, CFSTR("Didot"))); 175 EXPECT_TRUE(compareFonts("Didot", 500, 20, 100, CFSTR("Didot-Italic"))); 176 EXPECT_TRUE(compareFonts("Didot", 600, 0 , 100, CFSTR("Didot-Bold"))); 177 EXPECT_TRUE(compareFonts("Didot", 600, 20, 100, CFSTR("Didot-Italic"))); 178 EXPECT_TRUE(compareFonts("Didot", 700, 0 , 100, CFSTR("Didot-Bold"))); 179 EXPECT_TRUE(compareFonts("Didot", 700, 20, 100, CFSTR("Didot-Italic"))); 180 EXPECT_TRUE(compareFonts("Didot", 800, 0 , 100, CFSTR("Didot-Bold"))); 181 EXPECT_TRUE(compareFonts("Didot", 800, 20, 100, CFSTR("Didot-Italic"))); 182 EXPECT_TRUE(compareFonts("Didot", 900, 0 , 100, CFSTR("Didot-Bold"))); 183 EXPECT_TRUE(compareFonts("Didot", 900, 20, 100, CFSTR("Didot-Italic"))); 184 EXPECT_TRUE(compareFonts("Futura", 100, 0 , 100, CFSTR("Futura-Medium"))); 185 EXPECT_TRUE(compareFonts("Futura", 100, 20, 100, CFSTR("Futura-MediumItalic"))); 186 EXPECT_TRUE(compareFonts("Futura", 200, 0 , 100, CFSTR("Futura-Medium"))); 187 EXPECT_TRUE(compareFonts("Futura", 200, 20, 100, CFSTR("Futura-MediumItalic"))); 188 EXPECT_TRUE(compareFonts("Futura", 300, 0 , 100, CFSTR("Futura-Medium"))); 189 EXPECT_TRUE(compareFonts("Futura", 300, 20, 100, CFSTR("Futura-MediumItalic"))); 190 EXPECT_TRUE(compareFonts("Futura", 400, 0 , 100, CFSTR("Futura-Medium"))); 191 EXPECT_TRUE(compareFonts("Futura", 400, 20, 100, CFSTR("Futura-MediumItalic"))); 192 EXPECT_TRUE(compareFonts("Futura", 500, 0 , 100, CFSTR("Futura-Medium"))); 193 EXPECT_TRUE(compareFonts("Futura", 500, 20, 100, CFSTR("Futura-MediumItalic"))); 194 EXPECT_TRUE(compareFonts("Futura", 600, 0 , 100, CFSTR("Futura-Bold"))); 195 EXPECT_TRUE(compareFonts("Futura", 600, 20, 100, CFSTR("Futura-MediumItalic"))); 196 EXPECT_TRUE(compareFonts("Futura", 700, 0 , 100, CFSTR("Futura-Bold"))); 197 EXPECT_TRUE(compareFonts("Futura", 700, 20, 100, CFSTR("Futura-MediumItalic"))); 198 EXPECT_TRUE(compareFonts("Futura", 800, 0 , 100, CFSTR("Futura-Bold"))); 199 EXPECT_TRUE(compareFonts("Futura", 800, 20, 100, CFSTR("Futura-MediumItalic"))); 200 EXPECT_TRUE(compareFonts("Futura", 900, 0 , 100, CFSTR("Futura-Bold"))); 201 EXPECT_TRUE(compareFonts("Futura", 900, 20, 100, CFSTR("Futura-MediumItalic"))); 202 EXPECT_TRUE(compareFonts("Helvetica Neue", 100, 0 , 100, CFSTR("HelveticaNeue-UltraLight"))); 203 EXPECT_TRUE(compareFonts("Helvetica Neue", 100, 20, 100, CFSTR("HelveticaNeue-UltraLightItalic"))); 204 EXPECT_TRUE(compareFonts("Helvetica Neue", 200, 0 , 100, CFSTR("HelveticaNeue-Thin"))); 205 EXPECT_TRUE(compareFonts("Helvetica Neue", 200, 20, 100, CFSTR("HelveticaNeue-ThinItalic"))); 206 EXPECT_TRUE(compareFonts("Helvetica Neue", 300, 0 , 100, CFSTR("HelveticaNeue-Light"))); 207 EXPECT_TRUE(compareFonts("Helvetica Neue", 300, 20, 100, CFSTR("HelveticaNeue-LightItalic"))); 208 EXPECT_TRUE(compareFonts("Helvetica Neue", 400, 0 , 100, CFSTR("HelveticaNeue"))); 209 EXPECT_TRUE(compareFonts("Helvetica Neue", 400, 20, 100, CFSTR("HelveticaNeue-Italic"))); 210 EXPECT_TRUE(compareFonts("Helvetica Neue", 500, 0 , 100, CFSTR("HelveticaNeue-Medium"))); 211 EXPECT_TRUE(compareFonts("Helvetica Neue", 500, 20, 100, CFSTR("HelveticaNeue-MediumItalic"))); 212 EXPECT_TRUE(compareFonts("Helvetica Neue", 600, 0 , 100, CFSTR("HelveticaNeue-Bold"))); 213 EXPECT_TRUE(compareFonts("Helvetica Neue", 600, 20, 100, CFSTR("HelveticaNeue-BoldItalic"))); 214 EXPECT_TRUE(compareFonts("Helvetica Neue", 700, 0 , 100, CFSTR("HelveticaNeue-Bold"))); 215 EXPECT_TRUE(compareFonts("Helvetica Neue", 700, 20, 100, CFSTR("HelveticaNeue-BoldItalic"))); 216 EXPECT_TRUE(compareFonts("Helvetica Neue", 800, 0 , 100, CFSTR("HelveticaNeue-Bold"))); 217 EXPECT_TRUE(compareFonts("Helvetica Neue", 800, 20, 100, CFSTR("HelveticaNeue-BoldItalic"))); 218 EXPECT_TRUE(compareFonts("Helvetica Neue", 900, 0 , 100, CFSTR("HelveticaNeue-Bold"))); 219 EXPECT_TRUE(compareFonts("Helvetica Neue", 900, 20, 100, CFSTR("HelveticaNeue-BoldItalic"))); 220 EXPECT_TRUE(compareFonts("Helvetica", 100, 0 , 100, CFSTR("Helvetica-Light"))); 221 EXPECT_TRUE(compareFonts("Helvetica", 100, 20, 100, CFSTR("Helvetica-LightOblique"))); 222 EXPECT_TRUE(compareFonts("Helvetica", 200, 0 , 100, CFSTR("Helvetica-Light"))); 223 EXPECT_TRUE(compareFonts("Helvetica", 200, 20, 100, CFSTR("Helvetica-LightOblique"))); 224 EXPECT_TRUE(compareFonts("Helvetica", 300, 0 , 100, CFSTR("Helvetica-Light"))); 225 EXPECT_TRUE(compareFonts("Helvetica", 300, 20, 100, CFSTR("Helvetica-LightOblique"))); 226 EXPECT_TRUE(compareFonts("Helvetica", 400, 0 , 100, CFSTR("Helvetica"))); 227 EXPECT_TRUE(compareFonts("Helvetica", 400, 20, 100, CFSTR("Helvetica-Oblique"))); 228 EXPECT_TRUE(compareFonts("Helvetica", 500, 0 , 100, CFSTR("Helvetica"))); 229 EXPECT_TRUE(compareFonts("Helvetica", 500, 20, 100, CFSTR("Helvetica-Oblique"))); 230 EXPECT_TRUE(compareFonts("Helvetica", 600, 0 , 100, CFSTR("Helvetica-Bold"))); 231 EXPECT_TRUE(compareFonts("Helvetica", 600, 20, 100, CFSTR("Helvetica-BoldOblique"))); 232 EXPECT_TRUE(compareFonts("Helvetica", 700, 0 , 100, CFSTR("Helvetica-Bold"))); 233 EXPECT_TRUE(compareFonts("Helvetica", 700, 20, 100, CFSTR("Helvetica-BoldOblique"))); 234 EXPECT_TRUE(compareFonts("Helvetica", 800, 0 , 100, CFSTR("Helvetica-Bold"))); 235 EXPECT_TRUE(compareFonts("Helvetica", 800, 20, 100, CFSTR("Helvetica-BoldOblique"))); 236 EXPECT_TRUE(compareFonts("Helvetica", 900, 0 , 100, CFSTR("Helvetica-Bold"))); 237 EXPECT_TRUE(compareFonts("Helvetica", 900, 20, 100, CFSTR("Helvetica-BoldOblique"))); 238 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 100, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 239 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 100, 20, 100, CFSTR("HiraKakuStdN-W8"))); 240 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 200, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 241 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 200, 20, 100, CFSTR("HiraKakuStdN-W8"))); 242 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 300, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 243 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 300, 20, 100, CFSTR("HiraKakuStdN-W8"))); 244 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 400, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 245 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 400, 20, 100, CFSTR("HiraKakuStdN-W8"))); 246 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 500, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 247 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 500, 20, 100, CFSTR("HiraKakuStdN-W8"))); 248 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 600, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 249 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 600, 20, 100, CFSTR("HiraKakuStdN-W8"))); 250 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 700, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 251 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 700, 20, 100, CFSTR("HiraKakuStdN-W8"))); 252 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 800, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 253 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 800, 20, 100, CFSTR("HiraKakuStdN-W8"))); 254 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 900, 0 , 100, CFSTR("HiraKakuStdN-W8"))); 255 EXPECT_TRUE(compareFonts("Hiragino Kaku Gothic StdN", 900, 20, 100, CFSTR("HiraKakuStdN-W8"))); 256 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 100, 0 , 100, CFSTR("HiraMaruProN-W4"))); 257 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 100, 20, 100, CFSTR("HiraMaruProN-W4"))); 258 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 200, 0 , 100, CFSTR("HiraMaruProN-W4"))); 259 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 200, 20, 100, CFSTR("HiraMaruProN-W4"))); 260 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 300, 0 , 100, CFSTR("HiraMaruProN-W4"))); 261 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 300, 20, 100, CFSTR("HiraMaruProN-W4"))); 262 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 400, 0 , 100, CFSTR("HiraMaruProN-W4"))); 263 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 400, 20, 100, CFSTR("HiraMaruProN-W4"))); 264 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 500, 0 , 100, CFSTR("HiraMaruProN-W4"))); 265 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 500, 20, 100, CFSTR("HiraMaruProN-W4"))); 266 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 600, 0 , 100, CFSTR("HiraMaruProN-W4"))); 267 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 600, 20, 100, CFSTR("HiraMaruProN-W4"))); 268 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 700, 0 , 100, CFSTR("HiraMaruProN-W4"))); 269 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 700, 20, 100, CFSTR("HiraMaruProN-W4"))); 270 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 800, 0 , 100, CFSTR("HiraMaruProN-W4"))); 271 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 800, 20, 100, CFSTR("HiraMaruProN-W4"))); 272 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 900, 0 , 100, CFSTR("HiraMaruProN-W4"))); 273 EXPECT_TRUE(compareFonts("Hiragino Maru Gothic ProN", 900, 20, 100, CFSTR("HiraMaruProN-W4"))); 274 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 100, 0 , 100, CFSTR("HiraMinProN-W3"))); 275 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 100, 20, 100, CFSTR("HiraMinProN-W3"))); 276 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 200, 0 , 100, CFSTR("HiraMinProN-W3"))); 277 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 200, 20, 100, CFSTR("HiraMinProN-W3"))); 278 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 300, 0 , 100, CFSTR("HiraMinProN-W3"))); 279 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 300, 20, 100, CFSTR("HiraMinProN-W3"))); 280 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 400, 0 , 100, CFSTR("HiraMinProN-W3"))); 281 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 400, 20, 100, CFSTR("HiraMinProN-W3"))); 282 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 500, 0 , 100, CFSTR("HiraMinProN-W3"))); 283 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 500, 20, 100, CFSTR("HiraMinProN-W3"))); 284 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 600, 0 , 100, CFSTR("HiraMinProN-W6"))); 285 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 600, 20, 100, CFSTR("HiraMinProN-W6"))); 286 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 700, 0 , 100, CFSTR("HiraMinProN-W6"))); 287 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 700, 20, 100, CFSTR("HiraMinProN-W6"))); 288 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 800, 0 , 100, CFSTR("HiraMinProN-W6"))); 289 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 800, 20, 100, CFSTR("HiraMinProN-W6"))); 290 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 900, 0 , 100, CFSTR("HiraMinProN-W6"))); 291 EXPECT_TRUE(compareFonts("Hiragino Mincho ProN", 900, 20, 100, CFSTR("HiraMinProN-W6"))); 292 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 100, 0 , 100, CFSTR("HiraginoSansGB-W3"))); 293 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 100, 20, 100, CFSTR("HiraginoSansGB-W3"))); 294 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 200, 0 , 100, CFSTR("HiraginoSansGB-W3"))); 295 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 200, 20, 100, CFSTR("HiraginoSansGB-W3"))); 296 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 300, 0 , 100, CFSTR("HiraginoSansGB-W3"))); 297 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 300, 20, 100, CFSTR("HiraginoSansGB-W3"))); 298 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 400, 0 , 100, CFSTR("HiraginoSansGB-W3"))); 299 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 400, 20, 100, CFSTR("HiraginoSansGB-W3"))); 300 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 500, 0 , 100, CFSTR("HiraginoSansGB-W3"))); 301 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 500, 20, 100, CFSTR("HiraginoSansGB-W3"))); 302 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 600, 0 , 100, CFSTR("HiraginoSansGB-W6"))); 303 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 600, 20, 100, CFSTR("HiraginoSansGB-W6"))); 304 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 700, 0 , 100, CFSTR("HiraginoSansGB-W6"))); 305 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 700, 20, 100, CFSTR("HiraginoSansGB-W6"))); 306 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 800, 0 , 100, CFSTR("HiraginoSansGB-W6"))); 307 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 800, 20, 100, CFSTR("HiraginoSansGB-W6"))); 308 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 900, 0 , 100, CFSTR("HiraginoSansGB-W6"))); 309 EXPECT_TRUE(compareFonts("Hiragino Sans GB", 900, 20, 100, CFSTR("HiraginoSansGB-W6"))); 310 EXPECT_TRUE(compareFonts("Hiragino Sans", 100, 0 , 100, CFSTR("HiraginoSans-W0"))); 311 EXPECT_TRUE(compareFonts("Hiragino Sans", 100, 20, 100, CFSTR("HiraginoSans-W0"))); 312 EXPECT_TRUE(compareFonts("Hiragino Sans", 200, 0 , 100, CFSTR("HiraginoSans-W1"))); 313 EXPECT_TRUE(compareFonts("Hiragino Sans", 200, 20, 100, CFSTR("HiraginoSans-W1"))); 314 EXPECT_TRUE(compareFonts("Hiragino Sans", 300, 0 , 100, CFSTR("HiraginoSans-W3"))); 315 EXPECT_TRUE(compareFonts("Hiragino Sans", 300, 20, 100, CFSTR("HiraginoSans-W3"))); 316 EXPECT_TRUE(compareFonts("Hiragino Sans", 400, 0 , 100, CFSTR("HiraginoSans-W4"))); 317 EXPECT_TRUE(compareFonts("Hiragino Sans", 400, 20, 100, CFSTR("HiraginoSans-W4"))); 318 EXPECT_TRUE(compareFonts("Hiragino Sans", 500, 0 , 100, CFSTR("HiraginoSans-W5"))); 319 EXPECT_TRUE(compareFonts("Hiragino Sans", 500, 20, 100, CFSTR("HiraginoSans-W5"))); 320 EXPECT_TRUE(compareFonts("Hiragino Sans", 600, 0 , 100, CFSTR("HiraginoSans-W6"))); 321 EXPECT_TRUE(compareFonts("Hiragino Sans", 600, 20, 100, CFSTR("HiraginoSans-W6"))); 322 EXPECT_TRUE(compareFonts("Hiragino Sans", 700, 0 , 100, CFSTR("HiraginoSans-W7"))); 323 EXPECT_TRUE(compareFonts("Hiragino Sans", 700, 20, 100, CFSTR("HiraginoSans-W7"))); 324 EXPECT_TRUE(compareFonts("Hiragino Sans", 800, 0 , 100, CFSTR("HiraginoSans-W8"))); 325 EXPECT_TRUE(compareFonts("Hiragino Sans", 800, 20, 100, CFSTR("HiraginoSans-W8"))); 326 EXPECT_TRUE(compareFonts("Hiragino Sans", 900, 0 , 100, CFSTR("HiraginoSans-W9"))); 327 EXPECT_TRUE(compareFonts("Hiragino Sans", 900, 20, 100, CFSTR("HiraginoSans-W9"))); 328 EXPECT_TRUE(compareFonts("Hoefler Text", 100, 0 , 100, CFSTR("HoeflerText-Regular"))); 329 EXPECT_TRUE(compareFonts("Hoefler Text", 100, 20, 100, CFSTR("HoeflerText-Italic"))); 330 EXPECT_TRUE(compareFonts("Hoefler Text", 200, 0 , 100, CFSTR("HoeflerText-Regular"))); 331 EXPECT_TRUE(compareFonts("Hoefler Text", 200, 20, 100, CFSTR("HoeflerText-Italic"))); 332 EXPECT_TRUE(compareFonts("Hoefler Text", 300, 0 , 100, CFSTR("HoeflerText-Regular"))); 333 EXPECT_TRUE(compareFonts("Hoefler Text", 300, 20, 100, CFSTR("HoeflerText-Italic"))); 334 EXPECT_TRUE(compareFonts("Hoefler Text", 400, 0 , 100, CFSTR("HoeflerText-Regular"))); 335 EXPECT_TRUE(compareFonts("Hoefler Text", 400, 20, 100, CFSTR("HoeflerText-Italic"))); 336 EXPECT_TRUE(compareFonts("Hoefler Text", 500, 0 , 100, CFSTR("HoeflerText-Regular"))); 337 EXPECT_TRUE(compareFonts("Hoefler Text", 500, 20, 100, CFSTR("HoeflerText-Italic"))); 338 EXPECT_TRUE(compareFonts("Hoefler Text", 600, 0 , 100, CFSTR("HoeflerText-Black"))); 339 EXPECT_TRUE(compareFonts("Hoefler Text", 600, 20, 100, CFSTR("HoeflerText-BlackItalic"))); 340 EXPECT_TRUE(compareFonts("Hoefler Text", 700, 0 , 100, CFSTR("HoeflerText-Black"))); 341 EXPECT_TRUE(compareFonts("Hoefler Text", 700, 20, 100, CFSTR("HoeflerText-BlackItalic"))); 342 EXPECT_TRUE(compareFonts("Hoefler Text", 800, 0 , 100, CFSTR("HoeflerText-Black"))); 343 EXPECT_TRUE(compareFonts("Hoefler Text", 800, 20, 100, CFSTR("HoeflerText-BlackItalic"))); 344 EXPECT_TRUE(compareFonts("Hoefler Text", 900, 0 , 100, CFSTR("HoeflerText-Black"))); 345 EXPECT_TRUE(compareFonts("Hoefler Text", 900, 20, 100, CFSTR("HoeflerText-BlackItalic"))); 346 EXPECT_TRUE(compareFonts("Lucida Grande", 100, 0 , 100, CFSTR("LucidaGrande"))); 347 EXPECT_TRUE(compareFonts("Lucida Grande", 100, 20, 100, CFSTR("LucidaGrande"))); 348 EXPECT_TRUE(compareFonts("Lucida Grande", 200, 0 , 100, CFSTR("LucidaGrande"))); 349 EXPECT_TRUE(compareFonts("Lucida Grande", 200, 20, 100, CFSTR("LucidaGrande"))); 350 EXPECT_TRUE(compareFonts("Lucida Grande", 300, 0 , 100, CFSTR("LucidaGrande"))); 351 EXPECT_TRUE(compareFonts("Lucida Grande", 300, 20, 100, CFSTR("LucidaGrande"))); 352 EXPECT_TRUE(compareFonts("Lucida Grande", 400, 0 , 100, CFSTR("LucidaGrande"))); 353 EXPECT_TRUE(compareFonts("Lucida Grande", 400, 20, 100, CFSTR("LucidaGrande"))); 354 EXPECT_TRUE(compareFonts("Lucida Grande", 500, 0 , 100, CFSTR("LucidaGrande"))); 355 EXPECT_TRUE(compareFonts("Lucida Grande", 500, 20, 100, CFSTR("LucidaGrande"))); 356 EXPECT_TRUE(compareFonts("Lucida Grande", 600, 0 , 100, CFSTR("LucidaGrande-Bold"))); 357 EXPECT_TRUE(compareFonts("Lucida Grande", 600, 20, 100, CFSTR("LucidaGrande-Bold"))); 358 EXPECT_TRUE(compareFonts("Lucida Grande", 700, 0 , 100, CFSTR("LucidaGrande-Bold"))); 359 EXPECT_TRUE(compareFonts("Lucida Grande", 700, 20, 100, CFSTR("LucidaGrande-Bold"))); 360 EXPECT_TRUE(compareFonts("Lucida Grande", 800, 0 , 100, CFSTR("LucidaGrande-Bold"))); 361 EXPECT_TRUE(compareFonts("Lucida Grande", 800, 20, 100, CFSTR("LucidaGrande-Bold"))); 362 EXPECT_TRUE(compareFonts("Lucida Grande", 900, 0 , 100, CFSTR("LucidaGrande-Bold"))); 363 EXPECT_TRUE(compareFonts("Lucida Grande", 900, 20, 100, CFSTR("LucidaGrande-Bold"))); 364 EXPECT_TRUE(compareFonts("Optima", 100, 0 , 100, CFSTR("Optima-Regular"))); 365 EXPECT_TRUE(compareFonts("Optima", 100, 20, 100, CFSTR("Optima-Italic"))); 366 EXPECT_TRUE(compareFonts("Optima", 200, 0 , 100, CFSTR("Optima-Regular"))); 367 EXPECT_TRUE(compareFonts("Optima", 200, 20, 100, CFSTR("Optima-Italic"))); 368 EXPECT_TRUE(compareFonts("Optima", 300, 0 , 100, CFSTR("Optima-Regular"))); 369 EXPECT_TRUE(compareFonts("Optima", 300, 20, 100, CFSTR("Optima-Italic"))); 370 EXPECT_TRUE(compareFonts("Optima", 400, 0 , 100, CFSTR("Optima-Regular"))); 371 EXPECT_TRUE(compareFonts("Optima", 400, 20, 100, CFSTR("Optima-Italic"))); 372 EXPECT_TRUE(compareFonts("Optima", 500, 0 , 100, CFSTR("Optima-Regular"))); 373 EXPECT_TRUE(compareFonts("Optima", 500, 20, 100, CFSTR("Optima-Italic"))); 374 EXPECT_TRUE(compareFonts("Optima", 600, 0 , 100, CFSTR("Optima-Bold"))); 375 EXPECT_TRUE(compareFonts("Optima", 600, 20, 100, CFSTR("Optima-BoldItalic"))); 376 EXPECT_TRUE(compareFonts("Optima", 700, 0 , 100, CFSTR("Optima-Bold"))); 377 EXPECT_TRUE(compareFonts("Optima", 700, 20, 100, CFSTR("Optima-BoldItalic"))); 378 EXPECT_TRUE(compareFonts("Optima", 800, 0 , 100, CFSTR("Optima-ExtraBlack"))); 379 EXPECT_TRUE(compareFonts("Optima", 800, 20, 100, CFSTR("Optima-BoldItalic"))); 380 EXPECT_TRUE(compareFonts("Optima", 900, 0 , 100, CFSTR("Optima-ExtraBlack"))); 381 EXPECT_TRUE(compareFonts("Optima", 900, 20, 100, CFSTR("Optima-BoldItalic"))); 382 EXPECT_TRUE(compareFonts("PingFang HK", 100, 0 , 100, CFSTR("PingFangHK-Ultralight"))); 383 EXPECT_TRUE(compareFonts("PingFang HK", 100, 20, 100, CFSTR("PingFangHK-Ultralight"))); 384 EXPECT_TRUE(compareFonts("PingFang HK", 200, 0 , 100, CFSTR("PingFangHK-Thin"))); 385 EXPECT_TRUE(compareFonts("PingFang HK", 200, 20, 100, CFSTR("PingFangHK-Thin"))); 386 EXPECT_TRUE(compareFonts("PingFang HK", 300, 0 , 100, CFSTR("PingFangHK-Light"))); 387 EXPECT_TRUE(compareFonts("PingFang HK", 300, 20, 100, CFSTR("PingFangHK-Light"))); 388 EXPECT_TRUE(compareFonts("PingFang HK", 400, 0 , 100, CFSTR("PingFangHK-Regular"))); 389 EXPECT_TRUE(compareFonts("PingFang HK", 400, 20, 100, CFSTR("PingFangHK-Regular"))); 390 EXPECT_TRUE(compareFonts("PingFang HK", 500, 0 , 100, CFSTR("PingFangHK-Medium"))); 391 EXPECT_TRUE(compareFonts("PingFang HK", 500, 20, 100, CFSTR("PingFangHK-Medium"))); 392 EXPECT_TRUE(compareFonts("PingFang HK", 600, 0 , 100, CFSTR("PingFangHK-Semibold"))); 393 EXPECT_TRUE(compareFonts("PingFang HK", 600, 20, 100, CFSTR("PingFangHK-Semibold"))); 394 EXPECT_TRUE(compareFonts("PingFang HK", 700, 0 , 100, CFSTR("PingFangHK-Semibold"))); 395 EXPECT_TRUE(compareFonts("PingFang HK", 700, 20, 100, CFSTR("PingFangHK-Semibold"))); 396 EXPECT_TRUE(compareFonts("PingFang HK", 800, 0 , 100, CFSTR("PingFangHK-Semibold"))); 397 EXPECT_TRUE(compareFonts("PingFang HK", 800, 20, 100, CFSTR("PingFangHK-Semibold"))); 398 EXPECT_TRUE(compareFonts("PingFang HK", 900, 0 , 100, CFSTR("PingFangHK-Semibold"))); 399 EXPECT_TRUE(compareFonts("PingFang HK", 900, 20, 100, CFSTR("PingFangHK-Semibold"))); 400 EXPECT_TRUE(compareFonts("PingFang SC", 100, 0 , 100, CFSTR("PingFangSC-Ultralight"))); 401 EXPECT_TRUE(compareFonts("PingFang SC", 100, 20, 100, CFSTR("PingFangSC-Ultralight"))); 402 EXPECT_TRUE(compareFonts("PingFang SC", 200, 0 , 100, CFSTR("PingFangSC-Thin"))); 403 EXPECT_TRUE(compareFonts("PingFang SC", 200, 20, 100, CFSTR("PingFangSC-Thin"))); 404 EXPECT_TRUE(compareFonts("PingFang SC", 300, 0 , 100, CFSTR("PingFangSC-Light"))); 405 EXPECT_TRUE(compareFonts("PingFang SC", 300, 20, 100, CFSTR("PingFangSC-Light"))); 406 EXPECT_TRUE(compareFonts("PingFang SC", 400, 0 , 100, CFSTR("PingFangSC-Regular"))); 407 EXPECT_TRUE(compareFonts("PingFang SC", 400, 20, 100, CFSTR("PingFangSC-Regular"))); 408 EXPECT_TRUE(compareFonts("PingFang SC", 500, 0 , 100, CFSTR("PingFangSC-Medium"))); 409 EXPECT_TRUE(compareFonts("PingFang SC", 500, 20, 100, CFSTR("PingFangSC-Medium"))); 410 EXPECT_TRUE(compareFonts("PingFang SC", 600, 0 , 100, CFSTR("PingFangSC-Semibold"))); 411 EXPECT_TRUE(compareFonts("PingFang SC", 600, 20, 100, CFSTR("PingFangSC-Semibold"))); 412 EXPECT_TRUE(compareFonts("PingFang SC", 700, 0 , 100, CFSTR("PingFangSC-Semibold"))); 413 EXPECT_TRUE(compareFonts("PingFang SC", 700, 20, 100, CFSTR("PingFangSC-Semibold"))); 414 EXPECT_TRUE(compareFonts("PingFang SC", 800, 0 , 100, CFSTR("PingFangSC-Semibold"))); 415 EXPECT_TRUE(compareFonts("PingFang SC", 800, 20, 100, CFSTR("PingFangSC-Semibold"))); 416 EXPECT_TRUE(compareFonts("PingFang SC", 900, 0 , 100, CFSTR("PingFangSC-Semibold"))); 417 EXPECT_TRUE(compareFonts("PingFang SC", 900, 20, 100, CFSTR("PingFangSC-Semibold"))); 418 EXPECT_TRUE(compareFonts("PingFang TC", 100, 0 , 100, CFSTR("PingFangTC-Ultralight"))); 419 EXPECT_TRUE(compareFonts("PingFang TC", 100, 20, 100, CFSTR("PingFangTC-Ultralight"))); 420 EXPECT_TRUE(compareFonts("PingFang TC", 200, 0 , 100, CFSTR("PingFangTC-Thin"))); 421 EXPECT_TRUE(compareFonts("PingFang TC", 200, 20, 100, CFSTR("PingFangTC-Thin"))); 422 EXPECT_TRUE(compareFonts("PingFang TC", 300, 0 , 100, CFSTR("PingFangTC-Light"))); 423 EXPECT_TRUE(compareFonts("PingFang TC", 300, 20, 100, CFSTR("PingFangTC-Light"))); 424 EXPECT_TRUE(compareFonts("PingFang TC", 400, 0 , 100, CFSTR("PingFangTC-Regular"))); 425 EXPECT_TRUE(compareFonts("PingFang TC", 400, 20, 100, CFSTR("PingFangTC-Regular"))); 426 EXPECT_TRUE(compareFonts("PingFang TC", 500, 0 , 100, CFSTR("PingFangTC-Medium"))); 427 EXPECT_TRUE(compareFonts("PingFang TC", 500, 20, 100, CFSTR("PingFangTC-Medium"))); 428 EXPECT_TRUE(compareFonts("PingFang TC", 600, 0 , 100, CFSTR("PingFangTC-Semibold"))); 429 EXPECT_TRUE(compareFonts("PingFang TC", 600, 20, 100, CFSTR("PingFangTC-Semibold"))); 430 EXPECT_TRUE(compareFonts("PingFang TC", 700, 0 , 100, CFSTR("PingFangTC-Semibold"))); 431 EXPECT_TRUE(compareFonts("PingFang TC", 700, 20, 100, CFSTR("PingFangTC-Semibold"))); 432 EXPECT_TRUE(compareFonts("PingFang TC", 800, 0 , 100, CFSTR("PingFangTC-Semibold"))); 433 EXPECT_TRUE(compareFonts("PingFang TC", 800, 20, 100, CFSTR("PingFangTC-Semibold"))); 434 EXPECT_TRUE(compareFonts("PingFang TC", 900, 0 , 100, CFSTR("PingFangTC-Semibold"))); 435 EXPECT_TRUE(compareFonts("PingFang TC", 900, 20, 100, CFSTR("PingFangTC-Semibold"))); 436 EXPECT_TRUE(compareFonts("Times New Roman", 100, 0 , 100, CFSTR("TimesNewRomanPSMT"))); 437 EXPECT_TRUE(compareFonts("Times New Roman", 100, 20, 100, CFSTR("TimesNewRomanPS-ItalicMT"))); 438 EXPECT_TRUE(compareFonts("Times New Roman", 200, 0 , 100, CFSTR("TimesNewRomanPSMT"))); 439 EXPECT_TRUE(compareFonts("Times New Roman", 200, 20, 100, CFSTR("TimesNewRomanPS-ItalicMT"))); 440 EXPECT_TRUE(compareFonts("Times New Roman", 300, 0 , 100, CFSTR("TimesNewRomanPSMT"))); 441 EXPECT_TRUE(compareFonts("Times New Roman", 300, 20, 100, CFSTR("TimesNewRomanPS-ItalicMT"))); 442 EXPECT_TRUE(compareFonts("Times New Roman", 400, 0 , 100, CFSTR("TimesNewRomanPSMT"))); 443 EXPECT_TRUE(compareFonts("Times New Roman", 400, 20, 100, CFSTR("TimesNewRomanPS-ItalicMT"))); 444 EXPECT_TRUE(compareFonts("Times New Roman", 500, 0 , 100, CFSTR("TimesNewRomanPSMT"))); 445 EXPECT_TRUE(compareFonts("Times New Roman", 500, 20, 100, CFSTR("TimesNewRomanPS-ItalicMT"))); 446 EXPECT_TRUE(compareFonts("Times New Roman", 600, 0 , 100, CFSTR("TimesNewRomanPS-BoldMT"))); 447 EXPECT_TRUE(compareFonts("Times New Roman", 600, 20, 100, CFSTR("TimesNewRomanPS-BoldItalicMT"))); 448 EXPECT_TRUE(compareFonts("Times New Roman", 700, 0 , 100, CFSTR("TimesNewRomanPS-BoldMT"))); 449 EXPECT_TRUE(compareFonts("Times New Roman", 700, 20, 100, CFSTR("TimesNewRomanPS-BoldItalicMT"))); 450 EXPECT_TRUE(compareFonts("Times New Roman", 800, 0 , 100, CFSTR("TimesNewRomanPS-BoldMT"))); 451 EXPECT_TRUE(compareFonts("Times New Roman", 800, 20, 100, CFSTR("TimesNewRomanPS-BoldItalicMT"))); 452 EXPECT_TRUE(compareFonts("Times New Roman", 900, 0 , 100, CFSTR("TimesNewRomanPS-BoldMT"))); 453 EXPECT_TRUE(compareFonts("Times New Roman", 900, 20, 100, CFSTR("TimesNewRomanPS-BoldItalicMT"))); 454 EXPECT_TRUE(compareFonts("Times", 100, 0 , 100, CFSTR("Times-Roman"))); 455 EXPECT_TRUE(compareFonts("Times", 100, 20, 100, CFSTR("Times-Italic"))); 456 EXPECT_TRUE(compareFonts("Times", 200, 0 , 100, CFSTR("Times-Roman"))); 457 EXPECT_TRUE(compareFonts("Times", 200, 20, 100, CFSTR("Times-Italic"))); 458 EXPECT_TRUE(compareFonts("Times", 300, 0 , 100, CFSTR("Times-Roman"))); 459 EXPECT_TRUE(compareFonts("Times", 300, 20, 100, CFSTR("Times-Italic"))); 460 EXPECT_TRUE(compareFonts("Times", 400, 0 , 100, CFSTR("Times-Roman"))); 461 EXPECT_TRUE(compareFonts("Times", 400, 20, 100, CFSTR("Times-Italic"))); 462 EXPECT_TRUE(compareFonts("Times", 500, 0 , 100, CFSTR("Times-Roman"))); 463 EXPECT_TRUE(compareFonts("Times", 500, 20, 100, CFSTR("Times-Italic"))); 464 EXPECT_TRUE(compareFonts("Times", 600, 0 , 100, CFSTR("Times-Bold"))); 465 EXPECT_TRUE(compareFonts("Times", 600, 20, 100, CFSTR("Times-BoldItalic"))); 466 EXPECT_TRUE(compareFonts("Times", 700, 0 , 100, CFSTR("Times-Bold"))); 467 EXPECT_TRUE(compareFonts("Times", 700, 20, 100, CFSTR("Times-BoldItalic"))); 468 EXPECT_TRUE(compareFonts("Times", 800, 0 , 100, CFSTR("Times-Bold"))); 469 EXPECT_TRUE(compareFonts("Times", 800, 20, 100, CFSTR("Times-BoldItalic"))); 470 EXPECT_TRUE(compareFonts("Times", 900, 0 , 100, CFSTR("Times-Bold"))); 471 EXPECT_TRUE(compareFonts("Times", 900, 20, 100, CFSTR("Times-BoldItalic"))); 472 EXPECT_TRUE(compareFonts("Helvetica Neue", 700, 0 , 87.5, CFSTR("HelveticaNeue-CondensedBold"))); 473 EXPECT_TRUE(compareFonts("Helvetica Neue", 800, 0 , 87.5, CFSTR("HelveticaNeue-CondensedBlack"))); 474 EXPECT_TRUE(compareFonts("Helvetica Neue", 900, 0 , 87.5, CFSTR("HelveticaNeue-CondensedBlack"))); 475 EXPECT_TRUE(compareFonts("Helvetica Neue", 700, 0 , 75, CFSTR("HelveticaNeue-CondensedBold"))); 476 EXPECT_TRUE(compareFonts("Helvetica Neue", 800, 0 , 75, CFSTR("HelveticaNeue-CondensedBlack"))); 477 EXPECT_TRUE(compareFonts("Helvetica Neue", 900, 0 , 75, CFSTR("HelveticaNeue-CondensedBlack"))); 478 EXPECT_TRUE(compareFonts("Helvetica Neue", 700, 20, 87.5, CFSTR("HelveticaNeue-CondensedBold"))); 479 EXPECT_TRUE(compareFonts("Helvetica Neue", 800, 20, 87.5, CFSTR("HelveticaNeue-CondensedBlack"))); 480 EXPECT_TRUE(compareFonts("Helvetica Neue", 900, 20, 87.5, CFSTR("HelveticaNeue-CondensedBlack"))); 481 EXPECT_TRUE(compareFonts("Helvetica Neue", 700, 20, 75, CFSTR("HelveticaNeue-CondensedBold"))); 482 EXPECT_TRUE(compareFonts("Helvetica Neue", 800, 20, 75, CFSTR("HelveticaNeue-CondensedBlack"))); 483 EXPECT_TRUE(compareFonts("Helvetica Neue", 900, 20, 75, CFSTR("HelveticaNeue-CondensedBlack"))); 484 EXPECT_TRUE(compareFonts("Futura", 500, 0 , 87.5, CFSTR("Futura-CondensedMedium"))); 485 EXPECT_TRUE(compareFonts("Futura", 500, 20, 87.5, CFSTR("Futura-CondensedMedium"))); 486 EXPECT_TRUE(compareFonts("Futura", 600, 0 , 87.5, CFSTR("Futura-CondensedExtraBold"))); 487 EXPECT_TRUE(compareFonts("Futura", 600, 20, 87.5, CFSTR("Futura-CondensedExtraBold"))); 488 EXPECT_TRUE(compareFonts("Futura", 700, 0 , 87.5, CFSTR("Futura-CondensedExtraBold"))); 489 EXPECT_TRUE(compareFonts("Futura", 700, 20, 87.5, CFSTR("Futura-CondensedExtraBold"))); 490 EXPECT_TRUE(compareFonts("Futura", 800, 0 , 87.5, CFSTR("Futura-CondensedExtraBold"))); 491 EXPECT_TRUE(compareFonts("Futura", 800, 20, 87.5, CFSTR("Futura-CondensedExtraBold"))); 492 EXPECT_TRUE(compareFonts("Futura", 900, 0 , 87.5, CFSTR("Futura-CondensedExtraBold"))); 493 EXPECT_TRUE(compareFonts("Futura", 900, 20, 87.5, CFSTR("Futura-CondensedExtraBold"))); 494 494 } 495 495 496 496 TEST_F(FontCacheTest, FontLookupFromPostScriptName) 497 497 { 498 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));499 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));500 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));501 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));502 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));503 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));504 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));505 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));506 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));507 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));508 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));509 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));510 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));511 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));512 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));513 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));514 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));515 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));516 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));517 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));518 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));519 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));520 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));521 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));522 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));523 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));524 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));525 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));526 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));527 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));528 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));529 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));530 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));531 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));532 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));533 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));534 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));535 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));536 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));537 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));538 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));539 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));540 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));541 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));542 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));543 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));544 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));545 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));546 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));547 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));548 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));549 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));550 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));551 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));552 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Light")));553 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));554 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Light")));555 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));556 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Light")));557 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));558 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Light")));559 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));560 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Light")));561 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));562 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));563 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));564 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));565 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));566 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));567 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));568 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));569 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));570 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Medium")));571 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));572 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Medium")));573 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));574 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Medium")));575 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));576 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Medium")));577 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));578 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Medium")));579 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));580 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));581 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));582 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));583 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));584 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));585 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));586 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));587 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));588 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Regular")));589 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));590 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Regular")));591 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));592 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Regular")));593 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));594 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Regular")));595 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));596 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Regular")));597 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));598 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));599 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));600 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));601 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));602 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));603 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));604 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));605 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));606 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));607 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));608 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));609 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));610 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));611 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));612 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));613 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));614 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));615 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));616 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));617 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));618 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));619 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));620 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));621 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));622 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));623 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));624 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Thin")));625 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));626 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Thin")));627 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));628 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Thin")));629 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));630 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Thin")));631 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));632 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Thin")));633 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));634 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));635 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));636 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));637 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));638 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));639 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));640 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));641 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));642 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight100, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-UltraLight")));643 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight100, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Thin")));644 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight200, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-UltraLight")));645 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight200, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-UltraLight")));646 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight300, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-UltraLight")));647 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight300, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Light")));648 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight400, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-UltraLight")));649 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight400, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Regular")));650 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight500, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-UltraLight")));651 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight500, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Medium")));652 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight600, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-SemiBold")));653 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight600, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-SemiBold")));654 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight700, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Bold")));655 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight700, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Bold")));656 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight800, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));657 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight800, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-ExtraBold")));658 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight900, FontItalicOff, 100, CFSTR("AppleSDGothicNeo-Heavy")));659 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", FontWeight900, FontItalicOn, 100, CFSTR("AppleSDGothicNeo-Heavy")));660 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Black")));661 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));662 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Black")));663 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));664 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Black")));665 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));666 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Black")));667 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));668 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Black")));669 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));670 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));671 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));672 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));673 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));674 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));675 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));676 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Black")));677 EXPECT_TRUE(compareFonts("Avenir-Black", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));678 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));679 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));680 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));681 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));682 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));683 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));684 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));685 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));686 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));687 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));688 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));689 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));690 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));691 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));692 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));693 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));694 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-BlackOblique")));695 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));696 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Book")));697 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));698 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Book")));699 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));700 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Book")));701 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));702 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Book")));703 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));704 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Book")));705 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));706 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));707 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));708 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));709 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));710 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));711 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));712 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));713 EXPECT_TRUE(compareFonts("Avenir-Book", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));714 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-BookOblique")));715 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));716 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-BookOblique")));717 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));718 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-BookOblique")));719 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));720 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-BookOblique")));721 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));722 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-BookOblique")));723 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));724 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));725 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));726 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));727 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));728 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));729 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));730 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));731 EXPECT_TRUE(compareFonts("Avenir-BookOblique", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));732 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Heavy")));733 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));734 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Heavy")));735 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));736 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Heavy")));737 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));738 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Heavy")));739 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));740 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Heavy")));741 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));742 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Heavy")));743 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));744 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Heavy")));745 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));746 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Heavy")));747 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));748 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));749 EXPECT_TRUE(compareFonts("Avenir-Heavy", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));750 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));751 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));752 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));753 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));754 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));755 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));756 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));757 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));758 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));759 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));760 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));761 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));762 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));763 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));764 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));765 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));766 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-HeavyOblique")));767 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));768 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Light")));769 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));770 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Light")));771 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));772 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Light")));773 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));774 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Light")));775 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));776 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Light")));777 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));778 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));779 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));780 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));781 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));782 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));783 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));784 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));785 EXPECT_TRUE(compareFonts("Avenir-Light", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));786 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-LightOblique")));787 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));788 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-LightOblique")));789 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));790 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-LightOblique")));791 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));792 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-LightOblique")));793 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));794 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-LightOblique")));795 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));796 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));797 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));798 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));799 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));800 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));801 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));802 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));803 EXPECT_TRUE(compareFonts("Avenir-LightOblique", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));804 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Medium")));805 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));806 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Medium")));807 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));808 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Medium")));809 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));810 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Medium")));811 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));812 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Medium")));813 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));814 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));815 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));816 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));817 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));818 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));819 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));820 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));821 EXPECT_TRUE(compareFonts("Avenir-Medium", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));822 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-MediumOblique")));823 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));824 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-MediumOblique")));825 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));826 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-MediumOblique")));827 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));828 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-MediumOblique")));829 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));830 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-MediumOblique")));831 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));832 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));833 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));834 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));835 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));836 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));837 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));838 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));839 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));840 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Oblique")));841 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-Oblique")));842 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Oblique")));843 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-Oblique")));844 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Oblique")));845 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-Oblique")));846 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Oblique")));847 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-Oblique")));848 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Oblique")));849 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-Oblique")));850 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));851 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));852 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));853 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));854 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));855 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));856 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));857 EXPECT_TRUE(compareFonts("Avenir-Oblique", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));858 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight100, FontItalicOff, 100, CFSTR("Avenir-Roman")));859 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight100, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));860 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight200, FontItalicOff, 100, CFSTR("Avenir-Roman")));861 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight200, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));862 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight300, FontItalicOff, 100, CFSTR("Avenir-Roman")));863 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight300, FontItalicOn, 100, CFSTR("Avenir-LightOblique")));864 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight400, FontItalicOff, 100, CFSTR("Avenir-Roman")));865 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight400, FontItalicOn, 100, CFSTR("Avenir-BookOblique")));866 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight500, FontItalicOff, 100, CFSTR("Avenir-Roman")));867 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight500, FontItalicOn, 100, CFSTR("Avenir-MediumOblique")));868 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight600, FontItalicOff, 100, CFSTR("Avenir-Black")));869 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight600, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));870 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight700, FontItalicOff, 100, CFSTR("Avenir-Black")));871 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight700, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));872 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight800, FontItalicOff, 100, CFSTR("Avenir-Black")));873 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight800, FontItalicOn, 100, CFSTR("Avenir-BlackOblique")));874 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight900, FontItalicOff, 100, CFSTR("Avenir-Heavy")));875 EXPECT_TRUE(compareFonts("Avenir-Roman", FontWeight900, FontItalicOn, 100, CFSTR("Avenir-HeavyOblique")));876 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));877 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));878 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));879 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));880 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));881 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));882 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));883 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));884 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));885 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));886 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));887 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));888 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));889 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));890 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));891 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));892 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));893 EXPECT_TRUE(compareFonts("AvenirNext-Bold", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));894 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));895 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));896 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));897 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));898 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));899 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));900 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));901 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));902 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));903 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));904 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));905 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));906 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));907 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));908 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));909 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));910 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-BoldItalic")));911 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));912 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));913 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));914 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));915 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));916 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));917 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));918 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));919 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));920 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));921 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));922 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));923 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));924 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));925 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));926 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));927 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));928 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));929 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));930 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));931 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));932 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));933 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));934 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));935 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));936 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));937 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));938 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));939 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));940 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));941 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));942 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));943 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));944 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));945 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));946 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-DemiBoldItalic")));947 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));948 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));949 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));950 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));951 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));952 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));953 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));954 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));955 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));956 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));957 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));958 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));959 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));960 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));961 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));962 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));963 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));964 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));965 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));966 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));967 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));968 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));969 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));970 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));971 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));972 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));973 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));974 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));975 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));976 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));977 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));978 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));979 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));980 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));981 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));982 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-HeavyItalic")));983 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));984 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-Italic")));985 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));986 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-Italic")));987 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));988 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-Italic")));989 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));990 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-Italic")));991 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));992 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-Italic")));993 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));994 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));995 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));996 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));997 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));998 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));999 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1000 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1001 EXPECT_TRUE(compareFonts("AvenirNext-Italic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1002 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-Medium")));1003 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1004 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-Medium")));1005 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1006 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-Medium")));1007 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1008 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-Medium")));1009 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));1010 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-Medium")));1011 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1012 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));1013 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));1014 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));1015 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));1016 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1017 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1018 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1019 EXPECT_TRUE(compareFonts("AvenirNext-Medium", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1020 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-MediumItalic")));1021 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1022 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-MediumItalic")));1023 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1024 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-MediumItalic")));1025 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1026 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-MediumItalic")));1027 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1028 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-MediumItalic")));1029 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1030 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));1031 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));1032 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));1033 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));1034 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1035 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1036 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1037 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1038 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-Regular")));1039 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1040 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-Regular")));1041 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1042 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-Regular")));1043 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1044 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-Regular")));1045 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));1046 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-Regular")));1047 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1048 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));1049 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));1050 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));1051 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));1052 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1053 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1054 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1055 EXPECT_TRUE(compareFonts("AvenirNext-Regular", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1056 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));1057 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1058 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));1059 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1060 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));1061 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1062 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));1063 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-Italic")));1064 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-UltraLight")));1065 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-MediumItalic")));1066 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));1067 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));1068 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));1069 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));1070 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1071 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1072 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1073 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1074 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNext-UltraLightItalic")));1075 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1076 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNext-UltraLightItalic")));1077 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1078 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNext-UltraLightItalic")));1079 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1080 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNext-UltraLightItalic")));1081 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1082 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNext-UltraLightItalic")));1083 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNext-UltraLightItalic")));1084 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNext-DemiBold")));1085 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNext-DemiBoldItalic")));1086 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNext-Bold")));1087 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNext-BoldItalic")));1088 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1089 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1090 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNext-Heavy")));1091 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNext-HeavyItalic")));1092 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1093 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1094 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1095 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1096 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1097 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1098 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1099 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1100 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1101 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1102 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1103 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1104 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1105 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1106 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1107 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1108 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1109 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1110 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1111 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1112 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1113 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1114 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1115 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1116 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1117 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1118 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1119 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1120 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1121 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1122 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1123 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1124 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1125 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1126 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1127 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1128 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1129 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1130 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1131 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1132 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1133 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1134 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1135 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1136 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1137 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1138 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1139 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1140 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1141 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1142 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1143 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1144 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1145 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1146 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1147 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1148 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1149 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1150 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1151 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1152 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1153 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1154 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1155 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1156 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1157 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1158 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1159 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1160 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1161 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1162 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1163 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1164 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1165 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1166 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1167 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1168 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1169 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1170 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1171 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1172 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1173 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1174 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1175 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1176 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1177 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1178 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1179 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1180 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1181 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1182 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1183 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1184 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1185 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1186 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1187 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1188 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1189 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1190 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1191 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1192 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1193 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1194 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1195 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1196 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1197 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1198 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1199 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1200 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Italic")));1201 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1202 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Italic")));1203 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1204 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Italic")));1205 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1206 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Italic")));1207 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1208 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Italic")));1209 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1210 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1211 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1212 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1213 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1214 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1215 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1216 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1217 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1218 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Medium")));1219 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1220 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Medium")));1221 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1222 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Medium")));1223 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1224 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Medium")));1225 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1226 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Medium")));1227 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1228 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1229 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1230 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1231 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1232 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1233 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1234 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1235 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1236 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1237 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1238 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1239 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1240 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1241 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1242 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1243 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1244 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1245 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1246 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1247 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1248 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1249 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1250 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1251 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1252 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1253 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1254 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Regular")));1255 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1256 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Regular")));1257 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1258 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Regular")));1259 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1260 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Regular")));1261 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1262 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Regular")));1263 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1264 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1265 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1266 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1267 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1268 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1269 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1270 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1271 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1272 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLight")));1273 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1274 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLight")));1275 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1276 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLight")));1277 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1278 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLight")));1279 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-Italic")));1280 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLight")));1281 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-MediumItalic")));1282 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1283 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1284 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1285 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1286 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1287 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1288 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1289 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1290 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight100, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1291 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight100, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1292 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight200, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1293 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight200, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1294 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight300, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1295 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight300, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1296 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight400, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1297 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight400, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1298 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight500, FontItalicOff, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1299 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight500, FontItalicOn, 100, CFSTR("AvenirNextCondensed-UltraLightItalic")));1300 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight600, FontItalicOff, 100, CFSTR("AvenirNextCondensed-DemiBold")));1301 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight600, FontItalicOn, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic")));1302 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight700, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Bold")));1303 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight700, FontItalicOn, 100, CFSTR("AvenirNextCondensed-BoldItalic")));1304 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight800, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1305 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight800, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1306 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight900, FontItalicOff, 100, CFSTR("AvenirNextCondensed-Heavy")));1307 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", FontWeight900, FontItalicOn, 100, CFSTR("AvenirNextCondensed-HeavyItalic")));1308 EXPECT_TRUE(compareFonts("Baskerville", FontWeight100, FontItalicOff, 100, CFSTR("Baskerville")));1309 EXPECT_TRUE(compareFonts("Baskerville", FontWeight100, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1310 EXPECT_TRUE(compareFonts("Baskerville", FontWeight200, FontItalicOff, 100, CFSTR("Baskerville")));1311 EXPECT_TRUE(compareFonts("Baskerville", FontWeight200, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1312 EXPECT_TRUE(compareFonts("Baskerville", FontWeight300, FontItalicOff, 100, CFSTR("Baskerville")));1313 EXPECT_TRUE(compareFonts("Baskerville", FontWeight300, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1314 EXPECT_TRUE(compareFonts("Baskerville", FontWeight400, FontItalicOff, 100, CFSTR("Baskerville")));1315 EXPECT_TRUE(compareFonts("Baskerville", FontWeight400, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1316 EXPECT_TRUE(compareFonts("Baskerville", FontWeight500, FontItalicOff, 100, CFSTR("Baskerville")));1317 EXPECT_TRUE(compareFonts("Baskerville", FontWeight500, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1318 EXPECT_TRUE(compareFonts("Baskerville", FontWeight600, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1319 EXPECT_TRUE(compareFonts("Baskerville", FontWeight600, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1320 EXPECT_TRUE(compareFonts("Baskerville", FontWeight700, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1321 EXPECT_TRUE(compareFonts("Baskerville", FontWeight700, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1322 EXPECT_TRUE(compareFonts("Baskerville", FontWeight800, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1323 EXPECT_TRUE(compareFonts("Baskerville", FontWeight800, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1324 EXPECT_TRUE(compareFonts("Baskerville", FontWeight900, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1325 EXPECT_TRUE(compareFonts("Baskerville", FontWeight900, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1326 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight100, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1327 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight100, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1328 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight200, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1329 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight200, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1330 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight300, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1331 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight300, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1332 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight400, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1333 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight400, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1334 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight500, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1335 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight500, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1336 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight600, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1337 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight600, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1338 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight700, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1339 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight700, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1340 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight800, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1341 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight800, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1342 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight900, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1343 EXPECT_TRUE(compareFonts("Baskerville-Bold", FontWeight900, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1344 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight100, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1345 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight100, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1346 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight200, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1347 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight200, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1348 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight300, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1349 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight300, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1350 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight400, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1351 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight400, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1352 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight500, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1353 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight500, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1354 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight600, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1355 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight600, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1356 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight700, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1357 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight700, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1358 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight800, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1359 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight800, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1360 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight900, FontItalicOff, 100, CFSTR("Baskerville-BoldItalic")));1361 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", FontWeight900, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1362 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight100, FontItalicOff, 100, CFSTR("Baskerville-Italic")));1363 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight100, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1364 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight200, FontItalicOff, 100, CFSTR("Baskerville-Italic")));1365 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight200, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1366 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight300, FontItalicOff, 100, CFSTR("Baskerville-Italic")));1367 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight300, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1368 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight400, FontItalicOff, 100, CFSTR("Baskerville-Italic")));1369 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight400, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1370 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight500, FontItalicOff, 100, CFSTR("Baskerville-Italic")));1371 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight500, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1372 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight600, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1373 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight600, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1374 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight700, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1375 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight700, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1376 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight800, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1377 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight800, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1378 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight900, FontItalicOff, 100, CFSTR("Baskerville-Bold")));1379 EXPECT_TRUE(compareFonts("Baskerville-Italic", FontWeight900, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1380 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight100, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1381 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight100, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1382 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight200, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1383 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight200, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1384 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight300, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1385 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight300, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1386 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight400, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1387 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight400, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1388 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight500, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1389 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight500, FontItalicOn, 100, CFSTR("Baskerville-Italic")));1390 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight600, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1391 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight600, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1392 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight700, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1393 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight700, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1394 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight800, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1395 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight800, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1396 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight900, FontItalicOff, 100, CFSTR("Baskerville-SemiBold")));1397 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", FontWeight900, FontItalicOn, 100, CFSTR("Baskerville-BoldItalic")));1398 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight100, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1399 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight100, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1400 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight200, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1401 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight200, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1402 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight300, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1403 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight300, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1404 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight400, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1405 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight400, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1406 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight500, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1407 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight500, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1408 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight600, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1409 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight600, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1410 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight700, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1411 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight700, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1412 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight800, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1413 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight800, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));1414 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight900, FontItalicOff, 100, CFSTR("Baskerville-SemiBoldItalic")));1415 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", FontWeight900, FontItalicOn, 100, CFSTR("Baskerville-SemiBoldItalic")));498 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 100, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 499 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 500 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 200, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 501 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 502 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 300, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 503 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 504 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 400, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 505 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 506 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 500, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 507 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 508 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 600, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 509 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 510 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 511 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 512 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 800, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 513 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 514 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 515 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Bold", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 516 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 100, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 517 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 518 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 200, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 519 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 520 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 300, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 521 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 522 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 400, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 523 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 524 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 500, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 525 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 526 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 600, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 527 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 528 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 700, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 529 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 530 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 800, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 531 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 532 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 900, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 533 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-ExtraBold", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 534 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 100, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 535 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 536 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 200, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 537 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 538 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 300, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 539 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 540 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 400, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 541 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 542 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 500, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 543 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 544 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 600, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 545 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 546 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 547 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 548 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 800, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 549 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 550 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 551 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Heavy", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 552 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 100, 0 , 100, CFSTR("AppleSDGothicNeo-Light"))); 553 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 554 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 200, 0 , 100, CFSTR("AppleSDGothicNeo-Light"))); 555 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 556 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 300, 0 , 100, CFSTR("AppleSDGothicNeo-Light"))); 557 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 558 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 400, 0 , 100, CFSTR("AppleSDGothicNeo-Light"))); 559 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 560 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 500, 0 , 100, CFSTR("AppleSDGothicNeo-Light"))); 561 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 562 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 600, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 563 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 564 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 565 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 566 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 800, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 567 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 568 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 569 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Light", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 570 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 100, 0 , 100, CFSTR("AppleSDGothicNeo-Medium"))); 571 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 572 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 200, 0 , 100, CFSTR("AppleSDGothicNeo-Medium"))); 573 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 574 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 300, 0 , 100, CFSTR("AppleSDGothicNeo-Medium"))); 575 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 576 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 400, 0 , 100, CFSTR("AppleSDGothicNeo-Medium"))); 577 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 578 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 500, 0 , 100, CFSTR("AppleSDGothicNeo-Medium"))); 579 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 580 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 600, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 581 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 582 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 583 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 584 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 800, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 585 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 586 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 587 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Medium", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 588 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 100, 0 , 100, CFSTR("AppleSDGothicNeo-Regular"))); 589 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 590 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 200, 0 , 100, CFSTR("AppleSDGothicNeo-Regular"))); 591 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 592 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 300, 0 , 100, CFSTR("AppleSDGothicNeo-Regular"))); 593 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 594 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 400, 0 , 100, CFSTR("AppleSDGothicNeo-Regular"))); 595 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 596 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 500, 0 , 100, CFSTR("AppleSDGothicNeo-Regular"))); 597 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 598 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 600, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 599 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 600 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 601 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 602 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 800, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 603 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 604 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 605 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Regular", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 606 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 100, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 607 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 608 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 200, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 609 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 610 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 300, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 611 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 612 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 400, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 613 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 614 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 500, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 615 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 616 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 600, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 617 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 618 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 700, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 619 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 620 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 800, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 621 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 622 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 900, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 623 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-SemiBold", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 624 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 100, 0 , 100, CFSTR("AppleSDGothicNeo-Thin"))); 625 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 626 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 200, 0 , 100, CFSTR("AppleSDGothicNeo-Thin"))); 627 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 628 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 300, 0 , 100, CFSTR("AppleSDGothicNeo-Thin"))); 629 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 630 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 400, 0 , 100, CFSTR("AppleSDGothicNeo-Thin"))); 631 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 632 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 500, 0 , 100, CFSTR("AppleSDGothicNeo-Thin"))); 633 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 634 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 600, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 635 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 636 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 637 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 638 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 800, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 639 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 640 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 641 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-Thin", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 642 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 100, 0 , 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 643 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 100, 20, 100, CFSTR("AppleSDGothicNeo-Thin"))); 644 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 200, 0 , 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 645 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 200, 20, 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 646 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 300, 0 , 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 647 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 300, 20, 100, CFSTR("AppleSDGothicNeo-Light"))); 648 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 400, 0 , 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 649 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 400, 20, 100, CFSTR("AppleSDGothicNeo-Regular"))); 650 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 500, 0 , 100, CFSTR("AppleSDGothicNeo-UltraLight"))); 651 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 500, 20, 100, CFSTR("AppleSDGothicNeo-Medium"))); 652 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 600, 0 , 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 653 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 600, 20, 100, CFSTR("AppleSDGothicNeo-SemiBold"))); 654 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 700, 0 , 100, CFSTR("AppleSDGothicNeo-Bold"))); 655 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 700, 20, 100, CFSTR("AppleSDGothicNeo-Bold"))); 656 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 800, 0 , 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 657 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 800, 20, 100, CFSTR("AppleSDGothicNeo-ExtraBold"))); 658 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 900, 0 , 100, CFSTR("AppleSDGothicNeo-Heavy"))); 659 EXPECT_TRUE(compareFonts("AppleSDGothicNeo-UltraLight", 900, 20, 100, CFSTR("AppleSDGothicNeo-Heavy"))); 660 EXPECT_TRUE(compareFonts("Avenir-Black", 100, 0 , 100, CFSTR("Avenir-Black"))); 661 EXPECT_TRUE(compareFonts("Avenir-Black", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 662 EXPECT_TRUE(compareFonts("Avenir-Black", 200, 0 , 100, CFSTR("Avenir-Black"))); 663 EXPECT_TRUE(compareFonts("Avenir-Black", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 664 EXPECT_TRUE(compareFonts("Avenir-Black", 300, 0 , 100, CFSTR("Avenir-Black"))); 665 EXPECT_TRUE(compareFonts("Avenir-Black", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 666 EXPECT_TRUE(compareFonts("Avenir-Black", 400, 0 , 100, CFSTR("Avenir-Black"))); 667 EXPECT_TRUE(compareFonts("Avenir-Black", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 668 EXPECT_TRUE(compareFonts("Avenir-Black", 500, 0 , 100, CFSTR("Avenir-Black"))); 669 EXPECT_TRUE(compareFonts("Avenir-Black", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 670 EXPECT_TRUE(compareFonts("Avenir-Black", 600, 0 , 100, CFSTR("Avenir-Black"))); 671 EXPECT_TRUE(compareFonts("Avenir-Black", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 672 EXPECT_TRUE(compareFonts("Avenir-Black", 700, 0 , 100, CFSTR("Avenir-Black"))); 673 EXPECT_TRUE(compareFonts("Avenir-Black", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 674 EXPECT_TRUE(compareFonts("Avenir-Black", 800, 0 , 100, CFSTR("Avenir-Black"))); 675 EXPECT_TRUE(compareFonts("Avenir-Black", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 676 EXPECT_TRUE(compareFonts("Avenir-Black", 900, 0 , 100, CFSTR("Avenir-Black"))); 677 EXPECT_TRUE(compareFonts("Avenir-Black", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 678 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 100, 0 , 100, CFSTR("Avenir-BlackOblique"))); 679 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 100, 20, 100, CFSTR("Avenir-BlackOblique"))); 680 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 200, 0 , 100, CFSTR("Avenir-BlackOblique"))); 681 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 200, 20, 100, CFSTR("Avenir-BlackOblique"))); 682 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 300, 0 , 100, CFSTR("Avenir-BlackOblique"))); 683 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 300, 20, 100, CFSTR("Avenir-BlackOblique"))); 684 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 400, 0 , 100, CFSTR("Avenir-BlackOblique"))); 685 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 400, 20, 100, CFSTR("Avenir-BlackOblique"))); 686 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 500, 0 , 100, CFSTR("Avenir-BlackOblique"))); 687 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 500, 20, 100, CFSTR("Avenir-BlackOblique"))); 688 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 600, 0 , 100, CFSTR("Avenir-BlackOblique"))); 689 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 690 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 700, 0 , 100, CFSTR("Avenir-BlackOblique"))); 691 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 692 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 800, 0 , 100, CFSTR("Avenir-BlackOblique"))); 693 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 694 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 900, 0 , 100, CFSTR("Avenir-BlackOblique"))); 695 EXPECT_TRUE(compareFonts("Avenir-BlackOblique", 900, 20, 100, CFSTR("Avenir-BlackOblique"))); 696 EXPECT_TRUE(compareFonts("Avenir-Book", 100, 0 , 100, CFSTR("Avenir-Book"))); 697 EXPECT_TRUE(compareFonts("Avenir-Book", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 698 EXPECT_TRUE(compareFonts("Avenir-Book", 200, 0 , 100, CFSTR("Avenir-Book"))); 699 EXPECT_TRUE(compareFonts("Avenir-Book", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 700 EXPECT_TRUE(compareFonts("Avenir-Book", 300, 0 , 100, CFSTR("Avenir-Book"))); 701 EXPECT_TRUE(compareFonts("Avenir-Book", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 702 EXPECT_TRUE(compareFonts("Avenir-Book", 400, 0 , 100, CFSTR("Avenir-Book"))); 703 EXPECT_TRUE(compareFonts("Avenir-Book", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 704 EXPECT_TRUE(compareFonts("Avenir-Book", 500, 0 , 100, CFSTR("Avenir-Book"))); 705 EXPECT_TRUE(compareFonts("Avenir-Book", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 706 EXPECT_TRUE(compareFonts("Avenir-Book", 600, 0 , 100, CFSTR("Avenir-Black"))); 707 EXPECT_TRUE(compareFonts("Avenir-Book", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 708 EXPECT_TRUE(compareFonts("Avenir-Book", 700, 0 , 100, CFSTR("Avenir-Black"))); 709 EXPECT_TRUE(compareFonts("Avenir-Book", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 710 EXPECT_TRUE(compareFonts("Avenir-Book", 800, 0 , 100, CFSTR("Avenir-Black"))); 711 EXPECT_TRUE(compareFonts("Avenir-Book", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 712 EXPECT_TRUE(compareFonts("Avenir-Book", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 713 EXPECT_TRUE(compareFonts("Avenir-Book", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 714 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 100, 0 , 100, CFSTR("Avenir-BookOblique"))); 715 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 100, 20, 100, CFSTR("Avenir-BookOblique"))); 716 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 200, 0 , 100, CFSTR("Avenir-BookOblique"))); 717 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 200, 20, 100, CFSTR("Avenir-BookOblique"))); 718 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 300, 0 , 100, CFSTR("Avenir-BookOblique"))); 719 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 300, 20, 100, CFSTR("Avenir-BookOblique"))); 720 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 400, 0 , 100, CFSTR("Avenir-BookOblique"))); 721 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 722 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 500, 0 , 100, CFSTR("Avenir-BookOblique"))); 723 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 500, 20, 100, CFSTR("Avenir-BookOblique"))); 724 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 600, 0 , 100, CFSTR("Avenir-Black"))); 725 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 726 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 700, 0 , 100, CFSTR("Avenir-Black"))); 727 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 728 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 800, 0 , 100, CFSTR("Avenir-Black"))); 729 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 730 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 731 EXPECT_TRUE(compareFonts("Avenir-BookOblique", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 732 EXPECT_TRUE(compareFonts("Avenir-Heavy", 100, 0 , 100, CFSTR("Avenir-Heavy"))); 733 EXPECT_TRUE(compareFonts("Avenir-Heavy", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 734 EXPECT_TRUE(compareFonts("Avenir-Heavy", 200, 0 , 100, CFSTR("Avenir-Heavy"))); 735 EXPECT_TRUE(compareFonts("Avenir-Heavy", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 736 EXPECT_TRUE(compareFonts("Avenir-Heavy", 300, 0 , 100, CFSTR("Avenir-Heavy"))); 737 EXPECT_TRUE(compareFonts("Avenir-Heavy", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 738 EXPECT_TRUE(compareFonts("Avenir-Heavy", 400, 0 , 100, CFSTR("Avenir-Heavy"))); 739 EXPECT_TRUE(compareFonts("Avenir-Heavy", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 740 EXPECT_TRUE(compareFonts("Avenir-Heavy", 500, 0 , 100, CFSTR("Avenir-Heavy"))); 741 EXPECT_TRUE(compareFonts("Avenir-Heavy", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 742 EXPECT_TRUE(compareFonts("Avenir-Heavy", 600, 0 , 100, CFSTR("Avenir-Heavy"))); 743 EXPECT_TRUE(compareFonts("Avenir-Heavy", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 744 EXPECT_TRUE(compareFonts("Avenir-Heavy", 700, 0 , 100, CFSTR("Avenir-Heavy"))); 745 EXPECT_TRUE(compareFonts("Avenir-Heavy", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 746 EXPECT_TRUE(compareFonts("Avenir-Heavy", 800, 0 , 100, CFSTR("Avenir-Heavy"))); 747 EXPECT_TRUE(compareFonts("Avenir-Heavy", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 748 EXPECT_TRUE(compareFonts("Avenir-Heavy", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 749 EXPECT_TRUE(compareFonts("Avenir-Heavy", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 750 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 100, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 751 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 100, 20, 100, CFSTR("Avenir-HeavyOblique"))); 752 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 200, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 753 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 200, 20, 100, CFSTR("Avenir-HeavyOblique"))); 754 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 300, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 755 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 300, 20, 100, CFSTR("Avenir-HeavyOblique"))); 756 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 400, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 757 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 400, 20, 100, CFSTR("Avenir-HeavyOblique"))); 758 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 500, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 759 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 500, 20, 100, CFSTR("Avenir-HeavyOblique"))); 760 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 600, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 761 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 600, 20, 100, CFSTR("Avenir-HeavyOblique"))); 762 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 700, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 763 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 700, 20, 100, CFSTR("Avenir-HeavyOblique"))); 764 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 800, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 765 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 800, 20, 100, CFSTR("Avenir-HeavyOblique"))); 766 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 900, 0 , 100, CFSTR("Avenir-HeavyOblique"))); 767 EXPECT_TRUE(compareFonts("Avenir-HeavyOblique", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 768 EXPECT_TRUE(compareFonts("Avenir-Light", 100, 0 , 100, CFSTR("Avenir-Light"))); 769 EXPECT_TRUE(compareFonts("Avenir-Light", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 770 EXPECT_TRUE(compareFonts("Avenir-Light", 200, 0 , 100, CFSTR("Avenir-Light"))); 771 EXPECT_TRUE(compareFonts("Avenir-Light", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 772 EXPECT_TRUE(compareFonts("Avenir-Light", 300, 0 , 100, CFSTR("Avenir-Light"))); 773 EXPECT_TRUE(compareFonts("Avenir-Light", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 774 EXPECT_TRUE(compareFonts("Avenir-Light", 400, 0 , 100, CFSTR("Avenir-Light"))); 775 EXPECT_TRUE(compareFonts("Avenir-Light", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 776 EXPECT_TRUE(compareFonts("Avenir-Light", 500, 0 , 100, CFSTR("Avenir-Light"))); 777 EXPECT_TRUE(compareFonts("Avenir-Light", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 778 EXPECT_TRUE(compareFonts("Avenir-Light", 600, 0 , 100, CFSTR("Avenir-Black"))); 779 EXPECT_TRUE(compareFonts("Avenir-Light", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 780 EXPECT_TRUE(compareFonts("Avenir-Light", 700, 0 , 100, CFSTR("Avenir-Black"))); 781 EXPECT_TRUE(compareFonts("Avenir-Light", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 782 EXPECT_TRUE(compareFonts("Avenir-Light", 800, 0 , 100, CFSTR("Avenir-Black"))); 783 EXPECT_TRUE(compareFonts("Avenir-Light", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 784 EXPECT_TRUE(compareFonts("Avenir-Light", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 785 EXPECT_TRUE(compareFonts("Avenir-Light", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 786 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 100, 0 , 100, CFSTR("Avenir-LightOblique"))); 787 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 788 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 200, 0 , 100, CFSTR("Avenir-LightOblique"))); 789 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 790 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 300, 0 , 100, CFSTR("Avenir-LightOblique"))); 791 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 792 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 400, 0 , 100, CFSTR("Avenir-LightOblique"))); 793 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 400, 20, 100, CFSTR("Avenir-LightOblique"))); 794 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 500, 0 , 100, CFSTR("Avenir-LightOblique"))); 795 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 500, 20, 100, CFSTR("Avenir-LightOblique"))); 796 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 600, 0 , 100, CFSTR("Avenir-Black"))); 797 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 798 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 700, 0 , 100, CFSTR("Avenir-Black"))); 799 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 800 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 800, 0 , 100, CFSTR("Avenir-Black"))); 801 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 802 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 803 EXPECT_TRUE(compareFonts("Avenir-LightOblique", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 804 EXPECT_TRUE(compareFonts("Avenir-Medium", 100, 0 , 100, CFSTR("Avenir-Medium"))); 805 EXPECT_TRUE(compareFonts("Avenir-Medium", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 806 EXPECT_TRUE(compareFonts("Avenir-Medium", 200, 0 , 100, CFSTR("Avenir-Medium"))); 807 EXPECT_TRUE(compareFonts("Avenir-Medium", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 808 EXPECT_TRUE(compareFonts("Avenir-Medium", 300, 0 , 100, CFSTR("Avenir-Medium"))); 809 EXPECT_TRUE(compareFonts("Avenir-Medium", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 810 EXPECT_TRUE(compareFonts("Avenir-Medium", 400, 0 , 100, CFSTR("Avenir-Medium"))); 811 EXPECT_TRUE(compareFonts("Avenir-Medium", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 812 EXPECT_TRUE(compareFonts("Avenir-Medium", 500, 0 , 100, CFSTR("Avenir-Medium"))); 813 EXPECT_TRUE(compareFonts("Avenir-Medium", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 814 EXPECT_TRUE(compareFonts("Avenir-Medium", 600, 0 , 100, CFSTR("Avenir-Black"))); 815 EXPECT_TRUE(compareFonts("Avenir-Medium", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 816 EXPECT_TRUE(compareFonts("Avenir-Medium", 700, 0 , 100, CFSTR("Avenir-Black"))); 817 EXPECT_TRUE(compareFonts("Avenir-Medium", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 818 EXPECT_TRUE(compareFonts("Avenir-Medium", 800, 0 , 100, CFSTR("Avenir-Black"))); 819 EXPECT_TRUE(compareFonts("Avenir-Medium", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 820 EXPECT_TRUE(compareFonts("Avenir-Medium", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 821 EXPECT_TRUE(compareFonts("Avenir-Medium", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 822 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 100, 0 , 100, CFSTR("Avenir-MediumOblique"))); 823 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 100, 20, 100, CFSTR("Avenir-MediumOblique"))); 824 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 200, 0 , 100, CFSTR("Avenir-MediumOblique"))); 825 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 200, 20, 100, CFSTR("Avenir-MediumOblique"))); 826 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 300, 0 , 100, CFSTR("Avenir-MediumOblique"))); 827 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 300, 20, 100, CFSTR("Avenir-MediumOblique"))); 828 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 400, 0 , 100, CFSTR("Avenir-MediumOblique"))); 829 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 400, 20, 100, CFSTR("Avenir-MediumOblique"))); 830 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 500, 0 , 100, CFSTR("Avenir-MediumOblique"))); 831 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 832 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 600, 0 , 100, CFSTR("Avenir-Black"))); 833 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 834 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 700, 0 , 100, CFSTR("Avenir-Black"))); 835 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 836 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 800, 0 , 100, CFSTR("Avenir-Black"))); 837 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 838 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 839 EXPECT_TRUE(compareFonts("Avenir-MediumOblique", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 840 EXPECT_TRUE(compareFonts("Avenir-Oblique", 100, 0 , 100, CFSTR("Avenir-Oblique"))); 841 EXPECT_TRUE(compareFonts("Avenir-Oblique", 100, 20, 100, CFSTR("Avenir-Oblique"))); 842 EXPECT_TRUE(compareFonts("Avenir-Oblique", 200, 0 , 100, CFSTR("Avenir-Oblique"))); 843 EXPECT_TRUE(compareFonts("Avenir-Oblique", 200, 20, 100, CFSTR("Avenir-Oblique"))); 844 EXPECT_TRUE(compareFonts("Avenir-Oblique", 300, 0 , 100, CFSTR("Avenir-Oblique"))); 845 EXPECT_TRUE(compareFonts("Avenir-Oblique", 300, 20, 100, CFSTR("Avenir-Oblique"))); 846 EXPECT_TRUE(compareFonts("Avenir-Oblique", 400, 0 , 100, CFSTR("Avenir-Oblique"))); 847 EXPECT_TRUE(compareFonts("Avenir-Oblique", 400, 20, 100, CFSTR("Avenir-Oblique"))); 848 EXPECT_TRUE(compareFonts("Avenir-Oblique", 500, 0 , 100, CFSTR("Avenir-Oblique"))); 849 EXPECT_TRUE(compareFonts("Avenir-Oblique", 500, 20, 100, CFSTR("Avenir-Oblique"))); 850 EXPECT_TRUE(compareFonts("Avenir-Oblique", 600, 0 , 100, CFSTR("Avenir-Black"))); 851 EXPECT_TRUE(compareFonts("Avenir-Oblique", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 852 EXPECT_TRUE(compareFonts("Avenir-Oblique", 700, 0 , 100, CFSTR("Avenir-Black"))); 853 EXPECT_TRUE(compareFonts("Avenir-Oblique", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 854 EXPECT_TRUE(compareFonts("Avenir-Oblique", 800, 0 , 100, CFSTR("Avenir-Black"))); 855 EXPECT_TRUE(compareFonts("Avenir-Oblique", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 856 EXPECT_TRUE(compareFonts("Avenir-Oblique", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 857 EXPECT_TRUE(compareFonts("Avenir-Oblique", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 858 EXPECT_TRUE(compareFonts("Avenir-Roman", 100, 0 , 100, CFSTR("Avenir-Roman"))); 859 EXPECT_TRUE(compareFonts("Avenir-Roman", 100, 20, 100, CFSTR("Avenir-LightOblique"))); 860 EXPECT_TRUE(compareFonts("Avenir-Roman", 200, 0 , 100, CFSTR("Avenir-Roman"))); 861 EXPECT_TRUE(compareFonts("Avenir-Roman", 200, 20, 100, CFSTR("Avenir-LightOblique"))); 862 EXPECT_TRUE(compareFonts("Avenir-Roman", 300, 0 , 100, CFSTR("Avenir-Roman"))); 863 EXPECT_TRUE(compareFonts("Avenir-Roman", 300, 20, 100, CFSTR("Avenir-LightOblique"))); 864 EXPECT_TRUE(compareFonts("Avenir-Roman", 400, 0 , 100, CFSTR("Avenir-Roman"))); 865 EXPECT_TRUE(compareFonts("Avenir-Roman", 400, 20, 100, CFSTR("Avenir-BookOblique"))); 866 EXPECT_TRUE(compareFonts("Avenir-Roman", 500, 0 , 100, CFSTR("Avenir-Roman"))); 867 EXPECT_TRUE(compareFonts("Avenir-Roman", 500, 20, 100, CFSTR("Avenir-MediumOblique"))); 868 EXPECT_TRUE(compareFonts("Avenir-Roman", 600, 0 , 100, CFSTR("Avenir-Black"))); 869 EXPECT_TRUE(compareFonts("Avenir-Roman", 600, 20, 100, CFSTR("Avenir-BlackOblique"))); 870 EXPECT_TRUE(compareFonts("Avenir-Roman", 700, 0 , 100, CFSTR("Avenir-Black"))); 871 EXPECT_TRUE(compareFonts("Avenir-Roman", 700, 20, 100, CFSTR("Avenir-BlackOblique"))); 872 EXPECT_TRUE(compareFonts("Avenir-Roman", 800, 0 , 100, CFSTR("Avenir-Black"))); 873 EXPECT_TRUE(compareFonts("Avenir-Roman", 800, 20, 100, CFSTR("Avenir-BlackOblique"))); 874 EXPECT_TRUE(compareFonts("Avenir-Roman", 900, 0 , 100, CFSTR("Avenir-Heavy"))); 875 EXPECT_TRUE(compareFonts("Avenir-Roman", 900, 20, 100, CFSTR("Avenir-HeavyOblique"))); 876 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 100, 0 , 100, CFSTR("AvenirNext-Bold"))); 877 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 878 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 200, 0 , 100, CFSTR("AvenirNext-Bold"))); 879 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 880 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 300, 0 , 100, CFSTR("AvenirNext-Bold"))); 881 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 882 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 400, 0 , 100, CFSTR("AvenirNext-Bold"))); 883 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 884 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 500, 0 , 100, CFSTR("AvenirNext-Bold"))); 885 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 886 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 600, 0 , 100, CFSTR("AvenirNext-Bold"))); 887 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 888 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 889 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 890 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 800, 0 , 100, CFSTR("AvenirNext-Bold"))); 891 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 892 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 900, 0 , 100, CFSTR("AvenirNext-Bold"))); 893 EXPECT_TRUE(compareFonts("AvenirNext-Bold", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 894 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 100, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 895 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 100, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 896 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 200, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 897 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 200, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 898 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 300, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 899 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 300, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 900 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 400, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 901 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 400, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 902 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 500, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 903 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 500, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 904 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 600, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 905 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 600, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 906 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 700, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 907 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 908 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 800, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 909 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 800, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 910 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 900, 0 , 100, CFSTR("AvenirNext-BoldItalic"))); 911 EXPECT_TRUE(compareFonts("AvenirNext-BoldItalic", 900, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 912 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 100, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 913 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 914 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 200, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 915 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 916 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 300, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 917 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 918 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 400, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 919 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 920 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 500, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 921 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 922 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 923 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 924 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 700, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 925 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 926 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 800, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 927 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 928 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 900, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 929 EXPECT_TRUE(compareFonts("AvenirNext-DemiBold", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 930 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 100, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 931 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 100, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 932 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 200, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 933 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 200, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 934 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 300, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 935 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 300, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 936 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 400, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 937 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 400, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 938 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 500, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 939 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 500, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 940 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 600, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 941 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 942 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 700, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 943 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 700, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 944 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 800, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 945 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 800, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 946 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 900, 0 , 100, CFSTR("AvenirNext-DemiBoldItalic"))); 947 EXPECT_TRUE(compareFonts("AvenirNext-DemiBoldItalic", 900, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 948 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 100, 0 , 100, CFSTR("AvenirNext-Heavy"))); 949 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 950 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 200, 0 , 100, CFSTR("AvenirNext-Heavy"))); 951 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 952 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 300, 0 , 100, CFSTR("AvenirNext-Heavy"))); 953 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 954 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 400, 0 , 100, CFSTR("AvenirNext-Heavy"))); 955 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 956 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 500, 0 , 100, CFSTR("AvenirNext-Heavy"))); 957 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 958 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 600, 0 , 100, CFSTR("AvenirNext-Heavy"))); 959 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 960 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 700, 0 , 100, CFSTR("AvenirNext-Heavy"))); 961 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 962 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 963 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 964 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 965 EXPECT_TRUE(compareFonts("AvenirNext-Heavy", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 966 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 100, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 967 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 100, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 968 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 200, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 969 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 200, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 970 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 300, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 971 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 300, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 972 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 400, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 973 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 400, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 974 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 500, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 975 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 500, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 976 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 600, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 977 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 600, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 978 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 700, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 979 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 700, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 980 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 800, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 981 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 982 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 900, 0 , 100, CFSTR("AvenirNext-HeavyItalic"))); 983 EXPECT_TRUE(compareFonts("AvenirNext-HeavyItalic", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 984 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 100, 0 , 100, CFSTR("AvenirNext-Italic"))); 985 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 100, 20, 100, CFSTR("AvenirNext-Italic"))); 986 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 200, 0 , 100, CFSTR("AvenirNext-Italic"))); 987 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 200, 20, 100, CFSTR("AvenirNext-Italic"))); 988 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 300, 0 , 100, CFSTR("AvenirNext-Italic"))); 989 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 300, 20, 100, CFSTR("AvenirNext-Italic"))); 990 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 400, 0 , 100, CFSTR("AvenirNext-Italic"))); 991 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 992 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 500, 0 , 100, CFSTR("AvenirNext-Italic"))); 993 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 500, 20, 100, CFSTR("AvenirNext-Italic"))); 994 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 995 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 996 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 997 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 998 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 999 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1000 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1001 EXPECT_TRUE(compareFonts("AvenirNext-Italic", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1002 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 100, 0 , 100, CFSTR("AvenirNext-Medium"))); 1003 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1004 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 200, 0 , 100, CFSTR("AvenirNext-Medium"))); 1005 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1006 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 300, 0 , 100, CFSTR("AvenirNext-Medium"))); 1007 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1008 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 400, 0 , 100, CFSTR("AvenirNext-Medium"))); 1009 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 1010 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 500, 0 , 100, CFSTR("AvenirNext-Medium"))); 1011 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1012 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 1013 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 1014 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 1015 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 1016 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1017 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1018 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1019 EXPECT_TRUE(compareFonts("AvenirNext-Medium", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1020 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 100, 0 , 100, CFSTR("AvenirNext-MediumItalic"))); 1021 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 100, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1022 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 200, 0 , 100, CFSTR("AvenirNext-MediumItalic"))); 1023 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 200, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1024 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 300, 0 , 100, CFSTR("AvenirNext-MediumItalic"))); 1025 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 300, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1026 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 400, 0 , 100, CFSTR("AvenirNext-MediumItalic"))); 1027 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 400, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1028 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 500, 0 , 100, CFSTR("AvenirNext-MediumItalic"))); 1029 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1030 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 1031 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 1032 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 1033 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 1034 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1035 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1036 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1037 EXPECT_TRUE(compareFonts("AvenirNext-MediumItalic", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1038 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 100, 0 , 100, CFSTR("AvenirNext-Regular"))); 1039 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1040 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 200, 0 , 100, CFSTR("AvenirNext-Regular"))); 1041 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1042 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 300, 0 , 100, CFSTR("AvenirNext-Regular"))); 1043 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1044 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 400, 0 , 100, CFSTR("AvenirNext-Regular"))); 1045 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 1046 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 500, 0 , 100, CFSTR("AvenirNext-Regular"))); 1047 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1048 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 1049 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 1050 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 1051 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 1052 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1053 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1054 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1055 EXPECT_TRUE(compareFonts("AvenirNext-Regular", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1056 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 100, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 1057 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1058 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 200, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 1059 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1060 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 300, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 1061 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1062 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 400, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 1063 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 400, 20, 100, CFSTR("AvenirNext-Italic"))); 1064 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 500, 0 , 100, CFSTR("AvenirNext-UltraLight"))); 1065 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 500, 20, 100, CFSTR("AvenirNext-MediumItalic"))); 1066 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 1067 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 1068 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 1069 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 1070 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1071 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1072 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1073 EXPECT_TRUE(compareFonts("AvenirNext-UltraLight", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1074 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 100, 0 , 100, CFSTR("AvenirNext-UltraLightItalic"))); 1075 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 100, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1076 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 200, 0 , 100, CFSTR("AvenirNext-UltraLightItalic"))); 1077 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 200, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1078 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 300, 0 , 100, CFSTR("AvenirNext-UltraLightItalic"))); 1079 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 300, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1080 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 400, 0 , 100, CFSTR("AvenirNext-UltraLightItalic"))); 1081 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 400, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1082 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 500, 0 , 100, CFSTR("AvenirNext-UltraLightItalic"))); 1083 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 500, 20, 100, CFSTR("AvenirNext-UltraLightItalic"))); 1084 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 600, 0 , 100, CFSTR("AvenirNext-DemiBold"))); 1085 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 600, 20, 100, CFSTR("AvenirNext-DemiBoldItalic"))); 1086 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 700, 0 , 100, CFSTR("AvenirNext-Bold"))); 1087 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 700, 20, 100, CFSTR("AvenirNext-BoldItalic"))); 1088 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 800, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1089 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 800, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1090 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 900, 0 , 100, CFSTR("AvenirNext-Heavy"))); 1091 EXPECT_TRUE(compareFonts("AvenirNext-UltraLightItalic", 900, 20, 100, CFSTR("AvenirNext-HeavyItalic"))); 1092 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 100, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1093 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 100, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1094 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 200, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1095 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 200, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1096 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 300, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1097 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 300, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1098 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 400, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1099 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 400, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1100 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 500, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1101 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 500, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1102 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 600, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1103 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1104 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 700, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1105 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1106 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 800, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1107 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1108 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 900, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1109 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Bold", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1110 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 100, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1111 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 100, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1112 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 200, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1113 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 200, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1114 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 300, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1115 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 300, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1116 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 400, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1117 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 400, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1118 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 500, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1119 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 500, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1120 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 600, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1121 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 600, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1122 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 700, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1123 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1124 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 800, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1125 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 800, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1126 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 900, 0 , 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1127 EXPECT_TRUE(compareFonts("AvenirNextCondensed-BoldItalic", 900, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1128 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 100, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1129 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 100, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1130 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 200, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1131 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 200, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1132 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 300, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1133 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 300, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1134 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 400, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1135 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 400, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1136 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 500, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1137 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 500, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1138 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1139 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1140 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 700, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1141 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1142 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 800, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1143 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1144 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 900, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1145 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBold", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1146 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 100, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1147 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 100, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1148 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 200, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1149 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 200, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1150 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 300, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1151 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 300, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1152 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 400, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1153 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 400, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1154 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 500, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1155 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 500, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1156 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1157 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1158 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 700, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1159 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 700, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1160 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 800, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1161 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 800, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1162 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 900, 0 , 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1163 EXPECT_TRUE(compareFonts("AvenirNextCondensed-DemiBoldItalic", 900, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1164 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 100, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1165 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 100, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1166 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 200, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1167 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 200, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1168 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 300, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1169 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 300, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1170 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 400, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1171 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 400, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1172 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 500, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1173 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 500, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1174 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 600, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1175 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1176 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 700, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1177 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1178 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 800, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1179 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1180 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 900, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1181 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Heavy", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1182 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 100, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1183 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 100, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1184 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 200, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1185 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 200, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1186 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 300, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1187 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 300, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1188 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 400, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1189 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 400, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1190 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 500, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1191 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 500, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1192 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 600, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1193 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 600, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1194 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 700, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1195 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 700, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1196 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 800, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1197 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1198 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 900, 0 , 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1199 EXPECT_TRUE(compareFonts("AvenirNextCondensed-HeavyItalic", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1200 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 100, 0 , 100, CFSTR("AvenirNextCondensed-Italic"))); 1201 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 100, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1202 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 200, 0 , 100, CFSTR("AvenirNextCondensed-Italic"))); 1203 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 200, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1204 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 300, 0 , 100, CFSTR("AvenirNextCondensed-Italic"))); 1205 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 300, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1206 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 400, 0 , 100, CFSTR("AvenirNextCondensed-Italic"))); 1207 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 400, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1208 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 500, 0 , 100, CFSTR("AvenirNextCondensed-Italic"))); 1209 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 500, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1210 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1211 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1212 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 700, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1213 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1214 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 800, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1215 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1216 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 900, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1217 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Italic", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1218 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 100, 0 , 100, CFSTR("AvenirNextCondensed-Medium"))); 1219 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 100, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1220 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 200, 0 , 100, CFSTR("AvenirNextCondensed-Medium"))); 1221 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 200, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1222 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 300, 0 , 100, CFSTR("AvenirNextCondensed-Medium"))); 1223 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 300, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1224 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 400, 0 , 100, CFSTR("AvenirNextCondensed-Medium"))); 1225 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 400, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1226 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 500, 0 , 100, CFSTR("AvenirNextCondensed-Medium"))); 1227 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 500, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1228 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1229 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1230 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 700, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1231 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1232 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 800, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1233 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1234 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 900, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1235 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Medium", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1236 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 100, 0 , 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1237 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 100, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1238 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 200, 0 , 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1239 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 200, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1240 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 300, 0 , 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1241 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 300, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1242 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 400, 0 , 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1243 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 400, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1244 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 500, 0 , 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1245 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 500, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1246 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1247 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1248 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 700, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1249 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1250 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 800, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1251 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1252 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 900, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1253 EXPECT_TRUE(compareFonts("AvenirNextCondensed-MediumItalic", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1254 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 100, 0 , 100, CFSTR("AvenirNextCondensed-Regular"))); 1255 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 100, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1256 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 200, 0 , 100, CFSTR("AvenirNextCondensed-Regular"))); 1257 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 200, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1258 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 300, 0 , 100, CFSTR("AvenirNextCondensed-Regular"))); 1259 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 300, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1260 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 400, 0 , 100, CFSTR("AvenirNextCondensed-Regular"))); 1261 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 400, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1262 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 500, 0 , 100, CFSTR("AvenirNextCondensed-Regular"))); 1263 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 500, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1264 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1265 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1266 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 700, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1267 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1268 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 800, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1269 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1270 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 900, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1271 EXPECT_TRUE(compareFonts("AvenirNextCondensed-Regular", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1272 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 100, 0 , 100, CFSTR("AvenirNextCondensed-UltraLight"))); 1273 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 100, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1274 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 200, 0 , 100, CFSTR("AvenirNextCondensed-UltraLight"))); 1275 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 200, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1276 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 300, 0 , 100, CFSTR("AvenirNextCondensed-UltraLight"))); 1277 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 300, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1278 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 400, 0 , 100, CFSTR("AvenirNextCondensed-UltraLight"))); 1279 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 400, 20, 100, CFSTR("AvenirNextCondensed-Italic"))); 1280 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 500, 0 , 100, CFSTR("AvenirNextCondensed-UltraLight"))); 1281 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 500, 20, 100, CFSTR("AvenirNextCondensed-MediumItalic"))); 1282 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1283 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1284 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 700, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1285 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1286 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 800, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1287 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1288 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 900, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1289 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLight", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1290 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 100, 0 , 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1291 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 100, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1292 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 200, 0 , 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1293 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 200, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1294 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 300, 0 , 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1295 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 300, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1296 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 400, 0 , 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1297 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 400, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1298 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 500, 0 , 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1299 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 500, 20, 100, CFSTR("AvenirNextCondensed-UltraLightItalic"))); 1300 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 600, 0 , 100, CFSTR("AvenirNextCondensed-DemiBold"))); 1301 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 600, 20, 100, CFSTR("AvenirNextCondensed-DemiBoldItalic"))); 1302 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 700, 0 , 100, CFSTR("AvenirNextCondensed-Bold"))); 1303 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 700, 20, 100, CFSTR("AvenirNextCondensed-BoldItalic"))); 1304 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 800, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1305 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 800, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1306 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 900, 0 , 100, CFSTR("AvenirNextCondensed-Heavy"))); 1307 EXPECT_TRUE(compareFonts("AvenirNextCondensed-UltraLightItalic", 900, 20, 100, CFSTR("AvenirNextCondensed-HeavyItalic"))); 1308 EXPECT_TRUE(compareFonts("Baskerville", 100, 0 , 100, CFSTR("Baskerville"))); 1309 EXPECT_TRUE(compareFonts("Baskerville", 100, 20, 100, CFSTR("Baskerville-Italic"))); 1310 EXPECT_TRUE(compareFonts("Baskerville", 200, 0 , 100, CFSTR("Baskerville"))); 1311 EXPECT_TRUE(compareFonts("Baskerville", 200, 20, 100, CFSTR("Baskerville-Italic"))); 1312 EXPECT_TRUE(compareFonts("Baskerville", 300, 0 , 100, CFSTR("Baskerville"))); 1313 EXPECT_TRUE(compareFonts("Baskerville", 300, 20, 100, CFSTR("Baskerville-Italic"))); 1314 EXPECT_TRUE(compareFonts("Baskerville", 400, 0 , 100, CFSTR("Baskerville"))); 1315 EXPECT_TRUE(compareFonts("Baskerville", 400, 20, 100, CFSTR("Baskerville-Italic"))); 1316 EXPECT_TRUE(compareFonts("Baskerville", 500, 0 , 100, CFSTR("Baskerville"))); 1317 EXPECT_TRUE(compareFonts("Baskerville", 500, 20, 100, CFSTR("Baskerville-Italic"))); 1318 EXPECT_TRUE(compareFonts("Baskerville", 600, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1319 EXPECT_TRUE(compareFonts("Baskerville", 600, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1320 EXPECT_TRUE(compareFonts("Baskerville", 700, 0 , 100, CFSTR("Baskerville-Bold"))); 1321 EXPECT_TRUE(compareFonts("Baskerville", 700, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1322 EXPECT_TRUE(compareFonts("Baskerville", 800, 0 , 100, CFSTR("Baskerville-Bold"))); 1323 EXPECT_TRUE(compareFonts("Baskerville", 800, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1324 EXPECT_TRUE(compareFonts("Baskerville", 900, 0 , 100, CFSTR("Baskerville-Bold"))); 1325 EXPECT_TRUE(compareFonts("Baskerville", 900, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1326 EXPECT_TRUE(compareFonts("Baskerville-Bold", 100, 0 , 100, CFSTR("Baskerville-Bold"))); 1327 EXPECT_TRUE(compareFonts("Baskerville-Bold", 100, 20, 100, CFSTR("Baskerville-Italic"))); 1328 EXPECT_TRUE(compareFonts("Baskerville-Bold", 200, 0 , 100, CFSTR("Baskerville-Bold"))); 1329 EXPECT_TRUE(compareFonts("Baskerville-Bold", 200, 20, 100, CFSTR("Baskerville-Italic"))); 1330 EXPECT_TRUE(compareFonts("Baskerville-Bold", 300, 0 , 100, CFSTR("Baskerville-Bold"))); 1331 EXPECT_TRUE(compareFonts("Baskerville-Bold", 300, 20, 100, CFSTR("Baskerville-Italic"))); 1332 EXPECT_TRUE(compareFonts("Baskerville-Bold", 400, 0 , 100, CFSTR("Baskerville-Bold"))); 1333 EXPECT_TRUE(compareFonts("Baskerville-Bold", 400, 20, 100, CFSTR("Baskerville-Italic"))); 1334 EXPECT_TRUE(compareFonts("Baskerville-Bold", 500, 0 , 100, CFSTR("Baskerville-Bold"))); 1335 EXPECT_TRUE(compareFonts("Baskerville-Bold", 500, 20, 100, CFSTR("Baskerville-Italic"))); 1336 EXPECT_TRUE(compareFonts("Baskerville-Bold", 600, 0 , 100, CFSTR("Baskerville-Bold"))); 1337 EXPECT_TRUE(compareFonts("Baskerville-Bold", 600, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1338 EXPECT_TRUE(compareFonts("Baskerville-Bold", 700, 0 , 100, CFSTR("Baskerville-Bold"))); 1339 EXPECT_TRUE(compareFonts("Baskerville-Bold", 700, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1340 EXPECT_TRUE(compareFonts("Baskerville-Bold", 800, 0 , 100, CFSTR("Baskerville-Bold"))); 1341 EXPECT_TRUE(compareFonts("Baskerville-Bold", 800, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1342 EXPECT_TRUE(compareFonts("Baskerville-Bold", 900, 0 , 100, CFSTR("Baskerville-Bold"))); 1343 EXPECT_TRUE(compareFonts("Baskerville-Bold", 900, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1344 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 100, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1345 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 100, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1346 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 200, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1347 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 200, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1348 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 300, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1349 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 300, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1350 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 400, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1351 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 400, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1352 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 500, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1353 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 500, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1354 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 600, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1355 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 600, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1356 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 700, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1357 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 700, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1358 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 800, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1359 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 800, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1360 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 900, 0 , 100, CFSTR("Baskerville-BoldItalic"))); 1361 EXPECT_TRUE(compareFonts("Baskerville-BoldItalic", 900, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1362 EXPECT_TRUE(compareFonts("Baskerville-Italic", 100, 0 , 100, CFSTR("Baskerville-Italic"))); 1363 EXPECT_TRUE(compareFonts("Baskerville-Italic", 100, 20, 100, CFSTR("Baskerville-Italic"))); 1364 EXPECT_TRUE(compareFonts("Baskerville-Italic", 200, 0 , 100, CFSTR("Baskerville-Italic"))); 1365 EXPECT_TRUE(compareFonts("Baskerville-Italic", 200, 20, 100, CFSTR("Baskerville-Italic"))); 1366 EXPECT_TRUE(compareFonts("Baskerville-Italic", 300, 0 , 100, CFSTR("Baskerville-Italic"))); 1367 EXPECT_TRUE(compareFonts("Baskerville-Italic", 300, 20, 100, CFSTR("Baskerville-Italic"))); 1368 EXPECT_TRUE(compareFonts("Baskerville-Italic", 400, 0 , 100, CFSTR("Baskerville-Italic"))); 1369 EXPECT_TRUE(compareFonts("Baskerville-Italic", 400, 20, 100, CFSTR("Baskerville-Italic"))); 1370 EXPECT_TRUE(compareFonts("Baskerville-Italic", 500, 0 , 100, CFSTR("Baskerville-Italic"))); 1371 EXPECT_TRUE(compareFonts("Baskerville-Italic", 500, 20, 100, CFSTR("Baskerville-Italic"))); 1372 EXPECT_TRUE(compareFonts("Baskerville-Italic", 600, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1373 EXPECT_TRUE(compareFonts("Baskerville-Italic", 600, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1374 EXPECT_TRUE(compareFonts("Baskerville-Italic", 700, 0 , 100, CFSTR("Baskerville-Bold"))); 1375 EXPECT_TRUE(compareFonts("Baskerville-Italic", 700, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1376 EXPECT_TRUE(compareFonts("Baskerville-Italic", 800, 0 , 100, CFSTR("Baskerville-Bold"))); 1377 EXPECT_TRUE(compareFonts("Baskerville-Italic", 800, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1378 EXPECT_TRUE(compareFonts("Baskerville-Italic", 900, 0 , 100, CFSTR("Baskerville-Bold"))); 1379 EXPECT_TRUE(compareFonts("Baskerville-Italic", 900, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1380 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 100, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1381 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 100, 20, 100, CFSTR("Baskerville-Italic"))); 1382 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 200, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1383 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 200, 20, 100, CFSTR("Baskerville-Italic"))); 1384 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 300, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1385 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 300, 20, 100, CFSTR("Baskerville-Italic"))); 1386 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 400, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1387 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 400, 20, 100, CFSTR("Baskerville-Italic"))); 1388 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 500, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1389 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 500, 20, 100, CFSTR("Baskerville-Italic"))); 1390 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 600, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1391 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 600, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1392 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 700, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1393 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 700, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1394 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 800, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1395 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 800, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1396 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 900, 0 , 100, CFSTR("Baskerville-SemiBold"))); 1397 EXPECT_TRUE(compareFonts("Baskerville-SemiBold", 900, 20, 100, CFSTR("Baskerville-BoldItalic"))); 1398 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 100, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1399 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 100, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1400 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 200, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1401 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 200, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1402 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 300, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1403 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 300, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1404 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 400, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1405 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 400, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1406 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 500, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1407 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 500, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1408 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 600, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1409 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 600, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1410 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 700, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1411 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 700, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1412 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 800, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1413 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 800, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1414 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 900, 0 , 100, CFSTR("Baskerville-SemiBoldItalic"))); 1415 EXPECT_TRUE(compareFonts("Baskerville-SemiBoldItalic", 900, 20, 100, CFSTR("Baskerville-SemiBoldItalic"))); 1416 1416 } 1417 1417
Note:
See TracChangeset
for help on using the changeset viewer.