From 356b68a00afaf972908cb2a478170e3933eaf974 Mon Sep 17 00:00:00 2001 From: Ebrahim Byagowi Date: Thu, 25 Jul 2019 23:22:00 +0430 Subject: [PATCH] [metrics] Add a test that actually practices variation (#1858) --- test/api/fonts/TestCFF2VF.otf | Bin 0 -> 3636 bytes test/api/test-ot-metrics.c | 28 ++++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 test/api/fonts/TestCFF2VF.otf diff --git a/test/api/fonts/TestCFF2VF.otf b/test/api/fonts/TestCFF2VF.otf new file mode 100644 index 0000000000000000000000000000000000000000..a9e48e396372d41d6615e429d54c5a1ab610ea61 GIT binary patch literal 3636 zcmbVP4Nz3q6+ZXv56iOBhek2z=%UonRw!U_O0`iJ#l)XtTtrNxxUf%_x<9z=5~7HL z5Eph~7toLpNz|$_YGaeeVhoNrI{h^|O_*qB+QgVi>P)L``nNcXrQdz~6f|mW-_CpY zJKs6yyXW2a?tORj3kvdSG$T@z(KOGzK$^7rB$4hc5#{CPMX`(drg1%QyGj{6!v-VK(fU3(YG`e|~JyBd|TNUwE=`-f|jCGhh#L|5Dgr-25P$ zXw>7d^YYE#&RVsoa4{r9u-BRk<`q;|*jnJPfj!YuWpPh6Og|6%CD_wS9hM3Tv3|sJ zz2ocPZ#n1fhQAN?4{eggI{IDnA^3THGi@NWSI%{< z17tp2v`&jd`cdx01w_I-M4Iaru1e3)abCY}AN)ps=fs5Izh=KVqxfsH|4AyaQD5|m2-Km0p%RKP8bCrb zqKOtqTegO>*i^7_npl-uB?#(~=^W3SZ_1~+ltKl<^&u_qktKlUH52Wk4(Ic>44qK0X1E5X#oPbB!pA`Kih^~h=cosLkambvdiJm7bZAGs|IF zFS$JHq-x2Sm7bkGGdnwH=KYjpxs_6Rna#7H+T*q?;iy2W^zh|WcBT#U_i)~WQf_0Z zWG(kP?v#phX30@r;<8)s^xa}jU-59pWVe*AzcWFm$V@KslAB6NA|vI(vdXBCEMUuV zEx}xuXgSU@MA~IOlhUzbWa6BKwPHS*C?9B~)-9#Gb<&{ZA_r8QR0vHsRiYOcEF<)W zRc+ursET{4Zu`>ZK6B6)S6GjH9<>f_HBKXDdpc#~oQZ2T<)HmvYZ|U@B^1kX&o=b1 z0Qw%(YM~{!xdQkr!RAsPepw^#EA5`~5109HQFlI#rKrS;y1W>b2URsP&Ws!fa!N3Q zc4R*&@9tRBL*(3wG0AUCDW27XdKiw1exb0)4;{mp-dgJcZXXOthf_`QB$Qhvm)qrV zl6rpLk^)L9eco-Sq%ya(o|5bqkCT$H67z%M%cdg(v7y4~dMaQ^*A2XDNI9FZYrGsX zO?Dsz7XL&FebgsA=Hg2$AN*s)y&3_{>udshf^A~I|J5ETAdVZTD83jFZ=?=Z^vp@t zhuPq@@Bgjh_!NDAIPvtC2cJDYcjxoL#-OMPYEON=Ka#j})AqIl&#w6hOr-CW<-@vH zrsxMOA4L)ZVoZ2Uq~^dH={GH+rsqBHQSZ?y`c+q-3dc3>Y;JYE*ZUphgljKEw8{EK zk+^5lohP38_=Oz-ALyPRc#rNWo1zbo4%h52erqul1}$^LT=dYZc2xQ4iqBD8%z&`B zfA@#GFYdFvu_{#GzO{Ax_O{lBwz>}S(V+IVIeT*Vn!=hvA=ucsv&9!|4AnQhxUbZ4 zvO^sIx%rRD`pAYGDK-0ojgbG=g@`&?KXq`mqxVPwIzD|Na(Y`=>A8-YR#6*%aepy7 z{bb+|VaEr9UGu|^m7krMz00w-zuWaQ(=JE5s5R<$+m1dBp|z(zDf>9Iwc(|$yS8_9 z)P}?fMUls<4+ne@opIxuxji!D=Jn=4t8ag?FBE8Q3bu(FqrQIweidB8wQY;b|N7>p zZr_0exQ)tzU$<5H%ctniY&eswKk45Q5dA07_; zAgUv&XTqueg&WTJFSLp={CP8`=^r>ddQ0cP#?FhKr#jm@dpi9%w!Q542ejkof{8=NsO7ayQJ6<>o>%mx1J9q>Ms{v2_(k#kAbF&u>)@$37>7>5)gkp zHk|P3xj%W|YVp-~H3fs>#oBqf@0FiV~5XQI9gS9qTAV3*;&yg|I(!Al-;?DzS9Bc^7!7aqg346ii%2TmPBP1ySp)3Z1r{y)jUMn!d4JlB$IrT+k8JQsfe literal 0 HcmV?d00001 diff --git a/test/api/test-ot-metrics.c b/test/api/test-ot-metrics.c index 91dd7f5e1..9712c932a 100644 --- a/test/api/test-ot-metrics.c +++ b/test/api/test-ot-metrics.c @@ -31,7 +31,7 @@ /* Unit tests for hb-ot-metrics.h */ static void -test_ot_metrics_get (void) +test_ot_metrics_get_no_var (void) { hb_face_t *face = hb_test_open_font_file ("fonts/cpal-v0.ttf"); hb_font_t *font = hb_font_create (face); @@ -40,15 +40,39 @@ test_ot_metrics_get (void) g_assert_cmpint (value, ==, 1000); g_assert_cmpint (hb_ot_metrics_get_x_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0); g_assert_cmpint (hb_ot_metrics_get_y_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0); + g_assert_cmpint (hb_ot_metrics_get_x_variation (font, HB_OT_METRICS_X_HEIGHT), ==, 0); // g_assert_cmpint ((int) hb_ot_metrics_get_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0); hb_font_destroy (font); hb_face_destroy (face); } +static void +test_ot_metrics_get_var (void) +{ + hb_face_t *face = hb_test_open_font_file ("fonts/TestCFF2VF.otf"); + hb_font_t *font = hb_font_create (face); + hb_position_t value; + g_assert (hb_ot_metrics_get_position (font, HB_OT_METRICS_X_HEIGHT, &value)); + g_assert_cmpint (value, ==, 486); + g_assert_cmpint (hb_ot_metrics_get_x_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0); + g_assert_cmpint (hb_ot_metrics_get_y_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0); + g_assert_cmpint (hb_ot_metrics_get_x_variation (font, HB_OT_METRICS_X_HEIGHT), ==, 0); + float coords[] = {100.f}; + hb_font_set_var_coords_design (font, coords, 1); + g_assert (hb_ot_metrics_get_position (font, HB_OT_METRICS_X_HEIGHT, &value)); + g_assert_cmpint (value, ==, 478); + g_assert_cmpint (hb_ot_metrics_get_x_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0); + g_assert_cmpint (hb_ot_metrics_get_y_variation (font, HB_OT_METRICS_HORIZONTAL_ASCENDER), ==, 0); + g_assert_cmpint (hb_ot_metrics_get_x_variation (font, HB_OT_METRICS_X_HEIGHT), ==, -8); + hb_font_destroy (font); + hb_face_destroy (face); +} + int main (int argc, char **argv) { hb_test_init (&argc, &argv); - hb_test_add (test_ot_metrics_get); + hb_test_add (test_ot_metrics_get_no_var); + hb_test_add (test_ot_metrics_get_var); return hb_test_run (); }