summaryrefslogtreecommitdiffstats
path: root/tests/reference
diff options
context:
space:
mode:
Diffstat (limited to 'tests/reference')
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.lg2
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist266
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif10
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif68
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif10
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif7
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif5
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist256
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif6
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist10
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist547
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist10
-rw-r--r--tests/reference/psfmakefea/issue65.fea7
-rw-r--r--tests/reference/psfmakefea/issue65.log0
-rw-r--r--tests/reference/psfmakefea/ligatures.fea15
-rw-r--r--tests/reference/psfmakefea/ligatures.log0
-rw-r--r--tests/reference/psfmakefea/psfmakefea.fea11
-rw-r--r--tests/reference/psfmakefea/psfmakefea.log0
-rw-r--r--tests/reference/psfmakefea/psfmakefea_2.fea11
-rw-r--r--tests/reference/psfmakefea/psfmakefea_2.log0
-rw-r--r--tests/reference/ufo/psfbuildcomp.lg52
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist260
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif12
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif12
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif12
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif10
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist256
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/lib.plist536
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfbuildcompgc.lg3
-rw-r--r--tests/reference/ufo/psfchangettfglyphnames.lg4
-rw-r--r--tests/reference/ufo/psfchangettfglyphnames.ttfbin0 -> 21668 bytes
-rw-r--r--tests/reference/ufo/psfcheckbasicchars.lg199
-rw-r--r--tests/reference/ufo/psfcopyglyphs.lg30
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif61
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif20
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif32
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif51
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist240
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/lib.plist538
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.lg27
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist260
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist230
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist536
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfexportanchors.lg17
-rw-r--r--tests/reference/ufo/psfexportanchors.xml928
-rw-r--r--tests/reference/ufo/psfexportunicodes.csv113
-rw-r--r--tests/reference/ufo/psfexportunicodes.lg14
-rw-r--r--tests/reference/ufo/psfgenftml.ftml66
-rw-r--r--tests/reference/ufo/psfgenftml.lg19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo.lg13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif34
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif68
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif34
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif59
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist417
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist260
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif68
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist417
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfmakefea.fea214
-rw-r--r--tests/reference/ufo/psfmakefea.lg2
-rw-r--r--tests/reference/ufo/psfmakewoffmetadata.lg13
-rw-r--r--tests/reference/ufo/psfmakewoffmetadata.xml82
-rw-r--r--tests/reference/ufo/psfnormalize.lg18
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/fontinfo.plist240
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/lib.plist534
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfrenameglyphs.lg34
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist244
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif34
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif42
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif34
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif23
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif59
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif51
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/lib.plist531
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetassocfeat.lg30
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/lib.plist538
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetassocuids.lg22
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif25
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif34
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif46
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif42
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif34
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif23
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif59
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/lib.plist535
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetglyphorder.lg158
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/lib.plist451
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetkeys.lg27
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist242
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif79
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/lib.plist534
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetpsnames.lg155
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif79
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/lib.plist368
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetunicodes.lg149
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist240
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif23
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/lib.plist534
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfsyncmasters-Bold-lib.plist536
-rw-r--r--tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsyncmasters.lg12
-rw-r--r--tests/reference/ufo/psfufo2ttf.lg4
-rw-r--r--tests/reference/ufo/psfufo2ttf.ttfbin0 -> 22532 bytes
1725 files changed, 76844 insertions, 0 deletions
diff --git a/tests/reference/fontparts/psfbuildcompgc.lg b/tests/reference/fontparts/psfbuildcompgc.lg
new file mode 100644
index 0000000..601efdc
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.lg
@@ -0,0 +1,2 @@
+2020-07-28 14:48:16 Progress: Running: psfbuildcompgc tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfbuildcomp.txt -l local/testresults/fontparts/psfbuildcompgc.log
+2020-07-28 14:48:16 Progress: Opening file for input: tests/input/psfbuildcomp.txt
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist
new file mode 100644
index 0000000..f68e491
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist
@@ -0,0 +1,266 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.0</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/01 11:00:00</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFamilyBlues</key>
+ <array/>
+ <key>postscriptFamilyOtherBlues</key>
+ <array/>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptOtherBlues</key>
+ <array/>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ </dict>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..921c81b
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..c50d8b5
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="365" y="1045" type="line"/>
+ <point x="370" y="1186"/>
+ <point x="376" y="1339"/>
+ <point x="405" y="1585" type="curve"/>
+ <point x="200" y="1585" type="line"/>
+ <point x="231" y="1339"/>
+ <point x="236" y="1186"/>
+ <point x="240" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..b65fff8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..aa6dc56
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..3f77dc1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..8e837f7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..cc8b02d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..4d372c6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..10b0452
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..7a99e84
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..ba2c3d5
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..808ca70
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..65578e7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Comma" format="2">
+ <advance width="650"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..14cdcef
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..af294c1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..2571d95
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..68ddea0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..e024dc1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..9a1b923
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..204b6e6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..876164d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..9e58e78
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..c146e7c
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..ff237fa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..b2c2552
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..fe4133b
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..dc73854
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..e727469
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..027bf85
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..7353003
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..406c624
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..257fbf0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..97ffdb6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ed3fa37
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..b516844
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..1126b7f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e5568d8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..9c45eaa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..02eccd6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..791c68d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6458162
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..bd2a70f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..18d9cb1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif
new file mode 100644
index 0000000..2fef8c0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapCAcute" format="2">
+ <advance width="1020"/>
+ <unicode hex="0106"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombAcute" xOffset="1140.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..eaf16f9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapCAcuteCedilla" format="2">
+ <advance width="1355"/>
+ <unicode hex="1E08"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombCedilla" xOffset="750.0"/>
+ <component base="CombAcute" xOffset="1320.0" yOffset="430.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif
new file mode 100644
index 0000000..0f2f0f8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapCCircum" format="2">
+ <advance width="1355"/>
+ <unicode hex="0108"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombCircum" xOffset="1320.0" yOffset="430.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..07be047
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..d37fb05
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9167dfd
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..e969082
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..9d529e4
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..b7e0fb1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif
new file mode 100644
index 0000000..56f2efb
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapIJ" format="2">
+ <advance width="1940"/>
+ <unicode hex="0132"/>
+ <outline>
+ <component base="LtnCapI"/>
+ <component base="LtnCapJ" xOffset="975"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..46e2482
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..057c735
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..52fdb6f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..f350197
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..2aaa015
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..a8d9d48
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..951363e
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..f77cfcc
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..5c26573
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..d366837
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..04a79a2
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..89a8ff7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..997a8a7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..2c1334b
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..441f459
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..e21cdce
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..85a2cbd
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,68 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+GlyphNote A
+</note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f65e4af
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..3029ff4
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..a276885
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..d738e2a
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..30de698
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ <component base="LtnSmA"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..83f6f41
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ <component base="LtnSmA"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..ab7bcde
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..39f16eb
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif
new file mode 100644
index 0000000..de7824f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmCAcute" format="2">
+ <advance width="1355"/>
+ <unicode hex="0107"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombAcute" xOffset="1320.0" yOffset="430.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..0c65825
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmCAcuteCedilla" format="2">
+ <advance width="1020"/>
+ <unicode hex="1E09"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombCedilla" xOffset="580.0"/>
+ <component base="CombAcute" xOffset="1140.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif
new file mode 100644
index 0000000..5fc7213
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmCCircum" format="2">
+ <advance width="1020"/>
+ <unicode hex="0109"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombCircum" xOffset="1140.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..bbf7c3f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..81c908d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..3134ee2
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..def42a0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..146c089
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..08cb359
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif
new file mode 100644
index 0000000..347d2ad
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmIJ" format="2">
+ <advance width="1160"/>
+ <unicode hex="0133"/>
+ <outline>
+ <component base="LtnSmI"/>
+ <component base="LtnSmJ" xOffset="565"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif
new file mode 100644
index 0000000..8316e85
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmITilde" format="2">
+ <advance width="1110.0"/>
+ <unicode hex="0129"/>
+ <outline>
+ <component base="LtnSmDotlessI" xOffset="550.0"/>
+ <component base="CombTilde" xOffset="1125.0" yOffset="-1100.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
new file mode 100644
index 0000000..65aebc1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmITildeGrave" format="2">
+ <unicode hex="E000"/>
+ <outline>
+ <component base="LtnSmDotlessI"/>
+ <component base="CombTilde" xOffset="575.0" yOffset="-1100.0"/>
+ <component base="CombGrave" xOffset="550.0" yOffset="-725.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
new file mode 100644
index 0000000..62825a9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmITildeGraveCedilla" format="2">
+ <advance width="1150.0"/>
+ <unicode hex="E010"/>
+ <note>
+i cedilla tilde grave
+</note>
+ <outline>
+ <component base="LtnSmDotlessI" xOffset="590.0"/>
+ <component base="CombCedilla" xOffset="590.0"/>
+ <component base="CombTilde" xOffset="1165.0" yOffset="-1100.0"/>
+ <component base="CombGrave" xOffset="1140.0" yOffset="-725.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..f5d9485
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..13033fa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..11d4645
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..921bd1f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..bb83ce9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..307e0a8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..ec43067
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9a891c1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..a49e22e
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..e823587
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..841b84d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..58e1d92
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..803148c
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..947f002
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..a194d45
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..804529e
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..69d61c1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..4128da8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..ed94862
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..13fc2a0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..ab5a7d9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..cbffc49
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..1860a5c
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..28db4ac
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..4275b62
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..e7c3618
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..53d0447
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..84af648
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..f9f2cd9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..afad348
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..3e1a16f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..f4d5348
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..f6c8b49
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name=".null" format="2">
+ <outline>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..30ac1df
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist
@@ -0,0 +1,256 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapCAcute</key>
+ <string>L_tnC_apC_A_cute.glif</string>
+ <key>LtnCapCAcuteCedilla</key>
+ <string>L_tnC_apC_A_cuteC_edilla.glif</string>
+ <key>LtnCapCCircum</key>
+ <string>L_tnC_apC_C_ircum.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapIJ</key>
+ <string>L_tnC_apI_J_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmCAcute</key>
+ <string>L_tnS_mC_A_cute.glif</string>
+ <key>LtnSmCAcuteCedilla</key>
+ <string>L_tnS_mC_A_cuteC_edilla.glif</string>
+ <key>LtnSmCCircum</key>
+ <string>L_tnS_mC_C_ircum.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmIJ</key>
+ <string>L_tnS_mI_J_.glif</string>
+ <key>LtnSmITilde</key>
+ <string>L_tnS_mI_T_ilde.glif</string>
+ <key>LtnSmITildeGrave</key>
+ <string>L_tnS_mI_T_ildeG_rave.glif</string>
+ <key>LtnSmITildeGraveCedilla</key>
+ <string>L_tnS_mI_T_ildeG_raveC_edilla.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+ </dict>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..4dbf648
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist
new file mode 100644
index 0000000..b9c1a4f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+ </array>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist
new file mode 100644
index 0000000..b3dadfa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist
@@ -0,0 +1,547 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string></string>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string></string>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ <string>LtnCapIJ</string>
+ <string>LtnSmIJ</string>
+ <string>LtnCapCAcute</string>
+ <string>LtnSmCAcute</string>
+ <string>LtnCapCCircum</string>
+ <string>LtnSmCCircum</string>
+ <string>LtnSmITildeGrave</string>
+ <string>LtnCapCAcuteCedilla</string>
+ <string>LtnSmCAcuteCedilla</string>
+ <string>LtnSmITilde</string>
+ <string>LtnSmITildeGraveCedilla</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+ </dict>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist
new file mode 100644
index 0000000..7b8b34a
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>creator</key>
+ <string>com.github.fonttools.ufoLib</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+ </dict>
+</plist>
diff --git a/tests/reference/psfmakefea/issue65.fea b/tests/reference/psfmakefea/issue65.fea
new file mode 100644
index 0000000..0d8dd9a
--- /dev/null
+++ b/tests/reference/psfmakefea/issue65.fea
@@ -0,0 +1,7 @@
+
+# Main Classes
+
+# Positioning classes and statements
+lookup ReorderInsert {
+ sub uni1C00' uni1C34 by uni1C34 uni1C00;
+} ReorderInsert;
diff --git a/tests/reference/psfmakefea/issue65.log b/tests/reference/psfmakefea/issue65.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/issue65.log
diff --git a/tests/reference/psfmakefea/ligatures.fea b/tests/reference/psfmakefea/ligatures.fea
new file mode 100644
index 0000000..2157709
--- /dev/null
+++ b/tests/reference/psfmakefea/ligatures.fea
@@ -0,0 +1,15 @@
+
+# Main Classes
+
+# Positioning classes and statements
+# baseClass a <anchor 200 200> @TOP_1;
+# baseClass fi <anchor 200 0> @BOTTOM_1;
+# baseClass fi <anchor 400 0> @BOTTOM_2;
+markClass acute <anchor 0 200> @TOP;
+markClass circumflex <anchor 200 0> @BOTTOM;
+feature test {
+ pos ligature a <anchor 200 200> mark @TOP
+ ligComponent <anchor NULL>;
+ pos ligature fi <anchor 200 0> mark @BOTTOM
+ ligComponent <anchor 400 0> mark @BOTTOM;
+} test;
diff --git a/tests/reference/psfmakefea/ligatures.log b/tests/reference/psfmakefea/ligatures.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/ligatures.log
diff --git a/tests/reference/psfmakefea/psfmakefea.fea b/tests/reference/psfmakefea/psfmakefea.fea
new file mode 100644
index 0000000..90fb7ff
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea.fea
@@ -0,0 +1,11 @@
+
+# Main Classes
+
+# Positioning classes and statements
+@base = [A a];
+@basex = [A.x a.x];
+@basey = [A.y a.y];
+feature alt {
+ sub A from [A.x A.y];
+ sub a from [a.x a.y];
+} alt;
diff --git a/tests/reference/psfmakefea/psfmakefea.log b/tests/reference/psfmakefea/psfmakefea.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea.log
diff --git a/tests/reference/psfmakefea/psfmakefea_2.fea b/tests/reference/psfmakefea/psfmakefea_2.fea
new file mode 100644
index 0000000..a6b49b1
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea_2.fea
@@ -0,0 +1,11 @@
+
+# Main Classes
+
+# Positioning classes and statements
+# def func
+feature test {
+ @c = [g5];
+ @c = [g6];
+ @c = [g7];
+
+} test;
diff --git a/tests/reference/psfmakefea/psfmakefea_2.log b/tests/reference/psfmakefea/psfmakefea_2.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea_2.log
diff --git a/tests/reference/ufo/psfbuildcomp.lg b/tests/reference/ufo/psfbuildcomp.lg
new file mode 100644
index 0000000..ab203a3
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.lg
@@ -0,0 +1,52 @@
+2021-06-29 14:42:19 Progress: Running: psfbuildcomp tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfbuildcomp.txt -l local/testresults/ufo/psfbuildcomp.log -p loglevel=i
+2021-06-29 14:42:19 Progress: Opening file for input: tests/input/psfbuildcomp.txt
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2021-06-29 14:42:19 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:19 Progress: See log file for details
+2021-06-29 14:42:19 Info: Processing line 10: LtnCapIJ = LtnCapI & LtnCapJ |0132
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapIJ
+2021-06-29 14:42:19 Info: Processing line 11: LtnSmIJ = LtnSmI & LtnSmJ |0133
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmIJ
+2021-06-29 14:42:19 Info: Processing line 14: LtnCapCAcute = LtnSmC + CombAcute@U |0106
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapCAcute
+2021-06-29 14:42:19 Info: Processing line 15: LtnSmCAcute = LtnCapC + CombAcute@U |0107
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmCAcute
+2021-06-29 14:42:19 Info: Processing line 16: LtnCapCCircum = LtnCapC + CombCircum@U |0108
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapCCircum
+2021-06-29 14:42:19 Info: Processing line 17: LtnSmCCircum = LtnSmC + CombCircum@U |0109
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmCCircum
+2021-06-29 14:42:19 Info: Processing line 20: LtnSmITildeGrave = LtnSmDotlessI + CombTilde@U + CombGrave@U | E000
+2021-06-29 14:42:19 Error: LtnSmDotlessI not found in font
+2021-06-29 14:42:19 Error: The AP 'U' does not exist on base glyph when building LtnSmITildeGrave
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmITildeGrave
+2021-06-29 14:42:19 Info: Processing line 23: LtnCapCAcuteCedilla = LtnCapC + CombCedilla@H + CombAcute@LtnCapC:U | 1E08
+2021-06-29 14:42:19 Error: CombCedilla not found in font
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapCAcuteCedilla
+2021-06-29 14:42:19 Info: Processing line 24: LtnSmCAcuteCedilla = LtnSmC + CombCedilla@H + CombAcute@LtnSmC:U | 1E09
+2021-06-29 14:42:19 Error: CombCedilla not found in font
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmCAcuteCedilla
+2021-06-29 14:42:19 Info: Processing line 27: LtnSmITilde = LtnSmDotlessI + CombTilde@U ^200,200 | 0129
+2021-06-29 14:42:19 Error: LtnSmDotlessI not found in font
+2021-06-29 14:42:19 Error: The AP 'U' does not exist on base glyph when building LtnSmITilde
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmITilde
+2021-06-29 14:42:19 Info: Processing line 30: LtnSmITildeGraveCedilla = LtnSmDotlessI + CombCedilla@H + CombTilde@LtnSmDotlessI:U + CombGrave@U ^200,200 | E010 # i cedilla tilde grave
+2021-06-29 14:42:19 Error: LtnSmDotlessI not found in font
+2021-06-29 14:42:19 Error: CombCedilla not found in font
+2021-06-29 14:42:19 Error: The AP 'U' does not exist on base glyph when building LtnSmITildeGraveCedilla
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmITildeGraveCedilla
+2021-06-29 14:42:19 Progress: Processing font for output
+2021-06-29 14:42:19 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:19 Progress: Writing font to local/testresults/ufo/psfbuildcomp.ufo
+2021-06-29 14:42:19 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist b/tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist
new file mode 100644
index 0000000..c151323
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:04</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..c2cef04
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..5042901
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="365" y="1045" type="line"/>
+ <point x="370" y="1186"/>
+ <point x="376" y="1339"/>
+ <point x="405" y="1585" type="curve"/>
+ <point x="200" y="1585" type="line"/>
+ <point x="231" y="1339"/>
+ <point x="236" y="1186"/>
+ <point x="240" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..850d344
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..681014d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..60bd1cf
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..3cfbbc1
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..bb13221
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..fa444ec
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..f7540ef
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..c33b56a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..b019e05
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..88d5ca7
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..6e8f5a3
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="650"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..b7e540a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..cb2dd85
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..d9a5610
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..0ce656a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..42c7708
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..c9ca97e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..ec0acdb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..3242c12
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..c179477
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..d976d0f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..52136d8
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..1315ffa
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..e683644
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..9f3a3f0
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..c591997
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..a0a0004
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..fabf6ce
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..bc3f4eb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..293b653
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..db9ae78
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..bc7ef03
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..a4b9814
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e97ed98
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..2fc71eb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..fbdfff2
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3c64e18
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..b74cc60
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..415122e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..daf4f2d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif
new file mode 100644
index 0000000..c997cca
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapCAcute" format="2">
+ <advance width="1020"/>
+ <unicode hex="0106"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombAcute" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..9c993a9
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapCAcuteCedilla" format="2">
+ <advance width="1355"/>
+ <unicode hex="1E08"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="2065" name="U"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombAcute" xOffset="1320" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif
new file mode 100644
index 0000000..0291e5d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapCCircum" format="2">
+ <advance width="1355"/>
+ <unicode hex="0108"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="2065" name="U"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombCircum" xOffset="1320" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..9154a06
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..e5d0043
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..deb38fb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..477d223
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..5924270
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..c6001c3
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif
new file mode 100644
index 0000000..35cb406
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapIJ" format="2">
+ <advance width="1940"/>
+ <unicode hex="0132"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="1385" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="1650" y="1530" name="U"/>
+ <outline>
+ <component base="LtnCapI"/>
+ <component base="LtnCapJ" xOffset="975"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..457e39d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..b3f4cdd
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..3d5883a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..fbdf3b1
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..360e6e6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..e351c3d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..9f29954
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..ddd0351
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..cd9e037
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..92da6b0
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..124138f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..7afa08d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..86c76b5
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..b1f4961
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..7472407
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..c2c5f54
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..20f7261
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..2ab1b23
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..6551c45
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..61c5d3f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9879252
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..ae3b838
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..cf21919
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..67ff8ac
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..7c403fb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif
new file mode 100644
index 0000000..7a0f29b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmCAcute" format="2">
+ <advance width="1355"/>
+ <unicode hex="0107"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="2065" name="U"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombAcute" xOffset="1320" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..0791a42
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmCAcuteCedilla" format="2">
+ <advance width="1020"/>
+ <unicode hex="1E09"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombAcute" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif
new file mode 100644
index 0000000..7b37429
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmCCircum" format="2">
+ <advance width="1020"/>
+ <unicode hex="0109"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombCircum" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..13547d4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..f231440
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..56c0b15
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..236da64
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..bad060c
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..369347b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif
new file mode 100644
index 0000000..f6ad58c
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmIJ" format="2">
+ <advance width="1160"/>
+ <unicode hex="0133"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="690" y="-500" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="878" y="1100" name="U"/>
+ <outline>
+ <component base="LtnSmI"/>
+ <component base="LtnSmJ" xOffset="565"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif
new file mode 100644
index 0000000..8da3a8d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmITilde" format="2">
+ <advance width="400"/>
+ <unicode hex="0129"/>
+ <anchor x="0" y="375" name="U"/>
+ <outline>
+ <component base="CombTilde" xOffset="575" yOffset="-1100"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
new file mode 100644
index 0000000..37bd42e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmITildeGrave" format="2">
+ <unicode hex="E000"/>
+ <anchor x="0" y="910" name="U"/>
+ <outline>
+ <component base="CombTilde" xOffset="575" yOffset="-1100"/>
+ <component base="CombGrave" xOffset="550" yOffset="-725"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
new file mode 100644
index 0000000..6d460d8
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmITildeGraveCedilla" format="2">
+ <advance width="400"/>
+ <unicode hex="E010"/>
+ <anchor x="0" y="910" name="U"/>
+ <outline>
+ <component base="CombTilde" xOffset="575" yOffset="-1100"/>
+ <component base="CombGrave" xOffset="550" yOffset="-725"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..87f74c6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..d1b00cb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..4378793
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..4498bb1
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..5534dd8
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..ee9b6c6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..e960bc9
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..1da1d6a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..0f090a4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..ea1e7ba
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..45d6b50
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..39609ad
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..3097f4b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..3557415
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..883cba4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..cbe0f68
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..14aff81
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..f4625db
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..e81f237
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..de1f259
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5526aec
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..c9f06c6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..d145f26
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..288a75a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3983f6b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..702689b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..247bed0
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..3edff5d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..60ddaa7
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..c73e040
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..6b6e31f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapCAcute</key>
+ <string>L_tnC_apC_A_cute.glif</string>
+ <key>LtnCapCAcuteCedilla</key>
+ <string>L_tnC_apC_A_cuteC_edilla.glif</string>
+ <key>LtnCapCCircum</key>
+ <string>L_tnC_apC_C_ircum.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapIJ</key>
+ <string>L_tnC_apI_J_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmCAcute</key>
+ <string>L_tnS_mC_A_cute.glif</string>
+ <key>LtnSmCAcuteCedilla</key>
+ <string>L_tnS_mC_A_cuteC_edilla.glif</string>
+ <key>LtnSmCCircum</key>
+ <string>L_tnS_mC_C_ircum.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmIJ</key>
+ <string>L_tnS_mI_J_.glif</string>
+ <key>LtnSmITilde</key>
+ <string>L_tnS_mI_T_ilde.glif</string>
+ <key>LtnSmITildeGrave</key>
+ <string>L_tnS_mI_T_ildeG_rave.glif</string>
+ <key>LtnSmITildeGraveCedilla</key>
+ <string>L_tnS_mI_T_ildeG_raveC_edilla.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist b/tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/lib.plist b/tests/reference/ufo/psfbuildcomp.ufo/lib.plist
new file mode 100644
index 0000000..8b95204
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/lib.plist
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist b/tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcompgc.lg b/tests/reference/ufo/psfbuildcompgc.lg
new file mode 100644
index 0000000..7a3797e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcompgc.lg
@@ -0,0 +1,3 @@
+2019-04-10 15:46:32 Progress: Opening file for input: tests/input/psfbuildcomp.txt
+2019-04-10 15:46:32 Error: Invalid CD line 'LtnSmITilde = LtnSmDotlessI + CombTilde@U ^200,200 | 0129' - No glyph named 'LtnSmDotlessI'.
+2019-04-10 15:46:32 Error: Invalid CD line 'LtnSmITildeGraveCedilla = LtnSmDotlessI + CombCedilla@H + CombTilde@LtnSmDotlessI:U + CombGrave@U ^200,200 | E010 # i cedilla tilde grave' - No glyph named 'LtnSmDotlessI'.
diff --git a/tests/reference/ufo/psfchangettfglyphnames.lg b/tests/reference/ufo/psfchangettfglyphnames.lg
new file mode 100644
index 0000000..c236b6f
--- /dev/null
+++ b/tests/reference/ufo/psfchangettfglyphnames.lg
@@ -0,0 +1,4 @@
+2020-07-28 14:36:06 Progress: Running: psfchangettfglyphnames tests/input/font-psf-test/source/PsfTest-Regular.ufo tests/input/PsfTest-R.ttf local/testresults/ufo/psfchangettfglyphnames.ttf -l local/testresults/ufo/psfchangettfglyphnames.log
+2020-07-28 14:36:06 Progress: Renaming the input ttf glyphs based on production names in the UFO
+2020-07-28 14:36:06 Progress: Saving the output ttf file
+2020-07-28 14:36:06 Progress: Done
diff --git a/tests/reference/ufo/psfchangettfglyphnames.ttf b/tests/reference/ufo/psfchangettfglyphnames.ttf
new file mode 100644
index 0000000..d31345b
--- /dev/null
+++ b/tests/reference/ufo/psfchangettfglyphnames.ttf
Binary files differ
diff --git a/tests/reference/ufo/psfcheckbasicchars.lg b/tests/reference/ufo/psfcheckbasicchars.lg
new file mode 100644
index 0000000..9108807
--- /dev/null
+++ b/tests/reference/ufo/psfcheckbasicchars.lg
@@ -0,0 +1,199 @@
+2022-03-08 12:00:19 Progress: Running: psfcheckbasicchars tests/input/font-psf-test/source/PsfTest-Regular.ufo -l local/testresults/ufo/psfcheckbasicchars.log
+2022-03-08 12:00:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2022-03-08 12:00:19 Progress: Checking fontinfo.plist metadata
+2022-03-08 12:00:19 Warning: note is present - it's use is discouraged
+2022-03-08 12:00:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2022-03-08 12:00:19 Warning: openTypeOS2Selection would be added New value: [7]
+2022-03-08 12:00:19 Progress: Checking lib.plist metadata
+2022-03-08 12:00:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2022-03-08 12:00:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2022-03-08 12:00:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2022-03-08 12:00:19 Progress: See log file for details
+2022-03-08 12:00:19 Warning: U+005A from the basic set has no representative glyph (Z)
+2022-03-08 12:00:19 Warning: U+007A from the basic set has no representative glyph (z)
+2022-03-08 12:00:19 Warning: U+00A0 from the basic set has no representative glyph (uni00A0, nbspace)
+2022-03-08 12:00:19 Warning: U+00A1 from the basic set has no representative glyph (exclamdown)
+2022-03-08 12:00:19 Warning: U+00A2 from the basic set has no representative glyph (cent)
+2022-03-08 12:00:19 Warning: U+00A3 from the basic set has no representative glyph (sterling)
+2022-03-08 12:00:19 Warning: U+00A4 from the basic set has no representative glyph (currency)
+2022-03-08 12:00:19 Warning: U+00A5 from the basic set has no representative glyph (yen)
+2022-03-08 12:00:19 Warning: U+00A6 from the basic set has no representative glyph (brokenbar)
+2022-03-08 12:00:19 Warning: U+00A7 from the basic set has no representative glyph (section)
+2022-03-08 12:00:19 Warning: U+00A8 from the basic set has no representative glyph (dieresis)
+2022-03-08 12:00:19 Warning: U+00A9 from the basic set has no representative glyph (copyright)
+2022-03-08 12:00:19 Warning: U+00AA from the basic set has no representative glyph (ordfeminine)
+2022-03-08 12:00:19 Warning: U+00AB from the basic set has no representative glyph (guillemotleft, guillemetleft)
+2022-03-08 12:00:19 Warning: U+00AC from the basic set has no representative glyph (logicalnot)
+2022-03-08 12:00:19 Warning: U+00AE from the basic set has no representative glyph (registered)
+2022-03-08 12:00:19 Warning: U+00AF from the basic set has no representative glyph (macron)
+2022-03-08 12:00:19 Warning: U+00B0 from the basic set has no representative glyph (degree)
+2022-03-08 12:00:19 Warning: U+00B1 from the basic set has no representative glyph (plusminus)
+2022-03-08 12:00:19 Warning: U+00B2 from the basic set has no representative glyph (uni00B2, twosuperior)
+2022-03-08 12:00:19 Warning: U+00B3 from the basic set has no representative glyph (uni00B3, threesuperior)
+2022-03-08 12:00:19 Warning: U+00B4 from the basic set has no representative glyph (acute)
+2022-03-08 12:00:19 Warning: U+00B5 from the basic set has no representative glyph (mu, micro)
+2022-03-08 12:00:19 Warning: U+00B6 from the basic set has no representative glyph (paragraph)
+2022-03-08 12:00:19 Warning: U+00B7 from the basic set has no representative glyph (periodcentered)
+2022-03-08 12:00:19 Warning: U+00B8 from the basic set has no representative glyph (cedilla)
+2022-03-08 12:00:19 Warning: U+00B9 from the basic set has no representative glyph (uni00B9, onesuperior)
+2022-03-08 12:00:19 Warning: U+00BA from the basic set has no representative glyph (ordmasculine)
+2022-03-08 12:00:19 Warning: U+00BB from the basic set has no representative glyph (guillemotright, guillemetright)
+2022-03-08 12:00:19 Warning: U+00BC from the basic set has no representative glyph (onequarter)
+2022-03-08 12:00:19 Warning: U+00BD from the basic set has no representative glyph (onehalf)
+2022-03-08 12:00:19 Warning: U+00BE from the basic set has no representative glyph (threequarters)
+2022-03-08 12:00:19 Warning: U+00BF from the basic set has no representative glyph (questiondown)
+2022-03-08 12:00:19 Warning: U+00C0 from the basic set has no representative glyph (Agrave)
+2022-03-08 12:00:19 Warning: U+00C1 from the basic set has no representative glyph (Aacute)
+2022-03-08 12:00:19 Warning: U+00C2 from the basic set has no representative glyph (Acircumflex)
+2022-03-08 12:00:19 Warning: U+00C3 from the basic set has no representative glyph (Atilde)
+2022-03-08 12:00:19 Warning: U+00C5 from the basic set has no representative glyph (Aring)
+2022-03-08 12:00:19 Warning: U+00C6 from the basic set has no representative glyph (AE)
+2022-03-08 12:00:19 Warning: U+00C7 from the basic set has no representative glyph (Ccedilla)
+2022-03-08 12:00:19 Warning: U+00C8 from the basic set has no representative glyph (Egrave)
+2022-03-08 12:00:19 Warning: U+00C9 from the basic set has no representative glyph (Eacute)
+2022-03-08 12:00:19 Warning: U+00CA from the basic set has no representative glyph (Ecircumflex)
+2022-03-08 12:00:19 Warning: U+00CB from the basic set has no representative glyph (Edieresis)
+2022-03-08 12:00:19 Warning: U+00CC from the basic set has no representative glyph (Igrave)
+2022-03-08 12:00:19 Warning: U+00CD from the basic set has no representative glyph (Iacute)
+2022-03-08 12:00:19 Warning: U+00CE from the basic set has no representative glyph (Icircumflex)
+2022-03-08 12:00:19 Warning: U+00CF from the basic set has no representative glyph (Idieresis)
+2022-03-08 12:00:19 Warning: U+00D0 from the basic set has no representative glyph (Eth)
+2022-03-08 12:00:19 Warning: U+00D1 from the basic set has no representative glyph (Ntilde)
+2022-03-08 12:00:19 Warning: U+00D2 from the basic set has no representative glyph (Ograve)
+2022-03-08 12:00:19 Warning: U+00D3 from the basic set has no representative glyph (Oacute)
+2022-03-08 12:00:19 Warning: U+00D4 from the basic set has no representative glyph (Ocircumflex)
+2022-03-08 12:00:19 Warning: U+00D5 from the basic set has no representative glyph (Otilde)
+2022-03-08 12:00:19 Warning: U+00D6 from the basic set has no representative glyph (Odieresis)
+2022-03-08 12:00:19 Warning: U+00D7 from the basic set has no representative glyph (multiply)
+2022-03-08 12:00:19 Warning: U+00D8 from the basic set has no representative glyph (Oslash)
+2022-03-08 12:00:19 Warning: U+00D9 from the basic set has no representative glyph (Ugrave)
+2022-03-08 12:00:19 Warning: U+00DA from the basic set has no representative glyph (Uacute)
+2022-03-08 12:00:19 Warning: U+00DB from the basic set has no representative glyph (Ucircumflex)
+2022-03-08 12:00:19 Warning: U+00DC from the basic set has no representative glyph (Udieresis)
+2022-03-08 12:00:19 Warning: U+00DD from the basic set has no representative glyph (Yacute)
+2022-03-08 12:00:19 Warning: U+00DE from the basic set has no representative glyph (Thorn)
+2022-03-08 12:00:19 Warning: U+00DF from the basic set has no representative glyph (germandbls)
+2022-03-08 12:00:19 Warning: U+00E6 from the basic set has no representative glyph (ae)
+2022-03-08 12:00:19 Warning: U+00E7 from the basic set has no representative glyph (ccedilla)
+2022-03-08 12:00:19 Warning: U+00E8 from the basic set has no representative glyph (egrave)
+2022-03-08 12:00:19 Warning: U+00E9 from the basic set has no representative glyph (eacute)
+2022-03-08 12:00:19 Warning: U+00EA from the basic set has no representative glyph (ecircumflex)
+2022-03-08 12:00:19 Warning: U+00EB from the basic set has no representative glyph (edieresis)
+2022-03-08 12:00:19 Warning: U+00EC from the basic set has no representative glyph (igrave)
+2022-03-08 12:00:19 Warning: U+00ED from the basic set has no representative glyph (iacute)
+2022-03-08 12:00:19 Warning: U+00EE from the basic set has no representative glyph (icircumflex)
+2022-03-08 12:00:19 Warning: U+00EF from the basic set has no representative glyph (idieresis)
+2022-03-08 12:00:19 Warning: U+00F0 from the basic set has no representative glyph (eth)
+2022-03-08 12:00:19 Warning: U+00F1 from the basic set has no representative glyph (ntilde)
+2022-03-08 12:00:19 Warning: U+00F2 from the basic set has no representative glyph (ograve)
+2022-03-08 12:00:19 Warning: U+00F3 from the basic set has no representative glyph (oacute)
+2022-03-08 12:00:19 Warning: U+00F4 from the basic set has no representative glyph (ocircumflex)
+2022-03-08 12:00:19 Warning: U+00F5 from the basic set has no representative glyph (otilde)
+2022-03-08 12:00:19 Warning: U+00F6 from the basic set has no representative glyph (odieresis)
+2022-03-08 12:00:19 Warning: U+00F7 from the basic set has no representative glyph (divide)
+2022-03-08 12:00:19 Warning: U+00F8 from the basic set has no representative glyph (oslash)
+2022-03-08 12:00:19 Warning: U+00F9 from the basic set has no representative glyph (ugrave)
+2022-03-08 12:00:19 Warning: U+00FA from the basic set has no representative glyph (uacute)
+2022-03-08 12:00:19 Warning: U+00FB from the basic set has no representative glyph (ucircumflex)
+2022-03-08 12:00:19 Warning: U+00FC from the basic set has no representative glyph (udieresis)
+2022-03-08 12:00:19 Warning: U+00FD from the basic set has no representative glyph (yacute)
+2022-03-08 12:00:19 Warning: U+00FE from the basic set has no representative glyph (thorn)
+2022-03-08 12:00:19 Warning: U+00FF from the basic set has no representative glyph (ydieresis)
+2022-03-08 12:00:19 Warning: U+0131 from the basic set has no representative glyph (dotlessi, idotless)
+2022-03-08 12:00:19 Warning: U+0152 from the basic set has no representative glyph (OE)
+2022-03-08 12:00:19 Warning: U+0153 from the basic set has no representative glyph (oe)
+2022-03-08 12:00:19 Warning: U+0160 from the basic set has no representative glyph (Scaron)
+2022-03-08 12:00:19 Warning: U+0161 from the basic set has no representative glyph (scaron)
+2022-03-08 12:00:19 Warning: U+0178 from the basic set has no representative glyph (Ydieresis)
+2022-03-08 12:00:19 Warning: U+017D from the basic set has no representative glyph (Zcaron)
+2022-03-08 12:00:19 Warning: U+017E from the basic set has no representative glyph (zcaron)
+2022-03-08 12:00:19 Warning: U+0192 from the basic set has no representative glyph (florin)
+2022-03-08 12:00:19 Warning: U+02C6 from the basic set has no representative glyph (circumflex)
+2022-03-08 12:00:19 Warning: U+02C7 from the basic set has no representative glyph (caron)
+2022-03-08 12:00:19 Warning: U+02D8 from the basic set has no representative glyph (breve)
+2022-03-08 12:00:19 Warning: U+02D9 from the basic set has no representative glyph (dotaccent)
+2022-03-08 12:00:19 Warning: U+02DA from the basic set has no representative glyph (ring)
+2022-03-08 12:00:19 Warning: U+02DB from the basic set has no representative glyph (ogonek)
+2022-03-08 12:00:19 Warning: U+02DC from the basic set has no representative glyph (tilde)
+2022-03-08 12:00:19 Warning: U+02DD from the basic set has no representative glyph (hungarumlaut)
+2022-03-08 12:00:19 Warning: U+034F from the basic set has no representative glyph (uni034F, graphemejoinercomb)
+2022-03-08 12:00:19 Warning: U+03C0 from the basic set has no representative glyph (pi)
+2022-03-08 12:00:19 Warning: U+2000 from the basic set has no representative glyph (uni2000, enquad)
+2022-03-08 12:00:19 Warning: U+2001 from the basic set has no representative glyph (uni2001, emquad)
+2022-03-08 12:00:19 Warning: U+2002 from the basic set has no representative glyph (uni2002, enspace)
+2022-03-08 12:00:19 Warning: U+2003 from the basic set has no representative glyph (uni2003, emspace)
+2022-03-08 12:00:19 Warning: U+2004 from the basic set has no representative glyph (uni2004, threeperemspace)
+2022-03-08 12:00:19 Warning: U+2005 from the basic set has no representative glyph (uni2005, fourperemspace)
+2022-03-08 12:00:19 Warning: U+2006 from the basic set has no representative glyph (uni2006, sixperemspace)
+2022-03-08 12:00:19 Warning: U+2007 from the basic set has no representative glyph (uni2007, figurespace)
+2022-03-08 12:00:19 Warning: U+2008 from the basic set has no representative glyph (uni2008, punctuationspace)
+2022-03-08 12:00:19 Warning: U+2009 from the basic set has no representative glyph (uni2009, thinspace)
+2022-03-08 12:00:19 Warning: U+200A from the basic set has no representative glyph (uni200A, hairspace)
+2022-03-08 12:00:19 Warning: U+200B from the basic set has no representative glyph (uni200B, zerowidthspace)
+2022-03-08 12:00:19 Warning: U+200C from the basic set has no representative glyph (uni200C, zerowidthnonjoiner)
+2022-03-08 12:00:19 Warning: U+200D from the basic set has no representative glyph (uni200D, zerowidthjoiner)
+2022-03-08 12:00:19 Warning: U+2012 from the basic set has no representative glyph (figuredash)
+2022-03-08 12:00:19 Warning: U+2013 from the basic set has no representative glyph (endash)
+2022-03-08 12:00:19 Warning: U+2014 from the basic set has no representative glyph (emdash)
+2022-03-08 12:00:19 Warning: U+2015 from the basic set has no representative glyph (uni2015, horizontalbar)
+2022-03-08 12:00:19 Warning: U+2018 from the basic set has no representative glyph (quoteleft)
+2022-03-08 12:00:19 Warning: U+2019 from the basic set has no representative glyph (quoteright)
+2022-03-08 12:00:19 Warning: U+201A from the basic set has no representative glyph (quotesinglbase)
+2022-03-08 12:00:19 Warning: U+201C from the basic set has no representative glyph (quotedblleft)
+2022-03-08 12:00:19 Warning: U+201D from the basic set has no representative glyph (quotedblright)
+2022-03-08 12:00:19 Warning: U+201E from the basic set has no representative glyph (quotedblbase)
+2022-03-08 12:00:19 Warning: U+2020 from the basic set has no representative glyph (dagger)
+2022-03-08 12:00:19 Warning: U+2021 from the basic set has no representative glyph (daggerdbl)
+2022-03-08 12:00:19 Warning: U+2022 from the basic set has no representative glyph (bullet)
+2022-03-08 12:00:19 Warning: U+2026 from the basic set has no representative glyph (ellipsis)
+2022-03-08 12:00:19 Warning: U+2027 from the basic set has no representative glyph (uni2027, hyphenationpoint)
+2022-03-08 12:00:19 Warning: U+2028 from the basic set has no representative glyph (uni2028, lineseparator)
+2022-03-08 12:00:19 Warning: U+2029 from the basic set has no representative glyph (uni2029, paragraphseparator)
+2022-03-08 12:00:19 Warning: U+202F from the basic set has no representative glyph (uni202F, narrownbspace)
+2022-03-08 12:00:19 Warning: U+2030 from the basic set has no representative glyph (perthousand)
+2022-03-08 12:00:19 Warning: U+2039 from the basic set has no representative glyph (guilsinglleft)
+2022-03-08 12:00:19 Warning: U+203A from the basic set has no representative glyph (guilsinglright)
+2022-03-08 12:00:19 Warning: U+2044 from the basic set has no representative glyph (fraction)
+2022-03-08 12:00:19 Warning: U+2060 from the basic set has no representative glyph (uni2060, wordjoiner)
+2022-03-08 12:00:19 Warning: U+2074 from the basic set has no representative glyph (uni2074, foursuperior)
+2022-03-08 12:00:19 Warning: U+20AC from the basic set has no representative glyph (Euro, euro)
+2022-03-08 12:00:19 Warning: U+2122 from the basic set has no representative glyph (trademark)
+2022-03-08 12:00:19 Warning: U+2126 from the basic set has no representative glyph (Omega, Ohm)
+2022-03-08 12:00:19 Warning: U+2202 from the basic set has no representative glyph (partialdiff)
+2022-03-08 12:00:19 Warning: U+2206 from the basic set has no representative glyph (Delta)
+2022-03-08 12:00:19 Warning: U+220F from the basic set has no representative glyph (product)
+2022-03-08 12:00:19 Warning: U+2211 from the basic set has no representative glyph (summation)
+2022-03-08 12:00:19 Warning: U+2212 from the basic set has no representative glyph (minus)
+2022-03-08 12:00:19 Warning: U+2215 from the basic set has no representative glyph (uni2215, divisionslash)
+2022-03-08 12:00:19 Warning: U+2219 from the basic set has no representative glyph (uni2219, bulletoperator)
+2022-03-08 12:00:19 Warning: U+221A from the basic set has no representative glyph (radical)
+2022-03-08 12:00:19 Warning: U+221E from the basic set has no representative glyph (infinity)
+2022-03-08 12:00:19 Warning: U+222B from the basic set has no representative glyph (integral)
+2022-03-08 12:00:19 Warning: U+2248 from the basic set has no representative glyph (approxequal)
+2022-03-08 12:00:19 Warning: U+2260 from the basic set has no representative glyph (notequal)
+2022-03-08 12:00:19 Warning: U+2264 from the basic set has no representative glyph (lessequal)
+2022-03-08 12:00:19 Warning: U+2265 from the basic set has no representative glyph (greaterequal)
+2022-03-08 12:00:19 Warning: U+2423 from the basic set has no representative glyph (uni2423, blank)
+2022-03-08 12:00:19 Warning: U+25CA from the basic set has no representative glyph (lozenge)
+2022-03-08 12:00:19 Warning: U+FB01 from the basic set has no representative glyph (uniFB01, fi)
+2022-03-08 12:00:19 Warning: U+FB02 from the basic set has no representative glyph (uniFB02, fl)
+2022-03-08 12:00:19 Warning: U+FE00 from the basic set has no representative glyph (uniFE00, VS1)
+2022-03-08 12:00:19 Warning: U+FE01 from the basic set has no representative glyph (uniFE01, VS2)
+2022-03-08 12:00:19 Warning: U+FE02 from the basic set has no representative glyph (uniFE02, VS3)
+2022-03-08 12:00:19 Warning: U+FE03 from the basic set has no representative glyph (uniFE03, VS4)
+2022-03-08 12:00:19 Warning: U+FE04 from the basic set has no representative glyph (uniFE04, VS5)
+2022-03-08 12:00:19 Warning: U+FE05 from the basic set has no representative glyph (uniFE05, VS6)
+2022-03-08 12:00:19 Warning: U+FE06 from the basic set has no representative glyph (uniFE06, VS7)
+2022-03-08 12:00:19 Warning: U+FE07 from the basic set has no representative glyph (uniFE07, VS8)
+2022-03-08 12:00:19 Warning: U+FE08 from the basic set has no representative glyph (uniFE08, VS9)
+2022-03-08 12:00:19 Warning: U+FE09 from the basic set has no representative glyph (uniFE09, VS10)
+2022-03-08 12:00:19 Warning: U+FE0A from the basic set has no representative glyph (uniFE0A, VS11)
+2022-03-08 12:00:19 Warning: U+FE0B from the basic set has no representative glyph (uniFE0B, VS12)
+2022-03-08 12:00:19 Warning: U+FE0C from the basic set has no representative glyph (uniFE0C, VS13)
+2022-03-08 12:00:19 Warning: U+FE0D from the basic set has no representative glyph (uniFE0D, VS14)
+2022-03-08 12:00:19 Warning: U+FE0E from the basic set has no representative glyph (uniFE0E, VS15)
+2022-03-08 12:00:19 Warning: U+FE0F from the basic set has no representative glyph (uniFE0F, VS16)
+2022-03-08 12:00:19 Warning: U+FEFF from the basic set has no representative glyph (uniFEFF, zeroWidthNoBreakSpace)
+2022-03-08 12:00:19 Warning: U+FFFC from the basic set has no representative glyph (uniFFFC, objectReplacementCharacter)
+2022-03-08 12:00:19 Warning: U+FFFD from the basic set has no representative glyph (uniFFFD, replacementCharacter)
+2022-03-08 12:00:19 Error: There are 187 required characters missing
diff --git a/tests/reference/ufo/psfcopyglyphs.lg b/tests/reference/ufo/psfcopyglyphs.lg
new file mode 100644
index 0000000..a6a070b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.lg
@@ -0,0 +1,30 @@
+2021-06-29 14:42:19 Progress: Running: psfcopyglyphs -s tests/input/font-psf-test/source/PsfTest-Regular.ufo tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfcopyglyphs.csv -l local/testresults/ufo/psfcopyglyphs.log --rename newname --unicode usv
+2021-06-29 14:42:19 Progress: Opening file for input: tests/input/psfcopyglyphs.csv
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:19 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:19 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:19 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:19 Progress: See log file for details
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:19 Progress: See log file for details
+2021-06-29 14:42:19 Warning: Line 4: Glyph 'Colon' already present; skipping
+2021-06-29 14:42:19 Progress: Processing font for output
+2021-06-29 14:42:19 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:19 Progress: Writing font to local/testresults/ufo/psfcopyglyphs.ufo
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist b/tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist
new file mode 100644
index 0000000..a4983fe
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:04</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Testing</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>1</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif
new file mode 100644
index 0000000..7995f26
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampergravel" format="2">
+ <advance width="1222"/>
+ <unicode hex="3026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif
new file mode 100644
index 0000000..42c72b2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Fullstart" format="2">
+ <advance width="640"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..6cb1336
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <unicode hex="3029"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif
new file mode 100644
index 0000000..1fa9f6f
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Star" format="2">
+ <advance width="1028"/>
+ <unicode hex="3027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..733cd3b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampergravel</key>
+ <string>A_mpergravel.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>Fullstart</key>
+ <string>F_ullstart.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Star</key>
+ <string>S_tar.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist b/tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/lib.plist b/tests/reference/ufo/psfcopyglyphs.ufo/lib.plist
new file mode 100644
index 0000000..43413a8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/lib.plist
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist b/tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.lg b/tests/reference/ufo/psfdeleteglyphs.lg
new file mode 100644
index 0000000..b004fde
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.lg
@@ -0,0 +1,27 @@
+2021-06-29 14:42:19 Progress: Running: psfdeleteglyphs tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfdeleteglyphs.txt -l local/testresults/ufo/psfdeleteglyphs.log -p loglevel=i -p scrlevel=w
+2021-06-29 14:42:19 Progress: Opening file for input: tests/input/psfdeleteglyphs.txt
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2021-06-29 14:42:19 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:19 Info: Deleted glyphs:
+2021-06-29 14:42:19 Info: Apos deleted from: Default layer
+2021-06-29 14:42:19 Info: Apos is still in public.glyphOrder, public.postscriptNames, com.schriftgestaltung.glyphOrder
+2021-06-29 14:42:19 Info: Comma deleted from: Default layer
+2021-06-29 14:42:19 Info: Comma is still in public.glyphOrder, public.postscriptNames, com.schriftgestaltung.glyphOrder
+2021-06-29 14:42:19 Progress: 2 glyphs deleted. Set logging to I to see details
+2021-06-29 14:42:19 Warning: 2 of the deleted glyphs are still in some lib.plist entries.
+2021-06-29 14:42:19 Progress: Processing font for output
+2021-06-29 14:42:19 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:19 Progress: Writing font to local/testresults/ufo/psfdeleteglyphs.ufo
+2021-06-29 14:42:19 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist
new file mode 100644
index 0000000..c151323
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:04</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..c2cef04
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..850d344
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..681014d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..60bd1cf
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..3cfbbc1
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..bb13221
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..fa444ec
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..f7540ef
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..c33b56a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..b019e05
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..88d5ca7
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..b7e540a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..cb2dd85
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..d9a5610
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..0ce656a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..42c7708
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..c9ca97e
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..ec0acdb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..3242c12
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..c179477
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..d976d0f
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..52136d8
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..1315ffa
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..e683644
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..9f3a3f0
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..c591997
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..a0a0004
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..fabf6ce
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..bc3f4eb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..293b653
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..db9ae78
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..bc7ef03
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..a4b9814
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e97ed98
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..2fc71eb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..fbdfff2
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3c64e18
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..b74cc60
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..415122e
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..daf4f2d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..9154a06
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..e5d0043
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..deb38fb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..477d223
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..5924270
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..c6001c3
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..457e39d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..b3f4cdd
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..3d5883a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..fbdf3b1
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..360e6e6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..e351c3d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..9f29954
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..ddd0351
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..cd9e037
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..92da6b0
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..124138f
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..7afa08d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..86c76b5
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..b1f4961
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..7472407
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..c2c5f54
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..20f7261
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..2ab1b23
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..6551c45
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..61c5d3f
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9879252
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..ae3b838
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..cf21919
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..67ff8ac
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..7c403fb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..13547d4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..f231440
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..56c0b15
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..236da64
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..bad060c
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..369347b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..87f74c6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..d1b00cb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..4378793
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..4498bb1
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..5534dd8
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..ee9b6c6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..e960bc9
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..1da1d6a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..0f090a4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..ea1e7ba
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..45d6b50
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..39609ad
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..3097f4b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..3557415
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..883cba4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..cbe0f68
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..14aff81
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..f4625db
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..e81f237
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..de1f259
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5526aec
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..c9f06c6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..d145f26
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..288a75a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3983f6b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..702689b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..247bed0
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..3edff5d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..60ddaa7
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..c73e040
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..c440ebe
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist
new file mode 100644
index 0000000..8b95204
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfexportanchors.lg b/tests/reference/ufo/psfexportanchors.lg
new file mode 100644
index 0000000..4dd54bf
--- /dev/null
+++ b/tests/reference/ufo/psfexportanchors.lg
@@ -0,0 +1,17 @@
+2021-06-29 14:42:19 Progress: Running: psfexportanchors tests/input/font-psf-test/source/PsfTest-Italic.ufo local/testresults/ufo/psfexportanchors.xml -l local/testresults/ufo/psfexportanchors.log
+2021-06-29 14:42:19 Progress: Opening file for output: @cwd@/local/testresults/ufo/psfexportanchors.xml
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:20 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:20 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:20 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:20 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:20 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:20 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:20 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:20 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:20 Progress: Checking lib.plist metadata
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:20 Progress: See log file for details
+2021-06-29 14:42:20 Warning: LtnCapA.alt in public.glyphOrder list but absent from UFO
diff --git a/tests/reference/ufo/psfexportanchors.xml b/tests/reference/ufo/psfexportanchors.xml
new file mode 100644
index 0000000..45d2cc3
--- /dev/null
+++ b/tests/reference/ufo/psfexportanchors.xml
@@ -0,0 +1,928 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<font name="PsfTest-Italic" upem="2048">
+<glyph PSName=".notdef"/>
+<glyph PSName=".null"/>
+<glyph PSName="nonmarkingreturn"/>
+<glyph PSName="Space" UID="0020"/>
+<glyph PSName="ExclamationMrk" UID="0021"/>
+<glyph PSName="QuotMrk" UID="0022"/>
+<glyph PSName="NumSgn" UID="0023"/>
+<glyph PSName="DollarSgn" UID="0024"/>
+<glyph PSName="PercentSgn" UID="0025"/>
+<glyph PSName="Ampersand" UID="0026"/>
+<glyph PSName="Apos" UID="0027"/>
+<glyph PSName="LftParen" UID="0028"/>
+<glyph PSName="RtParen" UID="0029"/>
+<glyph PSName="Asterisk" UID="002A"/>
+<glyph PSName="PlusSgn" UID="002B"/>
+<glyph PSName="Comma" UID="002C"/>
+<glyph PSName="HyphenMinus" UID="002D">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="FullStop" UID="002E"/>
+<glyph PSName="Solidus" UID="002F"/>
+<glyph PSName="DigitZero" UID="0030">
+ <point type="L">
+ <location x="520" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="927" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitOne" UID="0031">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitTwo" UID="0032">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="882" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitThree" UID="0033">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitFour" UID="0034">
+ <point type="L">
+ <location x="522" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="929" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitFive" UID="0035">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitSix" UID="0036">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitSeven" UID="0037">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitEight" UID="0038">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitNine" UID="0039">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="Colon" UID="003A"/>
+<glyph PSName="Semicolon" UID="003B"/>
+<glyph PSName="LTSgn" UID="003C"/>
+<glyph PSName="EqSgn" UID="003D"/>
+<glyph PSName="GTSgn" UID="003E"/>
+<glyph PSName="QstnMrk" UID="003F"/>
+<glyph PSName="AtSgn" UID="0040"/>
+<glyph PSName="LtnCapA" UID="0041">
+ <point type="H">
+ <location x="1170" y="0"/>
+ </point>
+ <point type="L">
+ <location x="602" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1390" y="0"/>
+ </point>
+ <point type="U">
+ <location x="1009" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapB" UID="0042">
+ <point type="L">
+ <location x="530" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="937" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapC" UID="0043">
+ <point type="H">
+ <location x="690" y="0"/>
+ </point>
+ <point type="L">
+ <location x="665" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1072" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapD" UID="0044">
+ <point type="L">
+ <location x="630" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1037" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapE" UID="0045">
+ <point type="H">
+ <location x="540" y="0"/>
+ </point>
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="857" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1400" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapF" UID="0046">
+ <point type="L">
+ <location x="510" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="917" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapG" UID="0047">
+ <point type="H">
+ <location x="685" y="0"/>
+ </point>
+ <point type="L">
+ <location x="660" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1067" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapH" UID="0048">
+ <point type="H">
+ <location x="225" y="0"/>
+ </point>
+ <point type="L">
+ <location x="640" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1047" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapI" UID="0049">
+ <point type="H">
+ <location x="417" y="0"/>
+ </point>
+ <point type="L">
+ <location x="392" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="613" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1215" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="799" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapJ" UID="004A">
+ <point type="L">
+ <location x="325" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="997" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapK" UID="004B">
+ <point type="H">
+ <location x="210" y="0"/>
+ </point>
+ <point type="L">
+ <location x="610" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="972" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapL" UID="004C">
+ <point type="H">
+ <location x="532" y="0"/>
+ </point>
+ <point type="L">
+ <location x="507" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="780" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="914" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapM" UID="004D">
+ <point type="L">
+ <location x="800" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1207" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapN" UID="004E">
+ <point type="H">
+ <location x="1170" y="0"/>
+ </point>
+ <point type="L">
+ <location x="652" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1059" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapO" UID="004F">
+ <point type="H">
+ <location x="657" y="0"/>
+ </point>
+ <point type="L">
+ <location x="632" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="896" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1700" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="1039" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapP" UID="0050">
+ <point type="L">
+ <location x="552" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="959" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapQ" UID="0051">
+ <point type="L">
+ <location x="589" y="-270"/>
+ </point>
+ <point type="U">
+ <location x="1039" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapR" UID="0052">
+ <point type="H">
+ <location x="590" y="0"/>
+ </point>
+ <point type="L">
+ <location x="525" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="932" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapS" UID="0053">
+ <point type="H">
+ <location x="520" y="0"/>
+ </point>
+ <point type="L">
+ <location x="495" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="902" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapT" UID="0054">
+ <point type="H">
+ <location x="562" y="0"/>
+ </point>
+ <point type="L">
+ <location x="562" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="944" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapU" UID="0055">
+ <point type="H">
+ <location x="647" y="0"/>
+ </point>
+ <point type="L">
+ <location x="622" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="865" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1640" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="1029" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapV" UID="0056">
+ <point type="H">
+ <location x="620" y="0"/>
+ </point>
+ <point type="L">
+ <location x="587" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="820" y="0"/>
+ </point>
+ <point type="U">
+ <location x="994" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapW" UID="0057">
+ <point type="L">
+ <location x="942" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1349" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapX" UID="0058">
+ <point type="L">
+ <location x="565" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="972" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapY" UID="0059">
+ <point type="L">
+ <location x="565" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="972" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LftSqrBrac" UID="005B"/>
+<glyph PSName="ReverseSolidus" UID="005C"/>
+<glyph PSName="RtSqrBrac" UID="005D"/>
+<glyph PSName="CircumAccent" UID="005E">
+ <point type="U">
+ <location x="705" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LowLine" UID="005F"/>
+<glyph PSName="GraveAccent" UID="0060">
+ <point type="U">
+ <location x="738" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmA" UID="0061">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="755" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmB" UID="0062">
+ <point type="H">
+ <location x="530" y="0"/>
+ </point>
+ <point type="L">
+ <location x="505" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1345" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="938" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmC" UID="0063">
+ <point type="H">
+ <location x="520" y="0"/>
+ </point>
+ <point type="L">
+ <location x="495" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1210" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="785" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmD" UID="0064">
+ <point type="H">
+ <location x="545" y="0"/>
+ </point>
+ <point type="L">
+ <location x="520" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1380" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="953" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmE" UID="0065">
+ <point type="H">
+ <location x="485" y="0"/>
+ </point>
+ <point type="L">
+ <location x="484" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="840" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1285" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="784" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmF" UID="0066">
+ <point type="H">
+ <location x="290" y="0"/>
+ </point>
+ <point type="L">
+ <location x="315" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="908" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmG" UID="0067">
+ <point type="H">
+ <location x="368" y="-465"/>
+ </point>
+ <point type="L">
+ <location x="351" y="-535"/>
+ </point>
+ <point type="R">
+ <location x="1285" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="730" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmH" UID="0068">
+ <point type="H">
+ <location x="190" y="0"/>
+ </point>
+ <point type="L">
+ <location x="550" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="933" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmI" UID="0069">
+ <point type="H">
+ <location x="235" y="0"/>
+ </point>
+ <point type="L">
+ <location x="250" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="455" y="0"/>
+ </point>
+ <point type="R">
+ <location x="745" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="472" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmJ" UID="006A">
+ <point type="L">
+ <location x="-60" y="-500"/>
+ </point>
+ <point type="U">
+ <location x="510" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmK" UID="006B">
+ <point type="H">
+ <location x="840" y="0"/>
+ </point>
+ <point type="L">
+ <location x="537" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1225" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="920" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmL" UID="006C">
+ <point type="H">
+ <location x="230" y="0"/>
+ </point>
+ <point type="L">
+ <location x="255" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="740" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="630" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmM" UID="006D">
+ <point type="H">
+ <location x="805" y="0"/>
+ </point>
+ <point type="L">
+ <location x="780" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1080" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmN" UID="006E">
+ <point type="H">
+ <location x="540" y="0"/>
+ </point>
+ <point type="L">
+ <location x="565" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="815" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmO" UID="006F">
+ <point type="H">
+ <location x="510" y="0"/>
+ </point>
+ <point type="L">
+ <location x="505" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="800" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1330" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="785" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmP" UID="0070">
+ <point type="H">
+ <location x="105" y="-435"/>
+ </point>
+ <point type="L">
+ <location x="405" y="-500"/>
+ </point>
+ <point type="R">
+ <location x="1360" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="805" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmQ" UID="0071">
+ <point type="L">
+ <location x="370" y="-500"/>
+ </point>
+ <point type="R">
+ <location x="1320" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="770" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmR" UID="0072">
+ <point type="H">
+ <location x="210" y="0"/>
+ </point>
+ <point type="L">
+ <location x="220" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="670" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmS" UID="0073">
+ <point type="H">
+ <location x="435" y="0"/>
+ </point>
+ <point type="L">
+ <location x="440" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="710" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmT" UID="0074">
+ <point type="H">
+ <location x="455" y="0"/>
+ </point>
+ <point type="L">
+ <location x="390" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1025" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="605" y="1360"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmU" UID="0075">
+ <point type="H">
+ <location x="465" y="0"/>
+ </point>
+ <point type="L">
+ <location x="504" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="640" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1375" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="804" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmV" UID="0076">
+ <point type="H">
+ <location x="359" y="0"/>
+ </point>
+ <point type="L">
+ <location x="350" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="565" y="0"/>
+ </point>
+ <point type="U">
+ <location x="650" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmW" UID="0077">
+ <point type="L">
+ <location x="690" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="990" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmX" UID="0078">
+ <point type="H">
+ <location x="840" y="0"/>
+ </point>
+ <point type="L">
+ <location x="457" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="657" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmY" UID="0079">
+ <point type="L">
+ <location x="710" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1270" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="630" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LftCurlyBrac" UID="007B"/>
+<glyph PSName="VertLine" UID="007C"/>
+<glyph PSName="RtCurlyBrac" UID="007D"/>
+<glyph PSName="Tilde" UID="007E"/>
+<glyph PSName="LtnCapADiaer" UID="00C4">
+ <point type="H">
+ <location x="1170" y="0"/>
+ </point>
+ <point type="L">
+ <location x="602" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1390" y="0"/>
+ </point>
+ <point type="U">
+ <location x="1106" y="1935"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmAAcute" UID="00E1">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="889" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmAGrave" UID="00E0">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="889" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmACircum" UID="00E2">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="854" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmADiaer" UID="00E4">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="852" y="1505"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmATilde" UID="00E3">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="850" y="1475"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmARingAbv" UID="00E5">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="919" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="DottedCirc" UID="25CC">
+ <point type="H">
+ <location x="493" y="0"/>
+ </point>
+ <point type="L">
+ <location x="468" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="750" y="0"/>
+ </point>
+ <point type="U">
+ <location x="743" y="1000"/>
+ </point>
+</glyph>
+<glyph PSName="Hyphen" UID="2010">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="NonBreakingHyphen" UID="2011">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="Hyphen_Soft" UID="00AD">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombAcute" UID="0301">
+ <point type="U">
+ <location x="-221" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-355" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombGrave" UID="0300">
+ <point type="U">
+ <location x="-201" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-335" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombCircum" UID="0302">
+ <point type="U">
+ <location x="-221" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-320" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombTilde" UID="0303">
+ <point type="U">
+ <location x="-290" y="1475"/>
+ </point>
+ <point type="_U">
+ <location x="-385" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombDiaer" UID="0308">
+ <point type="U">
+ <location x="-253" y="1505"/>
+ </point>
+ <point type="_U">
+ <location x="-350" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombRingAbv" UID="030A">
+ <point type="U">
+ <location x="-221" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-385" y="1100"/>
+ </point>
+</glyph>
+</font>
diff --git a/tests/reference/ufo/psfexportunicodes.csv b/tests/reference/ufo/psfexportunicodes.csv
new file mode 100644
index 0000000..741c210
--- /dev/null
+++ b/tests/reference/ufo/psfexportunicodes.csv
@@ -0,0 +1,113 @@
+# 2018-09-19 20:11:23 psfexportunicodes
+# tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -o local/testresults/ufo/psfexportunicodes.csv -l local/testresults/ufo/psfexportunicodes.log
+
+Ampersand,0026
+Apos,0027
+Asterisk,002A
+AtSgn,0040
+CircumAccent,005E
+Colon,003A
+CombAcute,0301
+CombCircum,0302
+CombDiaer,0308
+CombGrave,0300
+CombRingAbv,030A
+CombTilde,0303
+Comma,002C
+DigitEight,0038
+DigitFive,0035
+DigitFour,0034
+DigitNine,0039
+DigitOne,0031
+DigitSeven,0037
+DigitSix,0036
+DigitThree,0033
+DigitTwo,0032
+DigitZero,0030
+DollarSgn,0024
+DottedCirc,25CC
+EqSgn,003D
+ExclamationMrk,0021
+FullStop,002E
+GTSgn,003E
+GraveAccent,0060
+Hyphen,2010
+HyphenMinus,002D
+Hyphen_Soft,00AD
+LTSgn,003C
+LftCurlyBrac,007B
+LftParen,0028
+LftSqrBrac,005B
+LowLine,005F
+LtnCapA,0041
+LtnCapADiaer,00C4
+LtnCapB,0042
+LtnCapC,0043
+LtnCapD,0044
+LtnCapE,0045
+LtnCapF,0046
+LtnCapG,0047
+LtnCapH,0048
+LtnCapI,0049
+LtnCapJ,004A
+LtnCapK,004B
+LtnCapL,004C
+LtnCapM,004D
+LtnCapN,004E
+LtnCapO,004F
+LtnCapP,0050
+LtnCapQ,0051
+LtnCapR,0052
+LtnCapS,0053
+LtnCapT,0054
+LtnCapU,0055
+LtnCapV,0056
+LtnCapW,0057
+LtnCapX,0058
+LtnCapY,0059
+LtnSmA,0061
+LtnSmAAcute,00E1
+LtnSmACircum,00E2
+LtnSmADiaer,00E4
+LtnSmAGrave,00E0
+LtnSmARingAbv,00E5
+LtnSmATilde,00E3
+LtnSmB,0062
+LtnSmC,0063
+LtnSmD,0064
+LtnSmE,0065
+LtnSmF,0066
+LtnSmG,0067
+LtnSmH,0068
+LtnSmI,0069
+LtnSmJ,006A
+LtnSmK,006B
+LtnSmL,006C
+LtnSmM,006D
+LtnSmN,006E
+LtnSmO,006F
+LtnSmP,0070
+LtnSmQ,0071
+LtnSmR,0072
+LtnSmS,0073
+LtnSmT,0074
+LtnSmU,0075
+LtnSmV,0076
+LtnSmW,0077
+LtnSmX,0078
+LtnSmY,0079
+NonBreakingHyphen,2011
+NumSgn,0023
+PercentSgn,0025
+PlusSgn,002B
+QstnMrk,003F
+QuotMrk,0022
+ReverseSolidus,005C
+RtCurlyBrac,007D
+RtParen,0029
+RtSqrBrac,005D
+Semicolon,003B
+Solidus,002F
+Space,0020
+Tilde,007E
+VertLine,007C
diff --git a/tests/reference/ufo/psfexportunicodes.lg b/tests/reference/ufo/psfexportunicodes.lg
new file mode 100644
index 0000000..89b9e5a
--- /dev/null
+++ b/tests/reference/ufo/psfexportunicodes.lg
@@ -0,0 +1,14 @@
+2021-06-29 14:42:20 Progress: Running: psfexportunicodes tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -o local/testresults/ufo/psfexportunicodes.csv -l local/testresults/ufo/psfexportunicodes.log
+2021-06-29 14:42:20 Progress: Opening file for output: @cwd@/local/testresults/ufo/psfexportunicodes.csv
+2021-06-29 14:42:20 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo
+2021-06-29 14:42:20 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:20 Warning: macintoshFONDName would be removed from fontinfo Old value: My Test
+2021-06-29 14:42:20 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:20 Warning: postscriptFamilyBlues would be removed from fontinfo Old value: []
+2021-06-29 14:42:20 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:20 Warning: openTypeHheaAscender would be updated Old value: 2200, new value: 2100
+2021-06-29 14:42:20 Progress: Checking lib.plist metadata
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Progress: Check & fix results:- Errors: 0, Changes to make: 7, Other warnings: 0
+2021-06-29 14:42:20 Progress: See log file for details
diff --git a/tests/reference/ufo/psfgenftml.ftml b/tests/reference/ufo/psfgenftml.ftml
new file mode 100644
index 0000000..e385e33
--- /dev/null
+++ b/tests/reference/ufo/psfgenftml.ftml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="ftml.xsl" type="text/xsl"?>
+<ftml version="1.0">
+ <head>
+ <title>ftml_builder test</title>
+ </head>
+ <testgroup background="#f0f0f0" label="Rendering Check">
+ <test label="check">
+ <string>RenderingUnknown</string>
+ </test>
+ </testgroup>
+ <testgroup label="Encoded characters">
+ <test label="U+0020">
+ <comment>Space</comment>
+ <string>\u00F130 \u00F131 ! " # $ % &amp; ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; &lt; = &gt; ? @ A B C</string>
+ </test>
+ <test label="U+0043" rtl="True">
+ <comment>LtnCapC</comment>
+ <string>C</string>
+ </test>
+ <test label="U+0044">
+ <comment>LtnCapD</comment>
+ <string>D E F G H I J K L M N O P Q R S T U V W X Y</string>
+ </test>
+ <test label="U+005B">
+ <comment>LftSqrBrac</comment>
+ <string>[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y</string>
+ </test>
+ <test label="U+007B">
+ <comment>LftCurlyBrac</comment>
+ <string>{ | } ~</string>
+ </test>
+ <test label="U+00AD">
+ <comment>Hyphen_Soft</comment>
+ <string>\u0000AD</string>
+ </test>
+ <test label="U+00C4">
+ <comment>LtnCapADiaer</comment>
+ <string>\u0000C4</string>
+ </test>
+ <test label="U+00E0">
+ <comment>LtnSmAGrave</comment>
+ <string>\u0000E0 \u0000E1 \u0000E2 \u0000E3 \u0000E4 \u0000E5</string>
+ </test>
+ <test label="U+0300">
+ <comment>CombGrave</comment>
+ <string>\u0025CC\u000300 \u0025CC\u000301 \u0025CC\u000302 \u0025CC\u000303</string>
+ </test>
+ <test label="U+0308">
+ <comment>CombDiaer</comment>
+ <string>\u0025CC\u000308</string>
+ </test>
+ <test label="U+030A">
+ <comment>CombRingAbv</comment>
+ <string>\u0025CC\u00030A</string>
+ </test>
+ <test label="U+2010">
+ <comment>Hyphen</comment>
+ <string>\u002010 \u002011</string>
+ </test>
+ <test label="U+25CC">
+ <comment>DottedCirc</comment>
+ <string>\u0025CC</string>
+ </test>
+ </testgroup>
+</ftml>
diff --git a/tests/reference/ufo/psfgenftml.lg b/tests/reference/ufo/psfgenftml.lg
new file mode 100644
index 0000000..0f1a72c
--- /dev/null
+++ b/tests/reference/ufo/psfgenftml.lg
@@ -0,0 +1,19 @@
+2021-06-29 14:42:20 Progress: Running: psfgenftml -i tests/input/psfgenftml.csv -l local/testresults/ufo/psfgenftml.log tests/input/font-psf-test/source/PsfTest-Italic.ufo local/testresults/ufo/psfgenftml.ftml
+2021-06-29 14:42:20 Progress: Opening file for output: @cwd@/local/testresults/ufo/psfgenftml.ftml
+2021-06-29 14:42:20 Progress: Opening file for input: tests/input/psfgenftml.csv
+2021-06-29 14:42:20 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:20 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:20 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:20 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:20 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:20 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:20 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:20 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:20 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:20 Progress: Checking lib.plist metadata
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:20 Progress: See log file for details
+2021-06-29 14:42:21 Warning: glyph_data line 39: psname A previously seen; ignored
+2021-06-29 14:42:21 Warning: glyph_data line 116: empty glyph name in glyph_data; ignored
diff --git a/tests/reference/ufo/psfglyphs2ufo.lg b/tests/reference/ufo/psfglyphs2ufo.lg
new file mode 100644
index 0000000..249bf00
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo.lg
@@ -0,0 +1,13 @@
+2020-10-22 11:30:51 Progress: Running: psfglyphs2ufo --nofea tests/input/font-psf-test/source/PsfTestRoman.glyphs local/testresults/ufo/psfglyphs2ufo -l local/testresults/ufo/psfglyphs2ufo.log
+2020-10-22 11:30:51 Progress: Fixing data in PsfTest-Regular
+2020-10-22 11:30:51 Progress: Checking lib.plist
+2020-10-22 11:30:51 Progress: Checking fontinfo.plist
+2020-10-22 11:30:51 Progress: Writing out local/testresults/ufo/psfglyphs2ufo/PsfTest-Regular.ufo
+2020-10-22 11:30:51 Progress: Fixing data in PsfTest-Bold
+2020-10-22 11:30:51 Progress: Checking lib.plist
+2020-10-22 11:30:51 Progress: Checking fontinfo.plist
+2020-10-22 11:30:51 Progress: Writing out local/testresults/ufo/psfglyphs2ufo/PsfTest-Bold.ufo
+2020-10-22 11:30:51 Error: The following obsolete keys were found. They may have been in the original UFO or you may have an old version of glyphsLib installed
+ PsfTest-Regular: com.schriftgestaltung.disablesAutomaticAlignment, com.schriftgestaltung.disablesLastChange,
+ PsfTest-Bold: com.schriftgestaltung.disablesAutomaticAlignment, com.schriftgestaltung.disablesLastChange,
+
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist
new file mode 100644
index 0000000..7986300
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/10/22 11:32:25</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f2749f2
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1355"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1060" y="600" type="line"/>
+ <point x="996" y="433"/>
+ <point x="715" y="190"/>
+ <point x="540" y="190" type="curve" smooth="yes"/>
+ <point x="425" y="190"/>
+ <point x="335" y="257"/>
+ <point x="335" y="370" type="curve" smooth="yes"/>
+ <point x="335" y="480"/>
+ <point x="411" y="547"/>
+ <point x="585" y="700" type="curve" smooth="yes"/>
+ <point x="766" y="859"/>
+ <point x="925" y="1048"/>
+ <point x="925" y="1190" type="curve" smooth="yes"/>
+ <point x="925" y="1372"/>
+ <point x="777" y="1485"/>
+ <point x="575" y="1485" type="curve" smooth="yes"/>
+ <point x="366" y="1485"/>
+ <point x="190" y="1372"/>
+ <point x="190" y="1160" type="curve" smooth="yes"/>
+ <point x="190" y="1000"/>
+ <point x="407" y="785"/>
+ <point x="590" y="540" type="curve" smooth="yes"/>
+ <point x="859" y="179"/>
+ <point x="1038" y="-25"/>
+ <point x="1090" y="-25" type="curve" smooth="yes"/>
+ <point x="1125" y="-25"/>
+ <point x="1253" y="58"/>
+ <point x="1290" y="90" type="curve"/>
+ <point x="1195" y="130"/>
+ <point x="1060" y="305"/>
+ <point x="785" y="680" type="curve" smooth="yes"/>
+ <point x="619" y="906"/>
+ <point x="420" y="1085"/>
+ <point x="420" y="1170" type="curve" smooth="yes"/>
+ <point x="420" y="1241"/>
+ <point x="483" y="1310"/>
+ <point x="560" y="1310" type="curve" smooth="yes"/>
+ <point x="640" y="1310"/>
+ <point x="695" y="1254"/>
+ <point x="695" y="1175" type="curve" smooth="yes"/>
+ <point x="695" y="1106"/>
+ <point x="628" y="1001"/>
+ <point x="455" y="840" type="curve" smooth="yes"/>
+ <point x="251" y="651"/>
+ <point x="90" y="527"/>
+ <point x="90" y="344" type="curve" smooth="yes"/>
+ <point x="90" y="121"/>
+ <point x="242" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="808" y="-25"/>
+ <point x="1117" y="264"/>
+ <point x="1195" y="425" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..61494e8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="625"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="400" y="1045" type="line"/>
+ <point x="405" y="1186"/>
+ <point x="406" y="1339"/>
+ <point x="435" y="1585" type="curve"/>
+ <point x="190" y="1585" type="line"/>
+ <point x="221" y="1339"/>
+ <point x="221" y="1186"/>
+ <point x="225" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..ed9d25e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1040"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="827" y="1493" type="line"/>
+ <point x="747" y="1426"/>
+ <point x="679" y="1367"/>
+ <point x="594" y="1308" type="curve"/>
+ <point x="599" y="1405"/>
+ <point x="609" y="1486"/>
+ <point x="624" y="1600" type="curve"/>
+ <point x="425" y="1600" type="line"/>
+ <point x="444" y="1497"/>
+ <point x="460" y="1412"/>
+ <point x="468" y="1308" type="curve"/>
+ <point x="383" y="1360"/>
+ <point x="312" y="1408"/>
+ <point x="228" y="1476" type="curve"/>
+ <point x="126" y="1306" type="line"/>
+ <point x="231" y="1271"/>
+ <point x="331" y="1234"/>
+ <point x="412" y="1196" type="curve"/>
+ <point x="328" y="1153"/>
+ <point x="243" y="1120"/>
+ <point x="136" y="1077" type="curve"/>
+ <point x="237" y="897" type="line"/>
+ <point x="316" y="968"/>
+ <point x="382" y="1026"/>
+ <point x="466" y="1087" type="curve"/>
+ <point x="459" y="983"/>
+ <point x="449" y="896"/>
+ <point x="431" y="793" type="curve"/>
+ <point x="632" y="793" type="line"/>
+ <point x="610" y="906"/>
+ <point x="602" y="987"/>
+ <point x="593" y="1084" type="curve"/>
+ <point x="682" y="1027"/>
+ <point x="747" y="981"/>
+ <point x="830" y="914" type="curve"/>
+ <point x="936" y="1089" type="line"/>
+ <point x="827" y="1127"/>
+ <point x="743" y="1155"/>
+ <point x="651" y="1196" type="curve"/>
+ <point x="738" y="1241"/>
+ <point x="820" y="1277"/>
+ <point x="924" y="1321" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..47fee96
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1742"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1140" y="10" type="line"/>
+ <point x="1077" y="-34"/>
+ <point x="988" y="-60"/>
+ <point x="895" y="-60" type="curve" smooth="yes"/>
+ <point x="558" y="-60"/>
+ <point x="290" y="204"/>
+ <point x="290" y="605" type="curve" smooth="yes"/>
+ <point x="290" y="973"/>
+ <point x="557" y="1240"/>
+ <point x="895" y="1240" type="curve" smooth="yes"/>
+ <point x="1278" y="1240"/>
+ <point x="1460" y="992"/>
+ <point x="1460" y="670" type="curve" smooth="yes"/>
+ <point x="1460" y="452"/>
+ <point x="1363" y="335"/>
+ <point x="1305" y="335" type="curve" smooth="yes"/>
+ <point x="1256" y="335"/>
+ <point x="1220" y="430"/>
+ <point x="1220" y="650" type="curve" smooth="yes"/>
+ <point x="1220" y="980" type="line"/>
+ <point x="1133" y="1015"/>
+ <point x="986" y="1040"/>
+ <point x="905" y="1040" type="curve" smooth="yes"/>
+ <point x="741" y="1040"/>
+ <point x="618" y="961"/>
+ <point x="535" y="825" type="curve" smooth="yes"/>
+ <point x="488" y="746"/>
+ <point x="460" y="653"/>
+ <point x="460" y="530" type="curve" smooth="yes"/>
+ <point x="460" y="304"/>
+ <point x="606" y="163"/>
+ <point x="740" y="163" type="curve" smooth="yes"/>
+ <point x="867" y="163"/>
+ <point x="1013" y="331"/>
+ <point x="1065" y="455" type="curve"/>
+ <point x="1075" y="287"/>
+ <point x="1153" y="160"/>
+ <point x="1275" y="160" type="curve" smooth="yes"/>
+ <point x="1450" y="160"/>
+ <point x="1650" y="358"/>
+ <point x="1650" y="700" type="curve" smooth="yes"/>
+ <point x="1650" y="1137"/>
+ <point x="1342" y="1425"/>
+ <point x="905" y="1425" type="curve" smooth="yes"/>
+ <point x="480" y="1425"/>
+ <point x="90" y="1136"/>
+ <point x="90" y="575" type="curve" smooth="yes"/>
+ <point x="90" y="38"/>
+ <point x="479" y="-245"/>
+ <point x="880" y="-245" type="curve" smooth="yes"/>
+ <point x="1015" y="-245"/>
+ <point x="1175" y="-198"/>
+ <point x="1275" y="-128" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1020" y="710" type="line"/>
+ <point x="988" y="572"/>
+ <point x="863" y="350"/>
+ <point x="773" y="350" type="curve" smooth="yes"/>
+ <point x="701" y="350"/>
+ <point x="660" y="428"/>
+ <point x="660" y="575" type="curve" smooth="yes"/>
+ <point x="660" y="652"/>
+ <point x="682" y="737"/>
+ <point x="720" y="786" type="curve" smooth="yes"/>
+ <point x="756" y="831"/>
+ <point x="807" y="855"/>
+ <point x="875" y="855" type="curve" smooth="yes"/>
+ <point x="949" y="855"/>
+ <point x="987" y="836"/>
+ <point x="1020" y="820" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..7258b7d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="880"/>
+ <unicode hex="005E"/>
+ <anchor x="440" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="888" y="1200" type="line"/>
+ <point x="598" y="1600" type="line"/>
+ <point x="298" y="1600" type="line"/>
+ <point x="8" y="1200" type="line"/>
+ <point x="248" y="1200" type="line"/>
+ <point x="448" y="1430" type="line"/>
+ <point x="648" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..ae4801a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="710"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..5574223
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-600" y="1635" name="U"/>
+ <anchor x="-540" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1600" type="line"/>
+ <point x="-760" y="1200" type="line"/>
+ <point x="-520" y="1200" type="line"/>
+ <point x="-120" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..ca30491
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-588" y="1635" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-140" y="1200" type="line"/>
+ <point x="-430" y="1600" type="line"/>
+ <point x="-730" y="1600" type="line"/>
+ <point x="-1020" y="1200" type="line"/>
+ <point x="-780" y="1200" type="line"/>
+ <point x="-580" y="1430" type="line"/>
+ <point x="-380" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..5a15368
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-580" y="1585" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-510" y="1385" type="curve" smooth="yes"/>
+ <point x="-510" y="1281"/>
+ <point x="-436" y="1210"/>
+ <point x="-335" y="1210" type="curve" smooth="yes"/>
+ <point x="-233" y="1210"/>
+ <point x="-160" y="1281"/>
+ <point x="-160" y="1385" type="curve" smooth="yes"/>
+ <point x="-160" y="1487"/>
+ <point x="-233" y="1560"/>
+ <point x="-335" y="1560" type="curve" smooth="yes"/>
+ <point x="-436" y="1560"/>
+ <point x="-510" y="1487"/>
+ </contour>
+ <contour>
+ <point x="-1000" y="1385" type="curve" smooth="yes"/>
+ <point x="-1000" y="1281"/>
+ <point x="-926" y="1210"/>
+ <point x="-825" y="1210" type="curve" smooth="yes"/>
+ <point x="-723" y="1210"/>
+ <point x="-650" y="1281"/>
+ <point x="-650" y="1385" type="curve" smooth="yes"/>
+ <point x="-650" y="1487"/>
+ <point x="-723" y="1560"/>
+ <point x="-825" y="1560" type="curve" smooth="yes"/>
+ <point x="-926" y="1560"/>
+ <point x="-1000" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..33bed8f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-590" y="1635" name="U"/>
+ <anchor x="-630" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-1050" y="1600" type="line"/>
+ <point x="-650" y="1200" type="line"/>
+ <point x="-410" y="1200" type="line"/>
+ <point x="-700" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..7e03146
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-475" y="1400" type="curve" smooth="yes"/>
+ <point x="-475" y="1345"/>
+ <point x="-515" y="1305"/>
+ <point x="-570" y="1305" type="curve" smooth="yes"/>
+ <point x="-625" y="1305"/>
+ <point x="-665" y="1345"/>
+ <point x="-665" y="1400" type="curve" smooth="yes"/>
+ <point x="-665" y="1455"/>
+ <point x="-625" y="1495"/>
+ <point x="-570" y="1495" type="curve" smooth="yes"/>
+ <point x="-515" y="1495"/>
+ <point x="-475" y="1455"/>
+ </contour>
+ <contour>
+ <point x="-815" y="1400" type="curve" smooth="yes"/>
+ <point x="-815" y="1260"/>
+ <point x="-710" y="1160"/>
+ <point x="-570" y="1160" type="curve" smooth="yes"/>
+ <point x="-430" y="1160"/>
+ <point x="-325" y="1260"/>
+ <point x="-325" y="1400" type="curve" smooth="yes"/>
+ <point x="-325" y="1540"/>
+ <point x="-430" y="1640"/>
+ <point x="-570" y="1640" type="curve" smooth="yes"/>
+ <point x="-710" y="1640"/>
+ <point x="-815" y="1540"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..ee23af5
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-580" y="1490" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-830" y="1190" type="line"/>
+ <point x="-824" y="1232"/>
+ <point x="-803" y="1280"/>
+ <point x="-753" y="1280" type="curve" smooth="yes"/>
+ <point x="-710" y="1280"/>
+ <point x="-653" y="1264"/>
+ <point x="-570" y="1229" type="curve" smooth="yes"/>
+ <point x="-500" y="1199"/>
+ <point x="-448" y="1180"/>
+ <point x="-386" y="1180" type="curve" smooth="yes"/>
+ <point x="-250" y="1180"/>
+ <point x="-155" y="1307"/>
+ <point x="-155" y="1480" type="curve"/>
+ <point x="-310" y="1480" type="line"/>
+ <point x="-318" y="1438"/>
+ <point x="-340" y="1390"/>
+ <point x="-387" y="1390" type="curve" smooth="yes"/>
+ <point x="-435" y="1390"/>
+ <point x="-472" y="1408"/>
+ <point x="-550" y="1437" type="curve" smooth="yes"/>
+ <point x="-629" y="1466"/>
+ <point x="-695" y="1490"/>
+ <point x="-760" y="1490" type="curve" smooth="yes"/>
+ <point x="-892" y="1490"/>
+ <point x="-985" y="1349"/>
+ <point x="-985" y="1190" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..9d4845e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="665"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..a59fff4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="877" y="-25"/>
+ <point x="1130" y="144"/>
+ <point x="1130" y="415" type="curve" smooth="yes"/>
+ <point x="1130" y="641"/>
+ <point x="985" y="739"/>
+ <point x="875" y="795" type="curve"/>
+ <point x="953" y="841"/>
+ <point x="1060" y="923"/>
+ <point x="1060" y="1105" type="curve" smooth="yes"/>
+ <point x="1060" y="1350"/>
+ <point x="860" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="361" y="1485"/>
+ <point x="140" y="1350"/>
+ <point x="140" y="1105" type="curve" smooth="yes"/>
+ <point x="140" y="923"/>
+ <point x="252" y="838"/>
+ <point x="330" y="795" type="curve"/>
+ <point x="201" y="725"/>
+ <point x="70" y="631"/>
+ <point x="70" y="405" type="curve" smooth="yes"/>
+ <point x="70" y="134"/>
+ <point x="324" y="-25"/>
+ </contour>
+ <contour>
+ <point x="810" y="1100" type="curve" smooth="yes"/>
+ <point x="810" y="974"/>
+ <point x="733" y="895"/>
+ <point x="600" y="895" type="curve" smooth="yes"/>
+ <point x="467" y="895"/>
+ <point x="390" y="974"/>
+ <point x="390" y="1100" type="curve" smooth="yes"/>
+ <point x="390" y="1217"/>
+ <point x="477" y="1290"/>
+ <point x="600" y="1290" type="curve" smooth="yes"/>
+ <point x="743" y="1290"/>
+ <point x="810" y="1207"/>
+ </contour>
+ <contour>
+ <point x="865" y="435" type="curve" smooth="yes"/>
+ <point x="865" y="300"/>
+ <point x="768" y="185"/>
+ <point x="600" y="185" type="curve" smooth="yes"/>
+ <point x="440" y="185"/>
+ <point x="335" y="300"/>
+ <point x="335" y="435" type="curve" smooth="yes"/>
+ <point x="335" y="582"/>
+ <point x="450" y="680"/>
+ <point x="600" y="680" type="curve" smooth="yes"/>
+ <point x="748" y="680"/>
+ <point x="865" y="582"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..102780d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="645" type="line"/>
+ <point x="299" y="693"/>
+ <point x="404" y="710"/>
+ <point x="510" y="710" type="curve" smooth="yes"/>
+ <point x="670" y="710"/>
+ <point x="810" y="632"/>
+ <point x="810" y="470" type="curve" smooth="yes"/>
+ <point x="810" y="318"/>
+ <point x="690" y="215"/>
+ <point x="530" y="215" type="curve" smooth="yes"/>
+ <point x="390" y="215"/>
+ <point x="274" y="252"/>
+ <point x="140" y="360" type="curve"/>
+ <point x="100" y="80" type="line"/>
+ <point x="225" y="2"/>
+ <point x="365" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="833" y="-25"/>
+ <point x="1090" y="163"/>
+ <point x="1090" y="475" type="curve" smooth="yes"/>
+ <point x="1090" y="752"/>
+ <point x="882" y="930"/>
+ <point x="605" y="930" type="curve" smooth="yes"/>
+ <point x="543" y="930"/>
+ <point x="468" y="911"/>
+ <point x="435" y="895" type="curve"/>
+ <point x="435" y="1215" type="line"/>
+ <point x="765" y="1215" type="line" smooth="yes"/>
+ <point x="849" y="1215"/>
+ <point x="955" y="1211"/>
+ <point x="1030" y="1195" type="curve"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="175" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..7d2cbe6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1155" y="345" type="line"/>
+ <point x="1155" y="570" type="line"/>
+ <point x="995" y="570" type="line"/>
+ <point x="995" y="1460" type="line"/>
+ <point x="695" y="1460" type="line"/>
+ <point x="60" y="570" type="line"/>
+ <point x="60" y="345" type="line"/>
+ <point x="730" y="345" type="line"/>
+ <point x="730" y="0" type="line"/>
+ <point x="995" y="0" type="line"/>
+ <point x="995" y="345" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1145" type="line"/>
+ <point x="730" y="570" type="line"/>
+ <point x="305" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..b1e153b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="154" y="65" type="line"/>
+ <point x="248" y="5"/>
+ <point x="364" y="-25"/>
+ <point x="492" y="-25" type="curve" smooth="yes"/>
+ <point x="967" y="-25"/>
+ <point x="1135" y="411"/>
+ <point x="1135" y="780" type="curve" smooth="yes"/>
+ <point x="1135" y="1150"/>
+ <point x="977" y="1485"/>
+ <point x="589" y="1485" type="curve" smooth="yes"/>
+ <point x="310" y="1485"/>
+ <point x="70" y="1300"/>
+ <point x="70" y="1002" type="curve" smooth="yes"/>
+ <point x="70" y="763"/>
+ <point x="272" y="576"/>
+ <point x="550" y="576" type="curve" smooth="yes"/>
+ <point x="741" y="576"/>
+ <point x="913" y="707"/>
+ <point x="1010" y="868" type="curve"/>
+ <point x="939" y="991" type="line"/>
+ <point x="865" y="877"/>
+ <point x="729" y="790"/>
+ <point x="574" y="790" type="curve" smooth="yes"/>
+ <point x="425" y="790"/>
+ <point x="326" y="890"/>
+ <point x="326" y="1036" type="curve" smooth="yes"/>
+ <point x="326" y="1153"/>
+ <point x="425" y="1250"/>
+ <point x="573" y="1250" type="curve" smooth="yes"/>
+ <point x="773" y="1250"/>
+ <point x="870" y="1102"/>
+ <point x="870" y="813" type="curve" smooth="yes"/>
+ <point x="870" y="326"/>
+ <point x="699" y="210"/>
+ <point x="502" y="210" type="curve" smooth="yes"/>
+ <point x="406" y="210"/>
+ <point x="294" y="234"/>
+ <point x="208" y="320" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..c744b9f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1075" y="235" type="line"/>
+ <point x="767" y="235" type="line"/>
+ <point x="767" y="1460" type="line"/>
+ <point x="492" y="1460" type="line"/>
+ <point x="177" y="1278" type="line"/>
+ <point x="212" y="1018" type="line"/>
+ <point x="492" y="1170" type="line"/>
+ <point x="492" y="235" type="line"/>
+ <point x="185" y="235" type="line"/>
+ <point x="185" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..63fb1c4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="520" y="0" type="line"/>
+ <point x="649" y="459"/>
+ <point x="834" y="855"/>
+ <point x="1130" y="1260" type="curve"/>
+ <point x="1130" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1195" type="line"/>
+ <point x="176" y="1211"/>
+ <point x="292" y="1215"/>
+ <point x="480" y="1215" type="curve" smooth="yes"/>
+ <point x="800" y="1215" type="line"/>
+ <point x="542" y="842"/>
+ <point x="409" y="566"/>
+ <point x="235" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..7526cc6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1395" type="line"/>
+ <point x="969" y="1465"/>
+ <point x="873" y="1485"/>
+ <point x="735" y="1485" type="curve" smooth="yes"/>
+ <point x="260" y="1485"/>
+ <point x="90" y="1069"/>
+ <point x="90" y="680" type="curve" smooth="yes"/>
+ <point x="90" y="223"/>
+ <point x="297" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="955" y="-25"/>
+ <point x="1155" y="179"/>
+ <point x="1155" y="470" type="curve" smooth="yes"/>
+ <point x="1155" y="729"/>
+ <point x="963" y="925"/>
+ <point x="675" y="925" type="curve" smooth="yes"/>
+ <point x="484" y="925"/>
+ <point x="338" y="810"/>
+ <point x="225" y="655" type="curve"/>
+ <point x="290" y="540" type="line"/>
+ <point x="372" y="643"/>
+ <point x="500" y="710"/>
+ <point x="655" y="710" type="curve" smooth="yes"/>
+ <point x="814" y="710"/>
+ <point x="900" y="601"/>
+ <point x="900" y="455" type="curve" smooth="yes"/>
+ <point x="900" y="329"/>
+ <point x="803" y="210"/>
+ <point x="656" y="210" type="curve" smooth="yes"/>
+ <point x="474" y="210"/>
+ <point x="355" y="386"/>
+ <point x="355" y="645" type="curve" smooth="yes"/>
+ <point x="355" y="1132"/>
+ <point x="528" y="1250"/>
+ <point x="725" y="1250" type="curve" smooth="yes"/>
+ <point x="821" y="1250"/>
+ <point x="923" y="1226"/>
+ <point x="1009" y="1140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..883bd62
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="885" type="line"/>
+ <point x="390" y="645" type="line"/>
+ <point x="480" y="645" type="line" smooth="yes"/>
+ <point x="706" y="645"/>
+ <point x="835" y="548"/>
+ <point x="835" y="425" type="curve" smooth="yes"/>
+ <point x="835" y="291"/>
+ <point x="708" y="210"/>
+ <point x="565" y="210" type="curve" smooth="yes"/>
+ <point x="405" y="210"/>
+ <point x="244" y="282"/>
+ <point x="135" y="405" type="curve"/>
+ <point x="100" y="130" type="line"/>
+ <point x="205" y="32"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="874" y="-25"/>
+ <point x="1120" y="170"/>
+ <point x="1120" y="405" type="curve" smooth="yes"/>
+ <point x="1120" y="672"/>
+ <point x="892" y="756"/>
+ <point x="750" y="780" type="curve"/>
+ <point x="892" y="809"/>
+ <point x="1070" y="957"/>
+ <point x="1070" y="1140" type="curve" smooth="yes"/>
+ <point x="1070" y="1354"/>
+ <point x="868" y="1485"/>
+ <point x="580" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="240" y="1416"/>
+ <point x="160" y="1325" type="curve"/>
+ <point x="195" y="1095" type="line"/>
+ <point x="308" y="1211"/>
+ <point x="436" y="1250"/>
+ <point x="590" y="1250" type="curve" smooth="yes"/>
+ <point x="689" y="1250"/>
+ <point x="791" y="1193"/>
+ <point x="791" y="1102" type="curve" smooth="yes"/>
+ <point x="791" y="994"/>
+ <point x="662" y="885"/>
+ <point x="480" y="885" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..1d73732
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="260" type="line"/>
+ <point x="1010" y="246"/>
+ <point x="942" y="245"/>
+ <point x="745" y="245" type="curve" smooth="yes"/>
+ <point x="480" y="245" type="line"/>
+ <point x="699" y="422"/>
+ <point x="1046" y="739"/>
+ <point x="1046" y="1065" type="curve" smooth="yes"/>
+ <point x="1046" y="1323"/>
+ <point x="850" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="196" y="1402"/>
+ <point x="105" y="1290" type="curve"/>
+ <point x="170" y="1050" type="line"/>
+ <point x="259" y="1158"/>
+ <point x="412" y="1235"/>
+ <point x="535" y="1235" type="curve" smooth="yes"/>
+ <point x="688" y="1235"/>
+ <point x="758" y="1133"/>
+ <point x="758" y="1015" type="curve" smooth="yes"/>
+ <point x="758" y="758"/>
+ <point x="381" y="415"/>
+ <point x="110" y="220" type="curve"/>
+ <point x="110" y="0" type="line"/>
+ <point x="1090" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..01f4532
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="715" type="curve" smooth="yes"/>
+ <point x="850" y="368"/>
+ <point x="762" y="205"/>
+ <point x="600" y="205" type="curve" smooth="yes"/>
+ <point x="432" y="205"/>
+ <point x="350" y="375"/>
+ <point x="350" y="745" type="curve" smooth="yes"/>
+ <point x="350" y="1093"/>
+ <point x="437" y="1255"/>
+ <point x="600" y="1255" type="curve" smooth="yes"/>
+ <point x="772" y="1255"/>
+ <point x="850" y="1086"/>
+ </contour>
+ <contour>
+ <point x="1135" y="740" type="curve" smooth="yes"/>
+ <point x="1135" y="1286"/>
+ <point x="950" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="291" y="1485"/>
+ <point x="65" y="1283"/>
+ <point x="65" y="720" type="curve" smooth="yes"/>
+ <point x="65" y="165"/>
+ <point x="271" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="911" y="-25"/>
+ <point x="1135" y="161"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..f8b49cd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1006" y="1316" type="line"/>
+ <point x="886" y="1374"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="150" y="1203"/>
+ <point x="150" y="1017" type="curve" smooth="yes"/>
+ <point x="150" y="830"/>
+ <point x="275" y="730"/>
+ <point x="540" y="623" type="curve" smooth="yes"/>
+ <point x="802" y="517"/>
+ <point x="851" y="472"/>
+ <point x="851" y="386" type="curve" smooth="yes"/>
+ <point x="851" y="267"/>
+ <point x="744" y="211"/>
+ <point x="586" y="211" type="curve" smooth="yes"/>
+ <point x="440" y="211"/>
+ <point x="297" y="281"/>
+ <point x="195" y="383" type="curve"/>
+ <point x="123" y="124" type="line"/>
+ <point x="216" y="49"/>
+ <point x="388" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="847" y="0"/>
+ <point x="1086" y="147"/>
+ <point x="1086" y="414" type="curve" smooth="yes"/>
+ <point x="1086" y="633"/>
+ <point x="927" y="723"/>
+ <point x="679" y="826" type="curve" smooth="yes"/>
+ <point x="431" y="929"/>
+ <point x="385" y="969"/>
+ <point x="385" y="1040" type="curve" smooth="yes"/>
+ <point x="385" y="1132"/>
+ <point x="466" y="1188"/>
+ <point x="613" y="1188" type="curve" smooth="yes"/>
+ <point x="741" y="1188"/>
+ <point x="876" y="1154"/>
+ <point x="949" y="1077" type="curve"/>
+ </contour>
+ <contour>
+ <point x="548" y="1600" type="line"/>
+ <point x="548" y="788" type="line"/>
+ <point x="518" y="726" type="line"/>
+ <point x="518" y="-220" type="line"/>
+ <point x="688" y="-220" type="line"/>
+ <point x="688" y="668" type="line"/>
+ <point x="718" y="734" type="line"/>
+ <point x="718" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..9eeb2ef
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="440" type="line"/>
+ <point x="1080" y="440" type="line"/>
+ <point x="1080" y="650" type="line"/>
+ <point x="120" y="650" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="810" type="line"/>
+ <point x="1080" y="810" type="line"/>
+ <point x="1080" y="1020" type="line"/>
+ <point x="120" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..cfdf1a6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="780"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="530" y="500" type="line"/>
+ <point x="536" y="790"/>
+ <point x="531" y="1076"/>
+ <point x="570" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="790"/>
+ <point x="275" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="230" y="150" type="curve" smooth="yes"/>
+ <point x="230" y="46"/>
+ <point x="304" y="-25"/>
+ <point x="405" y="-25" type="curve" smooth="yes"/>
+ <point x="507" y="-25"/>
+ <point x="580" y="46"/>
+ <point x="580" y="150" type="curve" smooth="yes"/>
+ <point x="580" y="252"/>
+ <point x="507" y="325"/>
+ <point x="405" y="325" type="curve" smooth="yes"/>
+ <point x="304" y="325"/>
+ <point x="230" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..b05d598
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="710"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..650e4d2
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="245" type="line"/>
+ <point x="1090" y="635" type="line"/>
+ <point x="1090" y="825" type="line"/>
+ <point x="130" y="1215" type="line"/>
+ <point x="130" y="985" type="line"/>
+ <point x="810" y="730" type="line"/>
+ <point x="130" y="475" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..83a5f21
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="640"/>
+ <unicode hex="0060"/>
+ <anchor x="500" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="0" y="1600" type="line"/>
+ <point x="400" y="1200" type="line"/>
+ <point x="640" y="1200" type="line"/>
+ <point x="350" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..d79c70a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="880"/>
+ <unicode hex="2010"/>
+ <anchor x="440" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="70" y="525" type="line"/>
+ <point x="810" y="525" type="line"/>
+ <point x="810" y="735" type="line"/>
+ <point x="70" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..b88bdd4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="895"/>
+ <unicode hex="002D"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="525" type="line"/>
+ <point x="815" y="525" type="line"/>
+ <point x="815" y="735" type="line"/>
+ <point x="80" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..916f8cf
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="895"/>
+ <unicode hex="00AD"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ab92cf3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1070" y="475" type="line"/>
+ <point x="390" y="730" type="line"/>
+ <point x="1070" y="985" type="line"/>
+ <point x="1070" y="1215" type="line"/>
+ <point x="110" y="825" type="line"/>
+ <point x="110" y="635" type="line"/>
+ <point x="1070" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..2370b56
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="895" y="-179" type="line"/>
+ <point x="828" y="-160"/>
+ <point x="704" y="-122"/>
+ <point x="685" y="-100" type="curve" smooth="yes"/>
+ <point x="650" y="-60"/>
+ <point x="663" y="411"/>
+ <point x="645" y="445" type="curve" smooth="yes"/>
+ <point x="621" y="491"/>
+ <point x="483" y="580"/>
+ <point x="483" y="615" type="curve" smooth="yes"/>
+ <point x="483" y="650"/>
+ <point x="620" y="740"/>
+ <point x="643" y="785" type="curve" smooth="yes"/>
+ <point x="661" y="820"/>
+ <point x="650" y="1289"/>
+ <point x="685" y="1330" type="curve" smooth="yes"/>
+ <point x="702" y="1351"/>
+ <point x="807" y="1390"/>
+ <point x="870" y="1409" type="curve"/>
+ <point x="820" y="1640" type="line"/>
+ <point x="692" y="1613"/>
+ <point x="502" y="1562"/>
+ <point x="455" y="1515" type="curve" smooth="yes"/>
+ <point x="381" y="1442"/>
+ <point x="392" y="852"/>
+ <point x="370" y="820" type="curve" smooth="yes"/>
+ <point x="340" y="777"/>
+ <point x="170" y="670"/>
+ <point x="170" y="615" type="curve" smooth="yes"/>
+ <point x="170" y="560"/>
+ <point x="340" y="453"/>
+ <point x="370" y="410" type="curve" smooth="yes"/>
+ <point x="392" y="378"/>
+ <point x="380" y="-213"/>
+ <point x="455" y="-285" type="curve" smooth="yes"/>
+ <point x="505" y="-333"/>
+ <point x="709" y="-383"/>
+ <point x="845" y="-410" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..99e1982
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="686" y="-240" type="line"/>
+ <point x="462" y="11"/>
+ <point x="376" y="335"/>
+ <point x="376" y="635" type="curve" smooth="yes"/>
+ <point x="376" y="938"/>
+ <point x="466" y="1261"/>
+ <point x="676" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..dcf019b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="710" y="-410" type="line"/>
+ <point x="710" y="-200" type="line"/>
+ <point x="470" y="-200" type="line"/>
+ <point x="470" y="1390" type="line"/>
+ <point x="710" y="1390" type="line"/>
+ <point x="710" y="1600" type="line"/>
+ <point x="190" y="1600" type="line"/>
+ <point x="190" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..225c4ce
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-350" type="line"/>
+ <point x="1274" y="-350" type="line"/>
+ <point x="1274" y="-140" type="line"/>
+ <point x="0" y="-140" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..cf1b900
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1485"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..9fa1f45
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1485"/>
+ <unicode hex="0041"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..79101d0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1485"/>
+ <unicode hex="00C4"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1312" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..df49e47
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1385"/>
+ <unicode hex="0042"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="1248" type="line"/>
+ <point x="487" y="1250"/>
+ <point x="562" y="1253"/>
+ <point x="631" y="1253" type="curve" smooth="yes"/>
+ <point x="818" y="1253"/>
+ <point x="897" y="1196"/>
+ <point x="897" y="1077" type="curve" smooth="yes"/>
+ <point x="897" y="951"/>
+ <point x="794" y="875"/>
+ <point x="605" y="875" type="curve" smooth="yes"/>
+ <point x="450" y="875" type="line"/>
+ </contour>
+ <contour>
+ <point x="1245" y="430" type="curve" smooth="yes"/>
+ <point x="1245" y="672"/>
+ <point x="1084" y="760"/>
+ <point x="935" y="800" type="curve"/>
+ <point x="1065" y="850"/>
+ <point x="1170" y="947"/>
+ <point x="1170" y="1110" type="curve" smooth="yes"/>
+ <point x="1170" y="1378"/>
+ <point x="937" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="422" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="455" type="line" smooth="yes"/>
+ <point x="165" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="401" y="-10"/>
+ <point x="631" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1245" y="181"/>
+ </contour>
+ <contour>
+ <point x="450" y="658" type="line"/>
+ <point x="643" y="658" type="line" smooth="yes"/>
+ <point x="853" y="658"/>
+ <point x="972" y="587"/>
+ <point x="972" y="450" type="curve" smooth="yes"/>
+ <point x="972" y="269"/>
+ <point x="826" y="215"/>
+ <point x="652" y="215" type="curve" smooth="yes"/>
+ <point x="552" y="215"/>
+ <point x="483" y="218"/>
+ <point x="450" y="220" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..78c5238
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1385"/>
+ <unicode hex="0043"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1215" y="405" type="line"/>
+ <point x="1105" y="293"/>
+ <point x="940" y="220"/>
+ <point x="790" y="220" type="curve" smooth="yes"/>
+ <point x="531" y="220"/>
+ <point x="375" y="413"/>
+ <point x="375" y="735" type="curve" smooth="yes"/>
+ <point x="375" y="1074"/>
+ <point x="557" y="1245"/>
+ <point x="800" y="1245" type="curve" smooth="yes"/>
+ <point x="931" y="1245"/>
+ <point x="1053" y="1205"/>
+ <point x="1180" y="1105" type="curve"/>
+ <point x="1250" y="1345" type="line"/>
+ <point x="1106" y="1449"/>
+ <point x="969" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="90" y="1225"/>
+ <point x="90" y="710" type="curve" smooth="yes"/>
+ <point x="90" y="260"/>
+ <point x="341" y="-25"/>
+ <point x="755" y="-25" type="curve" smooth="yes"/>
+ <point x="926" y="-25"/>
+ <point x="1142" y="42"/>
+ <point x="1265" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..4dd3b9c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1485"/>
+ <unicode hex="0044"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="800" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="455" type="line"/>
+ <point x="164" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="474" y="-10"/>
+ <point x="609" y="-10" type="curve" smooth="yes"/>
+ <point x="919" y="-10"/>
+ <point x="1370" y="145"/>
+ <point x="1370" y="740" type="curve" smooth="yes"/>
+ <point x="1370" y="1374"/>
+ <point x="906" y="1470"/>
+ <point x="630" y="1470" type="curve" smooth="yes"/>
+ <point x="487" y="1470"/>
+ <point x="239" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1241" type="line"/>
+ <point x="492" y="1243"/>
+ <point x="582" y="1246"/>
+ <point x="637" y="1246" type="curve" smooth="yes"/>
+ <point x="897" y="1246"/>
+ <point x="1078" y="1118"/>
+ <point x="1078" y="720" type="curve" smooth="yes"/>
+ <point x="1078" y="357"/>
+ <point x="856" y="221"/>
+ <point x="633" y="221" type="curve" smooth="yes"/>
+ <point x="554" y="221"/>
+ <point x="489" y="227"/>
+ <point x="450" y="231" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..9572dfd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1212"/>
+ <unicode hex="0045"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1004" y="0" name="O"/>
+ <anchor x="1247" y="1200" name="R"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="875" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1072" y="1230" type="line"/>
+ <point x="1072" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1102" y="0" type="line"/>
+ <point x="1102" y="245" type="line"/>
+ <point x="1024" y="231"/>
+ <point x="899" y="230"/>
+ <point x="708" y="230" type="curve" smooth="yes"/>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="650" type="line"/>
+ <point x="997" y="650" type="line"/>
+ <point x="997" y="875" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9f4f14b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1200"/>
+ <unicode hex="0046"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="630" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1090" y="1230" type="line"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1217"/>
+ <point x="165" y="1020" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="450" y="73"/>
+ <point x="450" y="222"/>
+ <point x="450" y="408" type="curve" smooth="yes"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1005" y="635" type="line"/>
+ <point x="1005" y="860" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..8358b8a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1472"/>
+ <unicode hex="0047"/>
+ <anchor x="807" y="0" name="H"/>
+ <anchor x="807" y="-100" name="L"/>
+ <anchor x="807" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1337" y="785" type="line"/>
+ <point x="767" y="785" type="line"/>
+ <point x="767" y="560" type="line"/>
+ <point x="1082" y="560" type="line"/>
+ <point x="1082" y="294" type="line"/>
+ <point x="966" y="236"/>
+ <point x="883" y="220"/>
+ <point x="769" y="220" type="curve" smooth="yes"/>
+ <point x="532" y="220"/>
+ <point x="375" y="420"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="545" y="1245"/>
+ <point x="810" y="1245" type="curve" smooth="yes"/>
+ <point x="953" y="1245"/>
+ <point x="1097" y="1205"/>
+ <point x="1236" y="1107" type="curve"/>
+ <point x="1322" y="1345" type="line"/>
+ <point x="1137" y="1462"/>
+ <point x="989" y="1485"/>
+ <point x="818" y="1485" type="curve" smooth="yes"/>
+ <point x="403" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="377" y="-25"/>
+ <point x="777" y="-25" type="curve" smooth="yes"/>
+ <point x="960" y="-25"/>
+ <point x="1120" y="11"/>
+ <point x="1337" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..2e2e5e6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1515"/>
+ <unicode hex="0048"/>
+ <anchor x="305" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="1460" type="line"/>
+ <point x="1040" y="860" type="line"/>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1227"/>
+ <point x="165" y="1030" type="curve" smooth="yes"/>
+ <point x="165" y="430" type="line" smooth="yes"/>
+ <point x="165" y="233"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="450" y="0"/>
+ <point x="450" y="0" type="curve"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1040" y="635" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1340" y="0"/>
+ <point x="1340" y="0" type="curve"/>
+ <point x="1325" y="80"/>
+ <point x="1325" y="233"/>
+ <point x="1325" y="430" type="curve" smooth="yes"/>
+ <point x="1325" y="1030" type="line" smooth="yes"/>
+ <point x="1325" y="1227"/>
+ <point x="1325" y="1380"/>
+ <point x="1340" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..388486b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1045"/>
+ <unicode hex="0049"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="516" y="-100" name="L"/>
+ <anchor x="712" y="0" name="O"/>
+ <anchor x="1014" y="1200" name="R"/>
+ <anchor x="520" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1460" type="line"/>
+ <point x="130" y="1255" type="line"/>
+ <point x="370" y="1255" type="line"/>
+ <point x="370" y="205" type="line"/>
+ <point x="130" y="205" type="line"/>
+ <point x="130" y="0" type="line"/>
+ <point x="895" y="0" type="line"/>
+ <point x="895" y="205" type="line"/>
+ <point x="655" y="205" type="line"/>
+ <point x="655" y="1255" type="line"/>
+ <point x="895" y="1255" type="line"/>
+ <point x="895" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..8ee9ce3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1030"/>
+ <unicode hex="004A"/>
+ <anchor x="415" y="-100" name="L"/>
+ <anchor x="705" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="555" y="1460" type="line"/>
+ <point x="568" y="1354"/>
+ <point x="570" y="1175"/>
+ <point x="570" y="980" type="curve" smooth="yes"/>
+ <point x="570" y="558" type="line" smooth="yes"/>
+ <point x="570" y="383"/>
+ <point x="540" y="227"/>
+ <point x="365" y="227" type="curve" smooth="yes"/>
+ <point x="264" y="227"/>
+ <point x="153" y="270"/>
+ <point x="79" y="347" type="curve"/>
+ <point x="30" y="90" type="line"/>
+ <point x="109" y="9"/>
+ <point x="258" y="-25"/>
+ <point x="363" y="-25" type="curve" smooth="yes"/>
+ <point x="658" y="-25"/>
+ <point x="855" y="129"/>
+ <point x="855" y="535" type="curve" smooth="yes"/>
+ <point x="855" y="618"/>
+ <point x="855" y="1460"/>
+ <point x="855" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..abb6ff7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1430"/>
+ <unicode hex="004B"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="944" y="1460" type="line"/>
+ <point x="371" y="732" type="line"/>
+ <point x="579" y="676" type="line"/>
+ <point x="1280" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="389" y="731" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ <point x="614" y="829" type="line"/>
+ </contour>
+ <contour>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="450" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..e1c1e2e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1130"/>
+ <unicode hex="004C"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="650" y="1200" name="R"/>
+ <anchor x="620" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1085" y="0" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="1008" y="231"/>
+ <point x="855" y="230"/>
+ <point x="666" y="230" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..8da241e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1855"/>
+ <unicode hex="004D"/>
+ <anchor x="915" y="-100" name="L"/>
+ <anchor x="915" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="275" type="line"/>
+ <point x="575" y="1460" type="line"/>
+ <point x="315" y="1460" type="line"/>
+ <point x="436" y="1170" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1065" y="0" type="line"/>
+ <point x="1397" y="1170" type="line"/>
+ <point x="1517" y="1460" type="line"/>
+ <point x="1260" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="220" y="1460" type="line"/>
+ <point x="220" y="1460"/>
+ <point x="176" y="198"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="420" y="0" type="line"/>
+ <point x="449" y="1205" type="line"/>
+ <point x="485" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1680" y="0" type="line"/>
+ <point x="1651" y="198"/>
+ <point x="1610" y="1460"/>
+ <point x="1610" y="1460" type="curve"/>
+ <point x="1340" y="1460" type="line"/>
+ <point x="1385" y="1205" type="line"/>
+ <point x="1410" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..aa2b5c4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1545"/>
+ <unicode hex="004E"/>
+ <anchor x="1240" y="0" name="H"/>
+ <anchor x="765" y="-100" name="L"/>
+ <anchor x="765" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="223" y="1310" type="line"/>
+ <point x="1095" y="0" type="line"/>
+ <point x="1297" y="150" type="line"/>
+ <point x="425" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1095" y="0" type="line"/>
+ <point x="1355" y="0" type="line"/>
+ <point x="1355" y="1025" type="line" smooth="yes"/>
+ <point x="1355" y="1222"/>
+ <point x="1356" y="1380"/>
+ <point x="1370" y="1460" type="curve"/>
+ <point x="1095" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="425" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..10479ad
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1500"/>
+ <unicode hex="004F"/>
+ <anchor x="740" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="976" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="740" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="940" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="1072" y="-25"/>
+ <point x="1385" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..18e9ee0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1275"/>
+ <unicode hex="0050"/>
+ <anchor x="685" y="-100" name="L"/>
+ <anchor x="685" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="523" type="line"/>
+ <point x="515" y="516"/>
+ <point x="575" y="513"/>
+ <point x="648" y="513" type="curve" smooth="yes"/>
+ <point x="977" y="513"/>
+ <point x="1200" y="702"/>
+ <point x="1200" y="1010" type="curve" smooth="yes"/>
+ <point x="1200" y="1316"/>
+ <point x="981" y="1470"/>
+ <point x="658" y="1470" type="curve" smooth="yes"/>
+ <point x="445" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="237"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="506" y="1243"/>
+ <point x="544" y="1245"/>
+ <point x="622" y="1245" type="curve" smooth="yes"/>
+ <point x="833" y="1245"/>
+ <point x="915" y="1145"/>
+ <point x="915" y="1000" type="curve" smooth="yes"/>
+ <point x="915" y="820"/>
+ <point x="811" y="730"/>
+ <point x="618" y="730" type="curve" smooth="yes"/>
+ <point x="556" y="730"/>
+ <point x="493" y="733"/>
+ <point x="450" y="740" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..433087c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1545"/>
+ <unicode hex="0051"/>
+ <anchor x="747" y="-270" name="L"/>
+ <anchor x="747" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="840" y="-23"/>
+ <point x="889" y="-15" type="curve"/>
+ <point x="958" y="-15"/>
+ <point x="1266" y="-228"/>
+ <point x="1350" y="-228" type="curve" smooth="yes"/>
+ <point x="1424" y="-228"/>
+ <point x="1502" y="-68"/>
+ <point x="1535" y="-15" type="curve"/>
+ <point x="1394" y="1"/>
+ <point x="1277" y="68"/>
+ <point x="1146" y="142" type="curve"/>
+ <point x="1294" y="283"/>
+ <point x="1385" y="471"/>
+ </contour>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="943" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..6103056
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1380"/>
+ <unicode hex="0052"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="660" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="585" type="line"/>
+ <point x="625" y="585" type="line" smooth="yes"/>
+ <point x="910" y="585"/>
+ <point x="1175" y="723"/>
+ <point x="1175" y="1040" type="curve" smooth="yes"/>
+ <point x="1175" y="1329"/>
+ <point x="961" y="1470"/>
+ <point x="650" y="1470" type="curve" smooth="yes"/>
+ <point x="416" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="238"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="503" y="1243"/>
+ <point x="537" y="1245"/>
+ <point x="615" y="1245" type="curve" smooth="yes"/>
+ <point x="792" y="1245"/>
+ <point x="890" y="1186"/>
+ <point x="890" y="1035" type="curve" smooth="yes"/>
+ <point x="890" y="859"/>
+ <point x="780" y="800"/>
+ <point x="605" y="800" type="curve" smooth="yes"/>
+ <point x="450" y="800" type="line"/>
+ </contour>
+ <contour>
+ <point x="556" y="635" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1330" y="0" type="line"/>
+ <point x="1263" y="73"/>
+ <point x="827" y="687"/>
+ <point x="827" y="687" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..486ff77
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1243"/>
+ <unicode hex="0053"/>
+ <anchor x="616" y="0" name="H"/>
+ <anchor x="616" y="-100" name="L"/>
+ <anchor x="616" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="1395" type="line"/>
+ <point x="932" y="1458"/>
+ <point x="810" y="1485"/>
+ <point x="640" y="1485" type="curve" smooth="yes"/>
+ <point x="280" y="1485"/>
+ <point x="130" y="1239"/>
+ <point x="130" y="1060" type="curve" smooth="yes"/>
+ <point x="130" y="882"/>
+ <point x="196" y="754"/>
+ <point x="510" y="655" type="curve" smooth="yes"/>
+ <point x="800" y="563"/>
+ <point x="851" y="504"/>
+ <point x="851" y="420" type="curve" smooth="yes"/>
+ <point x="851" y="293"/>
+ <point x="730" y="220"/>
+ <point x="600" y="220" type="curve" smooth="yes"/>
+ <point x="439" y="220"/>
+ <point x="283" y="270"/>
+ <point x="140" y="385" type="curve"/>
+ <point x="90" y="110" type="line"/>
+ <point x="201" y="31"/>
+ <point x="391" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="895" y="-25"/>
+ <point x="1138" y="169"/>
+ <point x="1138" y="455" type="curve" smooth="yes"/>
+ <point x="1138" y="666"/>
+ <point x="994" y="787"/>
+ <point x="727" y="870" type="curve" smooth="yes"/>
+ <point x="464" y="952"/>
+ <point x="416" y="994"/>
+ <point x="416" y="1080" type="curve" smooth="yes"/>
+ <point x="416" y="1162"/>
+ <point x="506" y="1245"/>
+ <point x="630" y="1245" type="curve" smooth="yes"/>
+ <point x="771" y="1245"/>
+ <point x="873" y="1209"/>
+ <point x="1030" y="1130" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..5f87c10
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1275"/>
+ <unicode hex="0054"/>
+ <anchor x="632" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="632" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1210" type="line"/>
+ <point x="117" y="1227"/>
+ <point x="196" y="1230"/>
+ <point x="276" y="1230" type="curve" smooth="yes"/>
+ <point x="488" y="1230" type="line"/>
+ <point x="488" y="413" type="line" smooth="yes"/>
+ <point x="488" y="226"/>
+ <point x="485" y="76"/>
+ <point x="468" y="0" type="curve"/>
+ <point x="793" y="0" type="line"/>
+ <point x="776" y="76"/>
+ <point x="773" y="226"/>
+ <point x="773" y="413" type="curve" smooth="yes"/>
+ <point x="773" y="1230" type="line"/>
+ <point x="989" y="1230" type="line" smooth="yes"/>
+ <point x="1070" y="1230"/>
+ <point x="1148" y="1227"/>
+ <point x="1220" y="1210" type="curve"/>
+ <point x="1220" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..b3f6b6f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1490"/>
+ <unicode hex="0055"/>
+ <anchor x="732" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="950" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1015" y="1460" type="line"/>
+ <point x="1015" y="560" type="line" smooth="yes"/>
+ <point x="1015" y="344"/>
+ <point x="952" y="204"/>
+ <point x="735" y="204" type="curve" smooth="yes"/>
+ <point x="513" y="204"/>
+ <point x="450" y="344"/>
+ <point x="450" y="560" type="curve" smooth="yes"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="164" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="515" type="line" smooth="yes"/>
+ <point x="165" y="190"/>
+ <point x="356" y="-25"/>
+ <point x="735" y="-25" type="curve" smooth="yes"/>
+ <point x="1110" y="-25"/>
+ <point x="1300" y="190"/>
+ <point x="1300" y="515" type="curve" smooth="yes"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1232"/>
+ <point x="1302" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..3468784
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1465"/>
+ <unicode hex="0056"/>
+ <anchor x="730" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="930" y="0" name="O"/>
+ <anchor x="722" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1460" type="line"/>
+ <point x="722" y="260" type="line"/>
+ <point x="330" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="58" y="1378"/>
+ <point x="96" y="1288"/>
+ <point x="165" y="1095" type="curve" smooth="yes"/>
+ <point x="555" y="0" type="line"/>
+ <point x="890" y="0" type="line"/>
+ <point x="1280" y="1095" type="line" smooth="yes"/>
+ <point x="1348" y="1289"/>
+ <point x="1384" y="1378"/>
+ <point x="1420" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..98329a0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2135"/>
+ <unicode hex="0057"/>
+ <anchor x="1052" y="-100" name="L"/>
+ <anchor x="1052" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1490" y="0" type="line"/>
+ <point x="1655" y="0" type="line"/>
+ <point x="1965" y="1095" type="line" smooth="yes"/>
+ <point x="2020" y="1289"/>
+ <point x="2048" y="1378"/>
+ <point x="2080" y="1460" type="curve"/>
+ <point x="1770" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="995" y="1305" type="line"/>
+ <point x="1340" y="0" type="line"/>
+ <point x="1510" y="0" type="line"/>
+ <point x="1530" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="600" y="0" type="line"/>
+ <point x="765" y="0" type="line"/>
+ <point x="1105" y="1305" type="line"/>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="580" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="30" y="1460" type="line"/>
+ <point x="61" y="1381"/>
+ <point x="92" y="1286"/>
+ <point x="145" y="1095" type="curve" smooth="yes"/>
+ <point x="450" y="0" type="line"/>
+ <point x="620" y="0" type="line"/>
+ <point x="640" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..17126dd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1365"/>
+ <unicode hex="0058"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="0" type="line"/>
+ <point x="1310" y="0" type="line"/>
+ <point x="1249" y="82"/>
+ <point x="1211" y="125"/>
+ <point x="1083" y="336" type="curve" smooth="yes"/>
+ <point x="400" y="1460" type="line"/>
+ <point x="75" y="1460" type="line"/>
+ <point x="139" y="1376"/>
+ <point x="189" y="1317"/>
+ <point x="315" y="1110" type="curve"/>
+ </contour>
+ <contour>
+ <point x="605" y="947" type="line"/>
+ <point x="255" y="340" type="line" smooth="yes"/>
+ <point x="133" y="128"/>
+ <point x="93" y="86"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="700" y="609" type="line"/>
+ </contour>
+ <contour>
+ <point x="750" y="609" type="line"/>
+ <point x="1040" y="1110" type="line" smooth="yes"/>
+ <point x="1153" y="1306"/>
+ <point x="1211" y="1383"/>
+ <point x="1275" y="1460" type="curve"/>
+ <point x="950" y="1460" type="line"/>
+ <point x="655" y="947" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..a7a345d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1364"/>
+ <unicode hex="0059"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="560" type="line"/>
+ <point x="782" y="675" type="line"/>
+ <point x="357" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="137" y="1311"/>
+ <point x="203" y="1197"/>
+ <point x="280" y="1065" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="770" y="560" type="line"/>
+ <point x="1069" y="1065" type="line" smooth="yes"/>
+ <point x="1145" y="1195"/>
+ <point x="1201" y="1291"/>
+ <point x="1319" y="1460" type="curve"/>
+ <point x="997" y="1460" type="line"/>
+ <point x="577" y="675" type="line"/>
+ </contour>
+ <contour>
+ <point x="530" y="695" type="line"/>
+ <point x="530" y="435" type="line" smooth="yes"/>
+ <point x="530" y="238"/>
+ <point x="530" y="80"/>
+ <point x="515" y="0" type="curve"/>
+ <point x="830" y="0" type="line"/>
+ <point x="815" y="80"/>
+ <point x="815" y="238"/>
+ <point x="815" y="435" type="curve" smooth="yes"/>
+ <point x="815" y="695" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..f6ea8fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1205"/>
+ <unicode hex="0061"/>
+ <note>
+GlyphNote A
+</note>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1078" y="112"/>
+ <point x="1050" y="226"/>
+ <point x="1050" y="370" type="curve"/>
+ <point x="1050" y="760" type="line"/>
+ <point x="1050" y="919"/>
+ <point x="877" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="446" y="1040"/>
+ <point x="330" y="994"/>
+ <point x="216" y="950" type="curve"/>
+ <point x="210" y="868"/>
+ <point x="207" y="735"/>
+ <point x="206" y="691" type="curve"/>
+ <point x="323" y="773"/>
+ <point x="424" y="816"/>
+ <point x="530" y="816" type="curve" smooth="yes"/>
+ <point x="680" y="816"/>
+ <point x="770" y="785"/>
+ <point x="770" y="710" type="curve" smooth="yes"/>
+ <point x="770" y="660" type="line"/>
+ <point x="729" y="659"/>
+ <point x="569" y="649"/>
+ <point x="500" y="642" type="curve" smooth="yes"/>
+ <point x="191" y="612"/>
+ <point x="100" y="438"/>
+ <point x="100" y="285" type="curve" smooth="yes"/>
+ <point x="100" y="121"/>
+ <point x="245" y="-25"/>
+ <point x="445" y="-25" type="curve" smooth="yes"/>
+ <point x="562" y="-25"/>
+ <point x="688" y="23"/>
+ <point x="800" y="135" type="curve"/>
+ <point x="814" y="79"/>
+ <point x="838" y="28"/>
+ <point x="850" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="355" type="line"/>
+ <point x="674" y="225"/>
+ <point x="600" y="205"/>
+ <point x="518" y="205" type="curve" smooth="yes"/>
+ <point x="436" y="205"/>
+ <point x="380" y="256"/>
+ <point x="380" y="320" type="curve" smooth="yes"/>
+ <point x="380" y="386"/>
+ <point x="422" y="442"/>
+ <point x="560" y="457" type="curve" smooth="yes"/>
+ <point x="611" y="463"/>
+ <point x="730" y="474"/>
+ <point x="770" y="475" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f1c66a5
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E1"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="550" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..218d694
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E2"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="602" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..bb0ea2c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E4"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..3153364
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E0"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="650" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..3b8da5a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E5"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="612" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..b3a8515
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E3"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..6cc6671
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1215"/>
+ <unicode hex="0062"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1215" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1488"/>
+ <point x="135" y="1273"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="936"/>
+ <point x="135" y="228"/>
+ <point x="135" y="65" type="curve"/>
+ <point x="286" y="26"/>
+ <point x="457" y="-25"/>
+ <point x="650" y="-25" type="curve" smooth="yes"/>
+ <point x="939" y="-25"/>
+ <point x="1125" y="197"/>
+ <point x="1125" y="540" type="curve" smooth="yes"/>
+ <point x="1125" y="832"/>
+ <point x="986" y="1040"/>
+ <point x="789" y="1040" type="curve" smooth="yes"/>
+ <point x="626" y="1040"/>
+ <point x="505" y="956"/>
+ <point x="415" y="845" type="curve"/>
+ <point x="415" y="934"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="415" y="585" type="line"/>
+ <point x="471" y="709"/>
+ <point x="580" y="795"/>
+ <point x="683" y="795" type="curve" smooth="yes"/>
+ <point x="793" y="795"/>
+ <point x="855" y="684"/>
+ <point x="855" y="505" type="curve" smooth="yes"/>
+ <point x="855" y="317"/>
+ <point x="750" y="190"/>
+ <point x="605" y="190" type="curve" smooth="yes"/>
+ <point x="538" y="190"/>
+ <point x="492" y="204"/>
+ <point x="415" y="240" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..19a8a6d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1022"/>
+ <unicode hex="0063"/>
+ <anchor x="555" y="0" name="H"/>
+ <anchor x="575" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="575" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="922" y="969" type="line"/>
+ <point x="849" y="1007"/>
+ <point x="744" y="1040"/>
+ <point x="612" y="1040" type="curve" smooth="yes"/>
+ <point x="295" y="1040"/>
+ <point x="90" y="802"/>
+ <point x="90" y="490" type="curve" smooth="yes"/>
+ <point x="90" y="161"/>
+ <point x="309" y="-25"/>
+ <point x="578" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="831" y="8"/>
+ <point x="932" y="70" type="curve"/>
+ <point x="902" y="314" type="line"/>
+ <point x="815" y="245"/>
+ <point x="737" y="205"/>
+ <point x="617" y="205" type="curve" smooth="yes"/>
+ <point x="467" y="205"/>
+ <point x="370" y="324"/>
+ <point x="370" y="500" type="curve" smooth="yes"/>
+ <point x="370" y="694"/>
+ <point x="478" y="810"/>
+ <point x="617" y="810" type="curve" smooth="yes"/>
+ <point x="720" y="810"/>
+ <point x="788" y="779"/>
+ <point x="878" y="717" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fc1cc76
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="595" y="0" name="H"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1600" type="line"/>
+ <point x="810" y="1600" type="line"/>
+ <point x="829" y="1516"/>
+ <point x="835" y="1395"/>
+ <point x="835" y="1235" type="curve" smooth="yes"/>
+ <point x="835" y="955" type="line"/>
+ <point x="763" y="999"/>
+ <point x="669" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="319" y="1040"/>
+ <point x="100" y="814"/>
+ <point x="100" y="460" type="curve" smooth="yes"/>
+ <point x="100" y="167"/>
+ <point x="268" y="-25"/>
+ <point x="515" y="-25" type="curve" smooth="yes"/>
+ <point x="654" y="-25"/>
+ <point x="770" y="47"/>
+ <point x="860" y="175" type="curve"/>
+ <point x="877" y="105"/>
+ <point x="900" y="32"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1147" y="112"/>
+ <point x="1115" y="278"/>
+ <point x="1115" y="530" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="835" y="400" type="line"/>
+ <point x="787" y="300"/>
+ <point x="676" y="200"/>
+ <point x="570" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="380" y="300"/>
+ <point x="380" y="490" type="curve" smooth="yes"/>
+ <point x="380" y="685"/>
+ <point x="485" y="800"/>
+ <point x="590" y="800" type="curve" smooth="yes"/>
+ <point x="683" y="800"/>
+ <point x="743" y="783"/>
+ <point x="835" y="738" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..5c67455
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1110"/>
+ <unicode hex="0065"/>
+ <anchor x="569" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="900" y="0" name="O"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="537" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1010" y="450" type="line"/>
+ <point x="1010" y="469"/>
+ <point x="1009" y="513"/>
+ <point x="1009" y="532" type="curve" smooth="yes"/>
+ <point x="1009" y="782"/>
+ <point x="924" y="1040"/>
+ <point x="589" y="1040" type="curve" smooth="yes"/>
+ <point x="281" y="1040"/>
+ <point x="90" y="826"/>
+ <point x="90" y="495" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="324" y="-25"/>
+ <point x="589" y="-25" type="curve" smooth="yes"/>
+ <point x="745" y="-25"/>
+ <point x="871" y="2"/>
+ <point x="1015" y="75" type="curve"/>
+ <point x="994" y="306" type="line"/>
+ <point x="870" y="232"/>
+ <point x="745" y="205"/>
+ <point x="614" y="205" type="curve" smooth="yes"/>
+ <point x="448" y="205"/>
+ <point x="362" y="293"/>
+ <point x="362" y="505" type="curve" smooth="yes"/>
+ <point x="362" y="739"/>
+ <point x="431" y="830"/>
+ <point x="575" y="830" type="curve" smooth="yes"/>
+ <point x="693" y="830"/>
+ <point x="755" y="770"/>
+ <point x="755" y="630" type="curve"/>
+ <point x="242" y="630" type="line"/>
+ <point x="242" y="450" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..8a5996d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="800"/>
+ <unicode hex="0066"/>
+ <anchor x="380" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="600" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="30" y="805" type="line"/>
+ <point x="230" y="805" type="line"/>
+ <point x="230" y="0" type="line"/>
+ <point x="540" y="0" type="line"/>
+ <point x="518" y="105"/>
+ <point x="510" y="300"/>
+ <point x="510" y="494" type="curve" smooth="yes"/>
+ <point x="510" y="805" type="line"/>
+ <point x="765" y="805" type="line"/>
+ <point x="765" y="1005" type="line"/>
+ <point x="510" y="1005" type="line"/>
+ <point x="510" y="1159" type="line" smooth="yes"/>
+ <point x="510" y="1322"/>
+ <point x="552" y="1387"/>
+ <point x="648" y="1387" type="curve" smooth="yes"/>
+ <point x="697" y="1387"/>
+ <point x="765" y="1362"/>
+ <point x="808" y="1322" type="curve"/>
+ <point x="865" y="1550" type="line"/>
+ <point x="806" y="1588"/>
+ <point x="699" y="1620"/>
+ <point x="625" y="1620" type="curve" smooth="yes"/>
+ <point x="378" y="1620"/>
+ <point x="230" y="1470"/>
+ <point x="230" y="1170" type="curve" smooth="yes"/>
+ <point x="230" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..871e4e9
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1170"/>
+ <unicode hex="0067"/>
+ <anchor x="597" y="-465" name="H"/>
+ <anchor x="597" y="-535" name="L"/>
+ <anchor x="1187" y="1000" name="R"/>
+ <anchor x="567" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="352" y="395" type="line"/>
+ <point x="256" y="357"/>
+ <point x="202" y="275"/>
+ <point x="202" y="215" type="curve" smooth="yes"/>
+ <point x="202" y="113"/>
+ <point x="280" y="12"/>
+ <point x="547" y="-23" type="curve" smooth="yes"/>
+ <point x="797" y="-50"/>
+ <point x="870" y="-99"/>
+ <point x="870" y="-170" type="curve" smooth="yes"/>
+ <point x="870" y="-229"/>
+ <point x="748" y="-302"/>
+ <point x="602" y="-302" type="curve" smooth="yes"/>
+ <point x="418" y="-302"/>
+ <point x="330" y="-235"/>
+ <point x="330" y="-180" type="curve" smooth="yes"/>
+ <point x="330" y="-121"/>
+ <point x="357" y="-56"/>
+ <point x="562" y="20" type="curve"/>
+ <point x="554" y="49"/>
+ <point x="322" y="75"/>
+ <point x="322" y="75" type="curve"/>
+ <point x="138" y="2"/>
+ <point x="50" y="-89"/>
+ <point x="50" y="-200" type="curve" smooth="yes"/>
+ <point x="50" y="-409"/>
+ <point x="341" y="-505"/>
+ <point x="587" y="-505" type="curve" smooth="yes"/>
+ <point x="843" y="-505"/>
+ <point x="1150" y="-375"/>
+ <point x="1150" y="-160" type="curve" smooth="yes"/>
+ <point x="1150" y="13"/>
+ <point x="1049" y="125"/>
+ <point x="752" y="165" type="curve" smooth="yes"/>
+ <point x="497" y="191"/>
+ <point x="433" y="216"/>
+ <point x="433" y="255" type="curve" smooth="yes"/>
+ <point x="433" y="285"/>
+ <point x="472" y="322"/>
+ <point x="588" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1102" y="1040" type="line"/>
+ <point x="1003" y="1033"/>
+ <point x="871" y="997"/>
+ <point x="782" y="940" type="curve"/>
+ <point x="847" y="770" type="line"/>
+ <point x="939" y="808"/>
+ <point x="1019" y="823"/>
+ <point x="1092" y="825" type="curve"/>
+ </contour>
+ <contour>
+ <point x="122" y="670" type="curve" smooth="yes"/>
+ <point x="122" y="455"/>
+ <point x="316" y="305"/>
+ <point x="567" y="305" type="curve" smooth="yes"/>
+ <point x="820" y="305"/>
+ <point x="1012" y="465"/>
+ <point x="1012" y="680" type="curve" smooth="yes"/>
+ <point x="1012" y="884"/>
+ <point x="820" y="1040"/>
+ <point x="567" y="1040" type="curve" smooth="yes"/>
+ <point x="316" y="1040"/>
+ <point x="122" y="874"/>
+ </contour>
+ <contour>
+ <point x="377" y="680" type="curve" smooth="yes"/>
+ <point x="377" y="770"/>
+ <point x="457" y="847"/>
+ <point x="567" y="847" type="curve" smooth="yes"/>
+ <point x="678" y="847"/>
+ <point x="757" y="770"/>
+ <point x="757" y="680" type="curve" smooth="yes"/>
+ <point x="757" y="578"/>
+ <point x="678" y="501"/>
+ <point x="567" y="501" type="curve" smooth="yes"/>
+ <point x="457" y="501"/>
+ <point x="377" y="578"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..15fc451
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1235"/>
+ <unicode hex="0068"/>
+ <anchor x="280" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="580" type="line"/>
+ <point x="450" y="683"/>
+ <point x="560" y="795"/>
+ <point x="675" y="795" type="curve" smooth="yes"/>
+ <point x="782" y="795"/>
+ <point x="830" y="744"/>
+ <point x="830" y="550" type="curve" smooth="yes"/>
+ <point x="830" y="413"/>
+ <point x="830" y="0"/>
+ <point x="830" y="0" type="curve"/>
+ <point x="1110" y="0" type="line"/>
+ <point x="1110" y="0"/>
+ <point x="1110" y="459"/>
+ <point x="1110" y="625" type="curve" smooth="yes"/>
+ <point x="1110" y="900"/>
+ <point x="1008" y="1040"/>
+ <point x="805" y="1040" type="curve" smooth="yes"/>
+ <point x="662" y="1040"/>
+ <point x="513" y="976"/>
+ <point x="415" y="850" type="curve"/>
+ <point x="415" y="894"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="935"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ <point x="415" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..05022d4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="640"/>
+ <unicode hex="0069"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="320" y="-100" name="L"/>
+ <anchor x="580" y="0" name="O"/>
+ <anchor x="640" y="1000" name="R"/>
+ <anchor x="320" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="1020" type="line"/>
+ <point x="178" y="915"/>
+ <point x="180" y="725"/>
+ <point x="180" y="530" type="curve" smooth="yes"/>
+ <point x="180" y="336"/>
+ <point x="180" y="0"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="107"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ <point x="460" y="558"/>
+ <point x="460" y="1020"/>
+ <point x="460" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="145" y="1385" type="curve" smooth="yes"/>
+ <point x="145" y="1281"/>
+ <point x="219" y="1210"/>
+ <point x="320" y="1210" type="curve" smooth="yes"/>
+ <point x="422" y="1210"/>
+ <point x="495" y="1281"/>
+ <point x="495" y="1385" type="curve" smooth="yes"/>
+ <point x="495" y="1487"/>
+ <point x="422" y="1560"/>
+ <point x="320" y="1560" type="curve" smooth="yes"/>
+ <point x="219" y="1560"/>
+ <point x="145" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..6e044af
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="670"/>
+ <unicode hex="006A"/>
+ <anchor x="140" y="-500" name="L"/>
+ <anchor x="355" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="185" y="1385" type="curve" smooth="yes"/>
+ <point x="185" y="1281"/>
+ <point x="259" y="1210"/>
+ <point x="360" y="1210" type="curve" smooth="yes"/>
+ <point x="462" y="1210"/>
+ <point x="535" y="1281"/>
+ <point x="535" y="1385" type="curve" smooth="yes"/>
+ <point x="535" y="1487"/>
+ <point x="462" y="1560"/>
+ <point x="360" y="1560" type="curve" smooth="yes"/>
+ <point x="259" y="1560"/>
+ <point x="185" y="1487"/>
+ </contour>
+ <contour>
+ <point x="500" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="20" type="line"/>
+ <point x="220" y="-150"/>
+ <point x="165" y="-232"/>
+ <point x="48" y="-232" type="curve" smooth="yes"/>
+ <point x="-20" y="-232"/>
+ <point x="-101" y="-195"/>
+ <point x="-145" y="-152" type="curve"/>
+ <point x="-190" y="-389" type="line"/>
+ <point x="-148" y="-421"/>
+ <point x="-37" y="-470"/>
+ <point x="56" y="-470" type="curve" smooth="yes"/>
+ <point x="306" y="-470"/>
+ <point x="500" y="-348"/>
+ <point x="500" y="25" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..529f7dd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1138"/>
+ <unicode hex="006B"/>
+ <anchor x="940" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="595" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="0" type="line"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="934"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="723" y="1020" type="line"/>
+ <point x="353" y="570" type="line"/>
+ <point x="572" y="528" type="line"/>
+ <point x="1098" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="570" type="line"/>
+ <point x="761" y="0" type="line"/>
+ <point x="1128" y="0" type="line"/>
+ <point x="540" y="664" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..0b21294
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="640"/>
+ <unicode hex="006C"/>
+ <anchor x="335" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="660" y="1000" name="R"/>
+ <anchor x="320" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="1600" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="173" y="1485"/>
+ <point x="180" y="1324"/>
+ <point x="180" y="1130" type="curve" smooth="yes"/>
+ <point x="180" y="0" type="line"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="109"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..eace489
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1760"/>
+ <unicode hex="006D"/>
+ <anchor x="890" y="0" name="H"/>
+ <anchor x="890" y="-100" name="L"/>
+ <anchor x="890" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="115" y="1020" type="line"/>
+ <point x="136" y="951"/>
+ <point x="165" y="811"/>
+ <point x="165" y="615" type="curve" smooth="yes"/>
+ <point x="165" y="0" type="line"/>
+ <point x="445" y="0" type="line"/>
+ <point x="445" y="640" type="line"/>
+ <point x="484" y="731"/>
+ <point x="560" y="795"/>
+ <point x="635" y="795" type="curve" smooth="yes"/>
+ <point x="723" y="795"/>
+ <point x="750" y="759"/>
+ <point x="750" y="570" type="curve" smooth="yes"/>
+ <point x="750" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1030" y="660" type="line"/>
+ <point x="1073" y="742"/>
+ <point x="1147" y="795"/>
+ <point x="1220" y="795" type="curve" smooth="yes"/>
+ <point x="1310" y="795"/>
+ <point x="1335" y="751"/>
+ <point x="1335" y="550" type="curve" smooth="yes"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1615" y="0" type="line"/>
+ <point x="1615" y="660" type="line" smooth="yes"/>
+ <point x="1615" y="907"/>
+ <point x="1548" y="1040"/>
+ <point x="1345" y="1040" type="curve" smooth="yes"/>
+ <point x="1240" y="1040"/>
+ <point x="1131" y="1007"/>
+ <point x="1006" y="872" type="curve"/>
+ <point x="973" y="960"/>
+ <point x="891" y="1040"/>
+ <point x="760" y="1040" type="curve" smooth="yes"/>
+ <point x="644" y="1040"/>
+ <point x="544" y="1008"/>
+ <point x="422" y="875" type="curve"/>
+ <point x="412" y="920"/>
+ <point x="397" y="981"/>
+ <point x="375" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..f7abb6f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1245"/>
+ <unicode hex="006E"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1120" y="0"/>
+ <point x="1120" y="459"/>
+ <point x="1120" y="625" type="curve" smooth="yes"/>
+ <point x="1120" y="900"/>
+ <point x="998" y="1040"/>
+ <point x="795" y="1040" type="curve" smooth="yes"/>
+ <point x="654" y="1040"/>
+ <point x="537" y="980"/>
+ <point x="410" y="835" type="curve"/>
+ <point x="403" y="881"/>
+ <point x="385" y="980"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="420"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="580" type="line"/>
+ <point x="460" y="683"/>
+ <point x="570" y="795"/>
+ <point x="685" y="795" type="curve" smooth="yes"/>
+ <point x="792" y="795"/>
+ <point x="840" y="734"/>
+ <point x="840" y="550" type="curve" smooth="yes"/>
+ <point x="840" y="413"/>
+ <point x="840" y="0"/>
+ <point x="840" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..063c297
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1160"/>
+ <unicode hex="006F"/>
+ <anchor x="578" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="790" y="0" name="O"/>
+ <anchor x="1160" y="1000" name="R"/>
+ <anchor x="580" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="90" y="507" type="curve" smooth="yes"/>
+ <point x="90" y="163"/>
+ <point x="288" y="-25"/>
+ <point x="570" y="-25" type="curve" smooth="yes"/>
+ <point x="840" y="-25"/>
+ <point x="1070" y="163"/>
+ <point x="1070" y="507" type="curve" smooth="yes"/>
+ <point x="1070" y="851"/>
+ <point x="873" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="1040"/>
+ <point x="90" y="851"/>
+ </contour>
+ <contour>
+ <point x="370" y="507" type="curve" smooth="yes"/>
+ <point x="370" y="699"/>
+ <point x="451" y="815"/>
+ <point x="580" y="815" type="curve" smooth="yes"/>
+ <point x="717" y="815"/>
+ <point x="790" y="699"/>
+ <point x="790" y="507" type="curve" smooth="yes"/>
+ <point x="790" y="316"/>
+ <point x="709" y="200"/>
+ <point x="580" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="370" y="316"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..4fe224b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1235"/>
+ <unicode hex="0070"/>
+ <anchor x="290" y="-435" name="H"/>
+ <anchor x="640" y="-500" name="L"/>
+ <anchor x="1235" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="-490" type="line"/>
+ <point x="433" y="-405"/>
+ <point x="425" y="-310"/>
+ <point x="425" y="-150" type="curve" smooth="yes"/>
+ <point x="425" y="-71"/>
+ <point x="425" y="-41"/>
+ <point x="425" y="65" type="curve"/>
+ <point x="518" y="10"/>
+ <point x="594" y="-25"/>
+ <point x="699" y="-25" type="curve" smooth="yes"/>
+ <point x="945" y="-25"/>
+ <point x="1145" y="193"/>
+ <point x="1145" y="535" type="curve" smooth="yes"/>
+ <point x="1145" y="828"/>
+ <point x="996" y="1040"/>
+ <point x="773" y="1040" type="curve" smooth="yes"/>
+ <point x="628" y="1040"/>
+ <point x="502" y="962"/>
+ <point x="410" y="850" type="curve"/>
+ <point x="401" y="932"/>
+ <point x="385" y="990"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="140" y="907"/>
+ <point x="145" y="734"/>
+ <point x="145" y="485" type="curve" smooth="yes"/>
+ <point x="145" y="291"/>
+ <point x="145" y="-345"/>
+ <point x="145" y="-490" type="curve"/>
+ </contour>
+ <contour>
+ <point x="633" y="206" type="curve" smooth="yes"/>
+ <point x="564" y="206"/>
+ <point x="527" y="225"/>
+ <point x="425" y="300" type="curve"/>
+ <point x="425" y="390"/>
+ <point x="425" y="507"/>
+ <point x="425" y="585" type="curve"/>
+ <point x="482" y="726"/>
+ <point x="583" y="802"/>
+ <point x="672" y="802" type="curve" smooth="yes"/>
+ <point x="793" y="802"/>
+ <point x="865" y="686"/>
+ <point x="865" y="505" type="curve" smooth="yes"/>
+ <point x="865" y="320"/>
+ <point x="755" y="206"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9727ad7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1210"/>
+ <unicode hex="0071"/>
+ <anchor x="600" y="-500" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="790" y="-490" type="line"/>
+ <point x="1095" y="-490" type="line"/>
+ <point x="1078" y="-405"/>
+ <point x="1070" y="-310"/>
+ <point x="1070" y="-150" type="curve" smooth="yes"/>
+ <point x="1070" y="-26"/>
+ <point x="1070" y="965"/>
+ <point x="1070" y="965" type="curve"/>
+ <point x="934" y="1001"/>
+ <point x="773" y="1040"/>
+ <point x="620" y="1040" type="curve" smooth="yes"/>
+ <point x="255" y="1040"/>
+ <point x="100" y="742"/>
+ <point x="100" y="435" type="curve" smooth="yes"/>
+ <point x="100" y="117"/>
+ <point x="316" y="-25"/>
+ <point x="500" y="-25" type="curve" smooth="yes"/>
+ <point x="593" y="-25"/>
+ <point x="686" y="14"/>
+ <point x="790" y="120" type="curve"/>
+ </contour>
+ <contour>
+ <point x="790" y="368" type="line"/>
+ <point x="727" y="258"/>
+ <point x="650" y="203"/>
+ <point x="580" y="203" type="curve" smooth="yes"/>
+ <point x="475" y="203"/>
+ <point x="380" y="287"/>
+ <point x="380" y="485" type="curve" smooth="yes"/>
+ <point x="380" y="641"/>
+ <point x="456" y="802"/>
+ <point x="655" y="802" type="curve" smooth="yes"/>
+ <point x="696" y="802"/>
+ <point x="749" y="789"/>
+ <point x="790" y="770" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8a81116
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="995"/>
+ <unicode hex="0072"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="275" y="-100" name="L"/>
+ <anchor x="550" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="530" type="line"/>
+ <point x="460" y="654"/>
+ <point x="570" y="781"/>
+ <point x="637" y="781" type="curve" smooth="yes"/>
+ <point x="722" y="781"/>
+ <point x="755" y="721"/>
+ <point x="762" y="630" type="curve"/>
+ <point x="985" y="665" type="line"/>
+ <point x="985" y="868"/>
+ <point x="913" y="1040"/>
+ <point x="725" y="1040" type="curve" smooth="yes"/>
+ <point x="634" y="1040"/>
+ <point x="507" y="964"/>
+ <point x="410" y="825" type="curve"/>
+ <point x="403" y="873"/>
+ <point x="385" y="978"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..06b1a9a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1035"/>
+ <unicode hex="0073"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="530" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="960" type="line"/>
+ <point x="827" y="998"/>
+ <point x="708" y="1040"/>
+ <point x="545" y="1040" type="curve" smooth="yes"/>
+ <point x="202" y="1040"/>
+ <point x="110" y="818"/>
+ <point x="110" y="720" type="curve" smooth="yes"/>
+ <point x="110" y="594"/>
+ <point x="171" y="491"/>
+ <point x="455" y="432" type="curve" smooth="yes"/>
+ <point x="646" y="390"/>
+ <point x="690" y="348"/>
+ <point x="690" y="290" type="curve" smooth="yes"/>
+ <point x="690" y="243"/>
+ <point x="624" y="199"/>
+ <point x="530" y="199" type="curve" smooth="yes"/>
+ <point x="413" y="199"/>
+ <point x="254" y="253"/>
+ <point x="155" y="334" type="curve"/>
+ <point x="100" y="90" type="line"/>
+ <point x="187" y="28"/>
+ <point x="346" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="768" y="-25"/>
+ <point x="960" y="123"/>
+ <point x="960" y="315" type="curve" smooth="yes"/>
+ <point x="960" y="504"/>
+ <point x="788" y="583"/>
+ <point x="580" y="625" type="curve" smooth="yes"/>
+ <point x="405" y="659"/>
+ <point x="380" y="681"/>
+ <point x="380" y="730" type="curve" smooth="yes"/>
+ <point x="380" y="770"/>
+ <point x="418" y="816"/>
+ <point x="535" y="816" type="curve" smooth="yes"/>
+ <point x="674" y="816"/>
+ <point x="791" y="760"/>
+ <point x="866" y="721" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..d4123c7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="885"/>
+ <unicode hex="0074"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="885" y="1000" name="R"/>
+ <anchor x="360" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="220" y="270" type="line"/>
+ <point x="220" y="39"/>
+ <point x="374" y="-25"/>
+ <point x="563" y="-25" type="curve" smooth="yes"/>
+ <point x="635" y="-25"/>
+ <point x="725" y="-3"/>
+ <point x="820" y="57" type="curve"/>
+ <point x="820" y="281" type="line"/>
+ <point x="741" y="232"/>
+ <point x="678" y="206"/>
+ <point x="627" y="206" type="curve" smooth="yes"/>
+ <point x="537" y="206"/>
+ <point x="500" y="235"/>
+ <point x="500" y="462" type="curve" smooth="yes"/>
+ <point x="500" y="1320" type="line"/>
+ <point x="220" y="1320" type="line"/>
+ </contour>
+ <contour>
+ <point x="805" y="805" type="line"/>
+ <point x="805" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ <point x="30" y="805" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5b8d434
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1245"/>
+ <unicode hex="0075"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="1258" y="1000" name="R"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1160" y="0" type="line"/>
+ <point x="1118" y="112"/>
+ <point x="1095" y="256"/>
+ <point x="1095" y="450" type="curve" smooth="yes"/>
+ <point x="1095" y="646"/>
+ <point x="1095" y="1020"/>
+ <point x="1095" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="813" y="898"/>
+ <point x="815" y="832"/>
+ <point x="815" y="700" type="curve" smooth="yes"/>
+ <point x="815" y="418" type="line"/>
+ <point x="774" y="326"/>
+ <point x="651" y="206"/>
+ <point x="560" y="206" type="curve" smooth="yes"/>
+ <point x="458" y="206"/>
+ <point x="425" y="284"/>
+ <point x="425" y="465" type="curve" smooth="yes"/>
+ <point x="425" y="603"/>
+ <point x="425" y="1020"/>
+ <point x="425" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="143" y="900"/>
+ <point x="145" y="827"/>
+ <point x="145" y="700" type="curve" smooth="yes"/>
+ <point x="145" y="681"/>
+ <point x="145" y="424"/>
+ <point x="145" y="405" type="curve" smooth="yes"/>
+ <point x="145" y="120"/>
+ <point x="250" y="-25"/>
+ <point x="458" y="-25" type="curve" smooth="yes"/>
+ <point x="595" y="-25"/>
+ <point x="722" y="48"/>
+ <point x="840" y="185" type="curve"/>
+ <point x="850" y="116"/>
+ <point x="876" y="43"/>
+ <point x="895" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..daf1468
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1104"/>
+ <unicode hex="0076"/>
+ <anchor x="565" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="786" y="1020" type="line"/>
+ <point x="556" y="290" type="line"/>
+ <point x="322" y="1020" type="line"/>
+ <point x="10" y="1020" type="line"/>
+ <point x="65" y="905"/>
+ <point x="133" y="746"/>
+ <point x="165" y="665" type="curve" smooth="yes"/>
+ <point x="227" y="510"/>
+ <point x="430" y="0"/>
+ <point x="430" y="0" type="curve"/>
+ <point x="674" y="0" type="line"/>
+ <point x="674" y="0"/>
+ <point x="886" y="536"/>
+ <point x="939" y="665" type="curve" smooth="yes"/>
+ <point x="972" y="744"/>
+ <point x="1037" y="905"/>
+ <point x="1094" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1ca1ec4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1570"/>
+ <unicode hex="0077"/>
+ <anchor x="785" y="-100" name="L"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="665" y="1020" type="line"/>
+ <point x="480" y="285" type="line"/>
+ <point x="323" y="1020" type="line"/>
+ <point x="35" y="1020" type="line"/>
+ <point x="82" y="867"/>
+ <point x="110" y="771"/>
+ <point x="140" y="665" type="curve" smooth="yes"/>
+ <point x="325" y="0" type="line"/>
+ <point x="615" y="0" type="line"/>
+ <point x="785" y="695" type="line"/>
+ <point x="955" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1430" y="665" type="line" smooth="yes"/>
+ <point x="1464" y="785"/>
+ <point x="1488" y="868"/>
+ <point x="1535" y="1020" type="curve"/>
+ <point x="1247" y="1020" type="line"/>
+ <point x="1090" y="285" type="line"/>
+ <point x="905" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..971c129
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1185"/>
+ <unicode hex="0078"/>
+ <anchor x="960" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="815" y="0" type="line"/>
+ <point x="1145" y="0" type="line"/>
+ <point x="1037" y="129"/>
+ <point x="989" y="190"/>
+ <point x="930" y="270" type="curve" smooth="yes"/>
+ <point x="380" y="1020" type="line"/>
+ <point x="50" y="1020" type="line"/>
+ <point x="158" y="887"/>
+ <point x="192" y="842"/>
+ <point x="260" y="750" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="499" y="616" type="line"/>
+ <point x="245" y="270" type="line" smooth="yes"/>
+ <point x="195" y="201"/>
+ <point x="150" y="143"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="584" y="359" type="line"/>
+ </contour>
+ <contour>
+ <point x="675" y="405" type="line"/>
+ <point x="925" y="750" type="line" smooth="yes"/>
+ <point x="980" y="826"/>
+ <point x="1027" y="886"/>
+ <point x="1130" y="1020" type="curve"/>
+ <point x="825" y="1020" type="line"/>
+ <point x="595" y="668" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..ea8d25e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1100"/>
+ <unicode hex="0079"/>
+ <anchor x="845" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="665" type="line" smooth="yes"/>
+ <point x="978" y="758"/>
+ <point x="1021" y="865"/>
+ <point x="1090" y="1020" type="curve"/>
+ <point x="777" y="1020" type="line"/>
+ <point x="777" y="1020"/>
+ <point x="646" y="549"/>
+ <point x="573" y="293" type="curve"/>
+ <point x="333" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="97" y="864"/>
+ <point x="144" y="757"/>
+ <point x="180" y="665" type="curve" smooth="yes"/>
+ <point x="445" y="-18" type="line"/>
+ <point x="366" y="-209"/>
+ <point x="304" y="-242"/>
+ <point x="245" y="-242" type="curve" smooth="yes"/>
+ <point x="179" y="-242"/>
+ <point x="102" y="-202"/>
+ <point x="60" y="-167" type="curve"/>
+ <point x="-10" y="-385" type="line"/>
+ <point x="63" y="-439"/>
+ <point x="154" y="-470"/>
+ <point x="245" y="-470" type="curve" smooth="yes"/>
+ <point x="427" y="-470"/>
+ <point x="565" y="-387"/>
+ <point x="705" y="0" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..7dc67c0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="895"/>
+ <unicode hex="2011"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..54b82cb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="412" y="1360" type="line"/>
+ <point x="52" y="100" type="line"/>
+ <point x="272" y="100" type="line"/>
+ <point x="632" y="1360" type="line"/>
+ </contour>
+ <contour>
+ <point x="10" y="425" type="line"/>
+ <point x="1101" y="425" type="line"/>
+ <point x="1101" y="635" type="line"/>
+ <point x="10" y="635" type="line"/>
+ </contour>
+ <contour>
+ <point x="69" y="850" type="line"/>
+ <point x="1160" y="850" type="line"/>
+ <point x="1160" y="1060" type="line"/>
+ <point x="69" y="1060" type="line"/>
+ </contour>
+ <contour>
+ <point x="887" y="1360" type="line"/>
+ <point x="527" y="100" type="line"/>
+ <point x="747" y="100" type="line"/>
+ <point x="1107" y="1360" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..5017543
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1565"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="499" y="-25" type="line"/>
+ <point x="1279" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="511" y="1076" type="curve" smooth="yes"/>
+ <point x="511" y="892"/>
+ <point x="470" y="815"/>
+ <point x="394" y="815" type="curve" smooth="yes"/>
+ <point x="315" y="815"/>
+ <point x="279" y="891"/>
+ <point x="279" y="1091" type="curve" smooth="yes"/>
+ <point x="279" y="1275"/>
+ <point x="317" y="1350"/>
+ <point x="394" y="1350" type="curve" smooth="yes"/>
+ <point x="475" y="1350"/>
+ <point x="511" y="1276"/>
+ </contour>
+ <contour>
+ <point x="721" y="1089" type="curve" smooth="yes"/>
+ <point x="721" y="1362"/>
+ <point x="584" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="215" y="1480"/>
+ <point x="69" y="1360"/>
+ <point x="69" y="1078" type="curve" smooth="yes"/>
+ <point x="69" y="796"/>
+ <point x="205" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="575" y="685"/>
+ <point x="721" y="794"/>
+ </contour>
+ <contour>
+ <point x="1286" y="366" type="curve" smooth="yes"/>
+ <point x="1286" y="182"/>
+ <point x="1245" y="105"/>
+ <point x="1169" y="105" type="curve" smooth="yes"/>
+ <point x="1090" y="105"/>
+ <point x="1054" y="181"/>
+ <point x="1054" y="381" type="curve" smooth="yes"/>
+ <point x="1054" y="565"/>
+ <point x="1092" y="640"/>
+ <point x="1169" y="640" type="curve" smooth="yes"/>
+ <point x="1250" y="640"/>
+ <point x="1286" y="566"/>
+ </contour>
+ <contour>
+ <point x="1496" y="379" type="curve" smooth="yes"/>
+ <point x="1496" y="652"/>
+ <point x="1359" y="770"/>
+ <point x="1174" y="770" type="curve" smooth="yes"/>
+ <point x="990" y="770"/>
+ <point x="844" y="650"/>
+ <point x="844" y="368" type="curve" smooth="yes"/>
+ <point x="844" y="86"/>
+ <point x="980" y="-25"/>
+ <point x="1165" y="-25" type="curve" smooth="yes"/>
+ <point x="1350" y="-25"/>
+ <point x="1496" y="84"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..a1a4c93
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="495" y="1180" type="line"/>
+ <point x="495" y="285" type="line"/>
+ <point x="705" y="285" type="line"/>
+ <point x="705" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="630" type="line"/>
+ <point x="1045" y="630" type="line"/>
+ <point x="1045" y="840" type="line"/>
+ <point x="155" y="840" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..c9bbb28
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1090"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="640" y="500" type="line"/>
+ <point x="640" y="671"/>
+ <point x="668" y="805"/>
+ <point x="767" y="956" type="curve" smooth="yes"/>
+ <point x="837" y="1063"/>
+ <point x="900" y="1117"/>
+ <point x="900" y="1220" type="curve" smooth="yes"/>
+ <point x="900" y="1402"/>
+ <point x="757" y="1540"/>
+ <point x="500" y="1540" type="curve" smooth="yes"/>
+ <point x="355" y="1540"/>
+ <point x="206" y="1470"/>
+ <point x="140" y="1407" type="curve"/>
+ <point x="185" y="1168" type="line"/>
+ <point x="261" y="1247"/>
+ <point x="372" y="1295"/>
+ <point x="472" y="1295" type="curve" smooth="yes"/>
+ <point x="569" y="1295"/>
+ <point x="615" y="1249"/>
+ <point x="615" y="1190" type="curve" smooth="yes"/>
+ <point x="615" y="1139"/>
+ <point x="565" y="1096"/>
+ <point x="495" y="980" type="curve" smooth="yes"/>
+ <point x="434" y="879"/>
+ <point x="375" y="710"/>
+ <point x="375" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="335" y="150" type="curve" smooth="yes"/>
+ <point x="335" y="46"/>
+ <point x="409" y="-25"/>
+ <point x="510" y="-25" type="curve" smooth="yes"/>
+ <point x="612" y="-25"/>
+ <point x="685" y="46"/>
+ <point x="685" y="150" type="curve" smooth="yes"/>
+ <point x="685" y="252"/>
+ <point x="612" y="325"/>
+ <point x="510" y="325" type="curve" smooth="yes"/>
+ <point x="409" y="325"/>
+ <point x="335" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..794a655
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1085"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="450" y="1045" type="line"/>
+ <point x="455" y="1186"/>
+ <point x="456" y="1339"/>
+ <point x="485" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="271" y="1186"/>
+ <point x="275" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="810" y="1045" type="line"/>
+ <point x="815" y="1186"/>
+ <point x="816" y="1339"/>
+ <point x="845" y="1585" type="curve"/>
+ <point x="600" y="1585" type="line"/>
+ <point x="631" y="1339"/>
+ <point x="631" y="1186"/>
+ <point x="635" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..799c999
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ <point x="1070" y="-245" type="line"/>
+ <point x="240" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..48383fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="180" y="-410" type="line"/>
+ <point x="316" y="-383"/>
+ <point x="520" y="-333"/>
+ <point x="570" y="-285" type="curve" smooth="yes"/>
+ <point x="645" y="-213"/>
+ <point x="633" y="378"/>
+ <point x="655" y="410" type="curve" smooth="yes"/>
+ <point x="685" y="453"/>
+ <point x="855" y="560"/>
+ <point x="855" y="615" type="curve" smooth="yes"/>
+ <point x="855" y="670"/>
+ <point x="685" y="777"/>
+ <point x="655" y="820" type="curve" smooth="yes"/>
+ <point x="633" y="852"/>
+ <point x="644" y="1442"/>
+ <point x="570" y="1515" type="curve" smooth="yes"/>
+ <point x="523" y="1562"/>
+ <point x="333" y="1613"/>
+ <point x="205" y="1640" type="curve"/>
+ <point x="155" y="1409" type="line"/>
+ <point x="218" y="1390"/>
+ <point x="323" y="1351"/>
+ <point x="340" y="1330" type="curve" smooth="yes"/>
+ <point x="375" y="1289"/>
+ <point x="364" y="820"/>
+ <point x="382" y="785" type="curve" smooth="yes"/>
+ <point x="405" y="740"/>
+ <point x="542" y="650"/>
+ <point x="542" y="615" type="curve" smooth="yes"/>
+ <point x="542" y="580"/>
+ <point x="404" y="491"/>
+ <point x="380" y="445" type="curve" smooth="yes"/>
+ <point x="362" y="411"/>
+ <point x="375" y="-60"/>
+ <point x="340" y="-100" type="curve" smooth="yes"/>
+ <point x="321" y="-122"/>
+ <point x="197" y="-160"/>
+ <point x="130" y="-179" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..ae49fca
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="185" y="1455" type="line"/>
+ <point x="395" y="1261"/>
+ <point x="485" y="938"/>
+ <point x="485" y="635" type="curve" smooth="yes"/>
+ <point x="485" y="335"/>
+ <point x="399" y="11"/>
+ <point x="175" y="-240" type="curve"/>
+ <point x="326" y="-410" type="line"/>
+ <point x="601" y="-125"/>
+ <point x="746" y="218"/>
+ <point x="746" y="625" type="curve" smooth="yes"/>
+ <point x="746" y="1062"/>
+ <point x="571" y="1444"/>
+ <point x="306" y="1640" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..325e575
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="660" y="-410" type="line"/>
+ <point x="660" y="1600" type="line"/>
+ <point x="140" y="1600" type="line"/>
+ <point x="140" y="1390" type="line"/>
+ <point x="380" y="1390" type="line"/>
+ <point x="380" y="-200" type="line"/>
+ <point x="140" y="-200" type="line"/>
+ <point x="140" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..ae95657
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="710"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..1e33c05
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="240" y="-245" type="line"/>
+ <point x="1070" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..ec9fc73
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="165" y="345" type="line"/>
+ <point x="170" y="394"/>
+ <point x="202" y="435"/>
+ <point x="280" y="435" type="curve" smooth="yes"/>
+ <point x="435" y="435"/>
+ <point x="615" y="330"/>
+ <point x="825" y="330" type="curve" smooth="yes"/>
+ <point x="984" y="330"/>
+ <point x="1080" y="512"/>
+ <point x="1080" y="640" type="curve"/>
+ <point x="935" y="640" type="line"/>
+ <point x="928" y="594"/>
+ <point x="898" y="540"/>
+ <point x="815" y="540" type="curve" smooth="yes"/>
+ <point x="599" y="540"/>
+ <point x="461" y="645"/>
+ <point x="260" y="645" type="curve" smooth="yes"/>
+ <point x="104" y="645"/>
+ <point x="20" y="467"/>
+ <point x="20" y="345" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..d7caa84
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="240" y="1600" type="line"/>
+ <point x="240" y="-390" type="line"/>
+ <point x="450" y="-390" type="line"/>
+ <point x="450" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist
new file mode 100644
index 0000000..e2b5315
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1165</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist
new file mode 100644
index 0000000..ca97ce8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/10/22 11:32:25</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..c2cef04
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..5042901
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="365" y="1045" type="line"/>
+ <point x="370" y="1186"/>
+ <point x="376" y="1339"/>
+ <point x="405" y="1585" type="curve"/>
+ <point x="200" y="1585" type="line"/>
+ <point x="231" y="1339"/>
+ <point x="236" y="1186"/>
+ <point x="240" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..850d344
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..681014d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..60bd1cf
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..3cfbbc1
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..bb13221
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..fa444ec
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..f7540ef
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..c33b56a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..b019e05
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..88d5ca7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..6e8f5a3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="650"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..b7e540a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..cb2dd85
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..d9a5610
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..0ce656a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..42c7708
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..c9ca97e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..ec0acdb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..3242c12
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..c179477
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..d976d0f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..52136d8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..1315ffa
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..e683644
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..9f3a3f0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..c591997
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..a0a0004
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..fabf6ce
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..bc3f4eb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..293b653
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..db9ae78
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..bc7ef03
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..a4b9814
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e97ed98
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..2fc71eb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..fbdfff2
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3c64e18
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..b74cc60
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..415122e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..daf4f2d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..9154a06
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..e5d0043
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..deb38fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..477d223
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..5924270
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..c6001c3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..457e39d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..b3f4cdd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..3d5883a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..fbdf3b1
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..360e6e6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..e351c3d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..9f29954
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..ddd0351
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..cd9e037
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..92da6b0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..124138f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..7afa08d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..86c76b5
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..b1f4961
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..7472407
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..c2c5f54
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..4f0d667
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+GlyphNote A
+</note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..2ab1b23
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..6551c45
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..61c5d3f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9879252
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..ae3b838
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..cf21919
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..67ff8ac
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..7c403fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..13547d4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..f231440
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..56c0b15
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..236da64
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..bad060c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..369347b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..87f74c6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..d1b00cb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..4378793
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..4498bb1
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..5534dd8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..ee9b6c6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..e960bc9
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..1da1d6a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..0f090a4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..ea1e7ba
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..45d6b50
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..39609ad
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..3097f4b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..3557415
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..883cba4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..cbe0f68
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..14aff81
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..f4625db
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..e81f237
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..de1f259
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5526aec
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..c9f06c6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..d145f26
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..288a75a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3983f6b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..702689b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..247bed0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..3edff5d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..60ddaa7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..c73e040
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist
new file mode 100644
index 0000000..db1ec1b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1165</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfmakefea.fea b/tests/reference/ufo/psfmakefea.fea
new file mode 100644
index 0000000..1ce54da
--- /dev/null
+++ b/tests/reference/ufo/psfmakefea.fea
@@ -0,0 +1,214 @@
+
+# Main Classes
+@GDEF_bases = [.notdef .null Ampersand Apos Asterisk AtSgn CircumAccent Colon Comma DigitEight DigitFive DigitFour DigitNine DigitOne DigitSeven DigitSix DigitThree DigitTwo DigitZero DollarSgn DottedCirc EqSgn ExclamationMrk FullStop GTSgn GraveAccent Hyphen HyphenMinus Hyphen_Soft LTSgn LftCurlyBrac LftParen LftSqrBrac LowLine LtnCapA LtnCapA.alt LtnCapADiaer LtnCapB LtnCapC LtnCapD LtnCapE LtnCapF LtnCapG LtnCapH LtnCapI LtnCapJ LtnCapK LtnCapL LtnCapM LtnCapN LtnCapO LtnCapP LtnCapQ LtnCapR LtnCapS LtnCapT LtnCapU LtnCapV LtnCapW LtnCapX LtnCapY LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmB LtnSmC LtnSmD LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmJ LtnSmK LtnSmL LtnSmM LtnSmN LtnSmO LtnSmP LtnSmQ LtnSmR LtnSmS LtnSmT LtnSmU LtnSmV LtnSmW LtnSmX LtnSmY NonBreakingHyphen NumSgn PercentSgn PlusSgn QstnMrk QuotMrk ReverseSolidus RtCurlyBrac RtParen RtSqrBrac Semicolon Solidus Space Tilde VertLine nonmarkingreturn];
+@GDEF_marks = [CombAcute CombCircum CombDiaer CombGrave CombRingAbv CombTilde];
+@c_alt = [LtnCapA.alt];
+@cno_alt = [LtnCapA];
+
+# Positioning classes and statements
+
+# AP: U
+@U = [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree LtnCapE DigitFour DigitTwo DigitZero DottedCirc Hyphen HyphenMinus Hyphen_Soft NonBreakingHyphen LtnCapA LtnCapA.alt LtnCapADiaer LtnCapB LtnCapC LtnCapD LtnCapF LtnCapG LtnCapH LtnCapI LtnCapJ LtnCapK LtnCapX LtnCapY LtnCapL LtnCapM LtnCapN LtnCapO LtnCapQ LtnCapP LtnCapR LtnCapS LtnCapT LtnCapU LtnCapV LtnCapW LtnSmA LtnSmAAcute LtnSmACircum LtnSmAGrave LtnSmADiaer LtnSmARingAbv LtnSmATilde LtnSmB LtnSmC LtnSmO LtnSmD LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmJ LtnSmK LtnSmL LtnSmM LtnSmN LtnSmP LtnSmQ LtnSmR LtnSmS LtnSmT LtnSmU LtnSmV LtnSmY LtnSmW LtnSmX];
+@U_MarkBase = [CombAcute CombCircum CombRingAbv CombDiaer CombGrave CombTilde];
+# baseClass [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree LtnCapE] <anchor 600 1530> @U;
+# baseClass DigitFour <anchor 607 1530> @U;
+# baseClass DigitTwo <anchor 560 1530> @U;
+# baseClass DigitZero <anchor 605 1530> @U;
+# baseClass DottedCirc <anchor 553 1000> @U;
+# baseClass [Hyphen HyphenMinus Hyphen_Soft NonBreakingHyphen] <anchor 430 1100> @U;
+# baseClass LtnCapA <anchor 687 1530> @U;
+# baseClass LtnCapA.alt <anchor 688 -70> @U;
+# baseClass LtnCapADiaer <anchor 687 1935> @U;
+# baseClass LtnCapB <anchor 615 1530> @U;
+# baseClass LtnCapC <anchor 750 1530> @U;
+# baseClass LtnCapD <anchor 715 1530> @U;
+# baseClass LtnCapF <anchor 595 1530> @U;
+# baseClass LtnCapG <anchor 745 1530> @U;
+# baseClass LtnCapH <anchor 725 1530> @U;
+# baseClass LtnCapI <anchor 477 1530> @U;
+# baseClass LtnCapJ <anchor 675 1530> @U;
+# baseClass [LtnCapK LtnCapX LtnCapY] <anchor 650 1530> @U;
+# baseClass LtnCapL <anchor 592 1530> @U;
+# baseClass LtnCapM <anchor 885 1530> @U;
+# baseClass LtnCapN <anchor 737 1530> @U;
+# baseClass [LtnCapO LtnCapQ] <anchor 717 1530> @U;
+# baseClass LtnCapP <anchor 637 1530> @U;
+# baseClass LtnCapR <anchor 610 1530> @U;
+# baseClass LtnCapS <anchor 580 1530> @U;
+# baseClass LtnCapT <anchor 622 1530> @U;
+# baseClass LtnCapU <anchor 707 1530> @U;
+# baseClass LtnCapV <anchor 672 1530> @U;
+# baseClass LtnCapW <anchor 1027 1530> @U;
+# baseClass LtnSmA <anchor 540 1100> @U;
+# baseClass [LtnSmAAcute LtnSmACircum LtnSmAGrave] <anchor 540 1635> @U;
+# baseClass LtnSmADiaer <anchor 540 1505> @U;
+# baseClass LtnSmARingAbv <anchor 542 1635> @U;
+# baseClass LtnSmATilde <anchor 540 1475> @U;
+# baseClass LtnSmB <anchor 590 1635> @U;
+# baseClass [LtnSmC LtnSmO] <anchor 570 1100> @U;
+# baseClass LtnSmD <anchor 605 1635> @U;
+# baseClass LtnSmE <anchor 569 1100> @U;
+# baseClass LtnSmF <anchor 560 1635> @U;
+# baseClass LtnSmG <anchor 515 1100> @U;
+# baseClass LtnSmH <anchor 585 1635> @U;
+# baseClass LtnSmI <anchor 282 1100> @U;
+# baseClass LtnSmJ <anchor 313 1100> @U;
+# baseClass LtnSmK <anchor 572 1635> @U;
+# baseClass LtnSmL <anchor 282 1635> @U;
+# baseClass LtnSmM <anchor 865 1100> @U;
+# baseClass LtnSmN <anchor 600 1100> @U;
+# baseClass LtnSmP <anchor 590 1100> @U;
+# baseClass LtnSmQ <anchor 555 1100> @U;
+# baseClass LtnSmR <anchor 455 1100> @U;
+# baseClass LtnSmS <anchor 495 1100> @U;
+# baseClass LtnSmT <anchor 325 1360> @U;
+# baseClass LtnSmU <anchor 589 1100> @U;
+# baseClass [LtnSmV LtnSmY] <anchor 535 1100> @U;
+# baseClass LtnSmW <anchor 775 1100> @U;
+# baseClass LtnSmX <anchor 542 1100> @U;
+# baseClass [CombAcute CombCircum CombRingAbv] <anchor -570 1635> @U_MarkBase;
+# baseClass CombDiaer <anchor -570 1505> @U_MarkBase;
+# baseClass CombGrave <anchor -550 1635> @U_MarkBase;
+# baseClass CombTilde <anchor -575 1475> @U_MarkBase;
+
+# AP: _U
+markClass [CombAcute CombCircum CombDiaer] <anchor -570 1100> @_U;
+markClass CombGrave <anchor -550 1100> @_U;
+markClass CombRingAbv <anchor -572 1100> @_U;
+markClass CombTilde <anchor -575 1100> @_U;
+
+# AP: L
+@L = [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree DigitTwo LtnCapE LtnSmN DigitFour DigitZero LtnSmD DottedCirc LtnCapA LtnCapADiaer LtnCapA.alt LtnCapB LtnCapC LtnCapD LtnCapF LtnCapG LtnCapH LtnCapI LtnCapJ LtnCapK LtnCapL LtnCapM LtnCapN LtnCapO LtnCapP LtnCapQ LtnCapR LtnCapS LtnSmC LtnCapT LtnCapU LtnCapV LtnCapW LtnCapX LtnCapY LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmB LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmJ LtnSmK LtnSmL LtnSmM LtnSmO LtnSmP LtnSmQ LtnSmR LtnSmS LtnSmT LtnSmU LtnSmV LtnSmW LtnSmX LtnSmY];
+# baseClass [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree DigitTwo LtnCapE LtnSmN] <anchor 600 -100> @L;
+# baseClass DigitFour <anchor 607 -100> @L;
+# baseClass [DigitZero LtnSmD] <anchor 605 -100> @L;
+# baseClass DottedCirc <anchor 553 -100> @L;
+# baseClass [LtnCapA LtnCapADiaer] <anchor 687 -100> @L;
+# baseClass LtnCapA.alt <anchor 688 1560> @L;
+# baseClass LtnCapB <anchor 615 -100> @L;
+# baseClass LtnCapC <anchor 750 -100> @L;
+# baseClass LtnCapD <anchor 715 -100> @L;
+# baseClass LtnCapF <anchor 595 -100> @L;
+# baseClass LtnCapG <anchor 745 -100> @L;
+# baseClass LtnCapH <anchor 725 -100> @L;
+# baseClass LtnCapI <anchor 477 -100> @L;
+# baseClass LtnCapJ <anchor 410 -100> @L;
+# baseClass LtnCapK <anchor 695 -100> @L;
+# baseClass LtnCapL <anchor 592 -100> @L;
+# baseClass LtnCapM <anchor 885 -100> @L;
+# baseClass LtnCapN <anchor 737 -100> @L;
+# baseClass LtnCapO <anchor 717 -100> @L;
+# baseClass LtnCapP <anchor 637 -100> @L;
+# baseClass LtnCapQ <anchor 717 -270> @L;
+# baseClass LtnCapR <anchor 610 -100> @L;
+# baseClass [LtnCapS LtnSmC] <anchor 580 -100> @L;
+# baseClass LtnCapT <anchor 622 -100> @L;
+# baseClass LtnCapU <anchor 707 -100> @L;
+# baseClass LtnCapV <anchor 672 -100> @L;
+# baseClass LtnCapW <anchor 1027 -100> @L;
+# baseClass [LtnCapX LtnCapY] <anchor 650 -100> @L;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde] <anchor 540 -100> @L;
+# baseClass LtnSmB <anchor 590 -100> @L;
+# baseClass LtnSmE <anchor 569 -100> @L;
+# baseClass LtnSmF <anchor 335 -100> @L;
+# baseClass LtnSmG <anchor 545 -535> @L;
+# baseClass LtnSmH <anchor 585 -100> @L;
+# baseClass LtnSmI <anchor 285 -100> @L;
+# baseClass LtnSmJ <anchor 125 -500> @L;
+# baseClass LtnSmK <anchor 572 -100> @L;
+# baseClass LtnSmL <anchor 290 -100> @L;
+# baseClass LtnSmM <anchor 865 -100> @L;
+# baseClass LtnSmO <anchor 570 -100> @L;
+# baseClass LtnSmP <anchor 590 -500> @L;
+# baseClass LtnSmQ <anchor 555 -500> @L;
+# baseClass LtnSmR <anchor 255 -100> @L;
+# baseClass LtnSmS <anchor 495 -100> @L;
+# baseClass LtnSmT <anchor 475 -100> @L;
+# baseClass LtnSmU <anchor 589 -100> @L;
+# baseClass LtnSmV <anchor 535 -100> @L;
+# baseClass LtnSmW <anchor 775 -100> @L;
+# baseClass LtnSmX <anchor 542 -100> @L;
+# baseClass LtnSmY <anchor 795 -100> @L;
+
+# AP: H
+@H = [DottedCirc LtnCapA LtnCapADiaer LtnCapU LtnCapA.alt LtnCapC LtnCapE LtnCapG LtnCapH LtnCapR LtnCapI LtnCapK LtnSmR LtnCapL LtnCapM LtnCapN LtnCapO LtnCapS LtnSmC LtnCapT LtnCapV LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmB LtnSmD LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmK LtnSmL LtnSmM LtnSmN LtnSmO LtnSmP LtnSmS LtnSmT LtnSmU LtnSmV LtnSmX];
+# baseClass DottedCirc <anchor 553 0> @H;
+# baseClass [LtnCapA LtnCapADiaer LtnCapU] <anchor 707 0> @H;
+# baseClass LtnCapA.alt <anchor 668 1460> @H;
+# baseClass LtnCapC <anchor 750 0> @H;
+# baseClass LtnCapE <anchor 600 0> @H;
+# baseClass LtnCapG <anchor 745 0> @H;
+# baseClass [LtnCapH LtnCapR] <anchor 285 0> @H;
+# baseClass LtnCapI <anchor 477 0> @H;
+# baseClass [LtnCapK LtnSmR] <anchor 270 0> @H;
+# baseClass LtnCapL <anchor 592 0> @H;
+# baseClass LtnCapM <anchor 1521 0> @H;
+# baseClass LtnCapN <anchor 1230 0> @H;
+# baseClass LtnCapO <anchor 717 0> @H;
+# baseClass [LtnCapS LtnSmC] <anchor 580 0> @H;
+# baseClass LtnCapT <anchor 622 0> @H;
+# baseClass LtnCapV <anchor 680 0> @H;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde] <anchor 540 0> @H;
+# baseClass LtnSmB <anchor 590 0> @H;
+# baseClass LtnSmD <anchor 605 0> @H;
+# baseClass LtnSmE <anchor 545 0> @H;
+# baseClass LtnSmF <anchor 370 0> @H;
+# baseClass LtnSmG <anchor 545 -432> @H;
+# baseClass LtnSmH <anchor 250 0> @H;
+# baseClass LtnSmI <anchor 282 0> @H;
+# baseClass LtnSmK <anchor 243 0> @H;
+# baseClass LtnSmL <anchor 290 0> @H;
+# baseClass LtnSmM <anchor 1450 0> @H;
+# baseClass LtnSmN <anchor 970 0> @H;
+# baseClass LtnSmO <anchor 570 0> @H;
+# baseClass LtnSmP <anchor 265 -435> @H;
+# baseClass LtnSmS <anchor 495 0> @H;
+# baseClass LtnSmT <anchor 475 0> @H;
+# baseClass LtnSmU <anchor 589 0> @H;
+# baseClass LtnSmV <anchor 549 0> @H;
+# baseClass LtnSmX <anchor 900 0> @H;
+
+# AP: O
+@O = [DottedCirc LtnCapA LtnCapADiaer LtnCapA.alt LtnCapE LtnCapI LtnCapO LtnCapU LtnCapV LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmE LtnSmI LtnSmO LtnSmU LtnSmV];
+# baseClass DottedCirc <anchor 810 0> @O;
+# baseClass [LtnCapA LtnCapADiaer] <anchor 1450 0> @O;
+# baseClass LtnCapA.alt <anchor -75 1460> @O;
+# baseClass LtnCapE <anchor 917 0> @O;
+# baseClass LtnCapI <anchor 673 0> @O;
+# baseClass LtnCapO <anchor 994 0> @O;
+# baseClass LtnCapU <anchor 1026 0> @O;
+# baseClass LtnCapV <anchor 880 0> @O;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde] <anchor 1125 0> @O;
+# baseClass LtnSmE <anchor 925 0> @O;
+# baseClass LtnSmI <anchor 500 0> @O;
+# baseClass LtnSmO <anchor 835 0> @O;
+# baseClass LtnSmU <anchor 1192 0> @O;
+# baseClass LtnSmV <anchor 725 0> @O;
+
+# AP: R
+@R = [LtnCapE LtnCapI LtnCapL LtnCapO LtnCapU LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmY LtnSmB LtnSmC LtnSmD LtnSmE LtnSmG LtnSmI LtnSmK LtnSmL LtnSmO LtnSmP LtnSmQ LtnSmT LtnSmU];
+# baseClass LtnCapE <anchor 1160 1200> @R;
+# baseClass LtnCapI <anchor 975 1200> @R;
+# baseClass LtnCapL <anchor 540 1200> @R;
+# baseClass LtnCapO <anchor 1460 1200> @R;
+# baseClass LtnCapU <anchor 1400 1200> @R;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmY] <anchor 1120 1000> @R;
+# baseClass LtnSmB <anchor 1155 1000> @R;
+# baseClass LtnSmC <anchor 1020 1000> @R;
+# baseClass LtnSmD <anchor 1190 1000> @R;
+# baseClass [LtnSmE LtnSmG] <anchor 1095 1000> @R;
+# baseClass LtnSmI <anchor 555 1000> @R;
+# baseClass LtnSmK <anchor 1035 1000> @R;
+# baseClass LtnSmL <anchor 550 1000> @R;
+# baseClass LtnSmO <anchor 1140 1000> @R;
+# baseClass LtnSmP <anchor 1170 1000> @R;
+# baseClass LtnSmQ <anchor 1130 1000> @R;
+# baseClass LtnSmT <anchor 835 1000> @R;
+# baseClass LtnSmU <anchor 1185 1000> @R;
+@base = [A a];
+@basex = [A.x a.x];
+@basey = [A.y a.y];
+feature alt {
+ sub A from [A.x A.y];
+ sub a from [a.x a.y];
+} alt;
diff --git a/tests/reference/ufo/psfmakefea.lg b/tests/reference/ufo/psfmakefea.lg
new file mode 100644
index 0000000..98ea8d4
--- /dev/null
+++ b/tests/reference/ufo/psfmakefea.lg
@@ -0,0 +1,2 @@
+2020-07-28 14:36:08 Progress: Running: psfmakefea -i tests/input/psfmakefea.feax -o local/testresults/ufo/psfmakefea.fea -l local/testresults/ufo/psfmakefea.log tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2020-07-28 14:36:08 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
diff --git a/tests/reference/ufo/psfmakewoffmetadata.lg b/tests/reference/ufo/psfmakewoffmetadata.lg
new file mode 100644
index 0000000..f866b62
--- /dev/null
+++ b/tests/reference/ufo/psfmakewoffmetadata.lg
@@ -0,0 +1,13 @@
+2022-03-07 14:44:21 Progress: Running: psfmakewoffmetadata tests/input/font-psf-test/source/PsfTest-Regular.ufo -n Test -i SIL -f tests/input/psfmakewoffmetadata.txt -o local/testresults/ufo/psfmakewoffmetadata.xml -l local/testresults/ufo/psfmakewoffmetadata.log
+2022-03-07 14:44:21 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2022-03-07 14:44:21 Progress: Checking fontinfo.plist metadata
+2022-03-07 14:44:21 Warning: note is present - it's use is discouraged
+2022-03-07 14:44:21 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2022-03-07 14:44:21 Warning: openTypeOS2Selection would be added New value: [7]
+2022-03-07 14:44:21 Progress: Checking lib.plist metadata
+2022-03-07 14:44:21 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2022-03-07 14:44:21 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2022-03-07 14:44:21 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2022-03-07 14:44:21 Progress: See log file for details
+2022-03-07 14:44:21 Warning: WOFF field(s) missing from fontinfo.plist will be generated from FONTLOG.txt: woffMetadataCredits, woffMetadataDescription
+2022-03-07 14:44:21 Progress: Writing to : local/testresults/ufo/psfmakewoffmetadata.xml
diff --git a/tests/reference/ufo/psfmakewoffmetadata.xml b/tests/reference/ufo/psfmakewoffmetadata.xml
new file mode 100644
index 0000000..06a4ac1
--- /dev/null
+++ b/tests/reference/ufo/psfmakewoffmetadata.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata version="1.0">
+ <uniqueid id="SIL.Test.5.550" />
+ <vendor name="SIL International" url="http://scripts.sil.org" />
+ <credits>
+ <credit
+ name="Victor Gaultney"
+ url="http://www.sil.org/~gaultney/"
+ role="Original Designer"
+ />
+ <credit
+ name="SIL font engineers"
+ url="http://scripts.sil.org/"
+ role="Graphite, OpenType, and TypeTuner code, and build support"
+ />
+ </credits>
+ <description>
+ <text lang="en">
+ There are intentional problems with the UFO!
+
+ Features
+ --------
+
+ What features?
+ </text>
+ </description>
+ <license url="http://scripts.sil.org/OFL" id="org.sil.ofl.1.1">
+ <text lang="en">
+ Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+ This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+ -----------------------------------------------------------
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+ -----------------------------------------------------------
+
+ PREAMBLE
+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+ DEFINITIONS
+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+ PERMISSION &amp; CONDITIONS
+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+ 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+ TERMINATION
+ This license becomes null and void if any of the above conditions are not met.
+
+ DISCLAIMER
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+ </text>
+ </license>
+ <copyright>
+ <text lang="en">
+ Copyright (c) 2004-2021 SIL International
+ </text>
+ </copyright>
+ <trademark>
+ <text lang="en">Andika is a trademark of SIL International.</text>
+ </trademark>
+</metadata> \ No newline at end of file
diff --git a/tests/reference/ufo/psfnormalize.lg b/tests/reference/ufo/psfnormalize.lg
new file mode 100644
index 0000000..313c267
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.lg
@@ -0,0 +1,18 @@
+2021-06-29 14:42:23 Progress: Running: psfnormalize tests/input/font-psf-test/source/PsfTest-Italic.ufo -l local/testresults/ufo/psfnormalize.log -p checkfix=fix
+2021-06-29 14:42:23 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:23 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:23 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:23 Warning: year removed from fontinfo. Old value: 2021
+2021-06-29 14:42:23 Warning: capHeight updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:23 Warning: styleMapFamilyName uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:23 Warning: openTypeOS2TypoLineGap updated Old value: 1, new value: 0
+2021-06-29 14:42:23 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:23 Warning: openTypeNamePreferredFamilyName updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:23 Progress: Checking lib.plist metadata
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Progress: Check & fix results:- Errors: 0, Changes made: 9, Other warnings: 0
+2021-06-29 14:42:23 Progress: See log file for details
+2021-06-29 14:42:23 Progress: Processing font for output
+2021-06-29 14:42:23 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:23 Progress: Writing font to local/testresults/ufo/psfnormalize.ufo
diff --git a/tests/reference/ufo/psfnormalize.ufo/fontinfo.plist b/tests/reference/ufo/psfnormalize.ufo/fontinfo.plist
new file mode 100644
index 0000000..d5f4bef
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/fontinfo.plist
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:53</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist b/tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/layercontents.plist b/tests/reference/ufo/psfnormalize.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/lib.plist b/tests/reference/ufo/psfnormalize.ufo/lib.plist
new file mode 100644
index 0000000..fa77038
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/lib.plist
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/metainfo.plist b/tests/reference/ufo/psfnormalize.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.lg b/tests/reference/ufo/psfrenameglyphs.lg
new file mode 100644
index 0000000..557bc2f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.lg
@@ -0,0 +1,34 @@
+2021-06-29 14:42:22 Progress: Running: psfrenameglyphs tests/input/font-psf-test/source/PsfTest-Bold.ufo -i tests/input/psfrenameglyphs.csv -l local/testresults/ufo/psfrenameglyphs.log -p loglevel=i -p checkfix=fix
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/psfrenameglyphs.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Bold.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes made: 4, Other warnings: 1
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: Pass 1 (Font): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (PGO): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (csGO): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (psn): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (Font): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: Pass 1 (PGO): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: Pass 1 (csGO): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: Pass 1 (psn): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: glyph name not in font: Commer
+2021-06-29 14:42:22 Info: glyph name not in publicGlyphorder: Commer
+2021-06-29 14:42:22 Info: glyph name not in csGlyphorder: Commer
+2021-06-29 14:42:22 Info: glyph name not in psnames: Commer
+2021-06-29 14:42:22 Progress: 2 glyphs renamed in UFO
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfrenameglyphs.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist b/tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist
new file mode 100644
index 0000000..c60d899
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:52</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f2749f2
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1355"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1060" y="600" type="line"/>
+ <point x="996" y="433"/>
+ <point x="715" y="190"/>
+ <point x="540" y="190" type="curve" smooth="yes"/>
+ <point x="425" y="190"/>
+ <point x="335" y="257"/>
+ <point x="335" y="370" type="curve" smooth="yes"/>
+ <point x="335" y="480"/>
+ <point x="411" y="547"/>
+ <point x="585" y="700" type="curve" smooth="yes"/>
+ <point x="766" y="859"/>
+ <point x="925" y="1048"/>
+ <point x="925" y="1190" type="curve" smooth="yes"/>
+ <point x="925" y="1372"/>
+ <point x="777" y="1485"/>
+ <point x="575" y="1485" type="curve" smooth="yes"/>
+ <point x="366" y="1485"/>
+ <point x="190" y="1372"/>
+ <point x="190" y="1160" type="curve" smooth="yes"/>
+ <point x="190" y="1000"/>
+ <point x="407" y="785"/>
+ <point x="590" y="540" type="curve" smooth="yes"/>
+ <point x="859" y="179"/>
+ <point x="1038" y="-25"/>
+ <point x="1090" y="-25" type="curve" smooth="yes"/>
+ <point x="1125" y="-25"/>
+ <point x="1253" y="58"/>
+ <point x="1290" y="90" type="curve"/>
+ <point x="1195" y="130"/>
+ <point x="1060" y="305"/>
+ <point x="785" y="680" type="curve" smooth="yes"/>
+ <point x="619" y="906"/>
+ <point x="420" y="1085"/>
+ <point x="420" y="1170" type="curve" smooth="yes"/>
+ <point x="420" y="1241"/>
+ <point x="483" y="1310"/>
+ <point x="560" y="1310" type="curve" smooth="yes"/>
+ <point x="640" y="1310"/>
+ <point x="695" y="1254"/>
+ <point x="695" y="1175" type="curve" smooth="yes"/>
+ <point x="695" y="1106"/>
+ <point x="628" y="1001"/>
+ <point x="455" y="840" type="curve" smooth="yes"/>
+ <point x="251" y="651"/>
+ <point x="90" y="527"/>
+ <point x="90" y="344" type="curve" smooth="yes"/>
+ <point x="90" y="121"/>
+ <point x="242" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="808" y="-25"/>
+ <point x="1117" y="264"/>
+ <point x="1195" y="425" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..47fee96
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1742"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1140" y="10" type="line"/>
+ <point x="1077" y="-34"/>
+ <point x="988" y="-60"/>
+ <point x="895" y="-60" type="curve" smooth="yes"/>
+ <point x="558" y="-60"/>
+ <point x="290" y="204"/>
+ <point x="290" y="605" type="curve" smooth="yes"/>
+ <point x="290" y="973"/>
+ <point x="557" y="1240"/>
+ <point x="895" y="1240" type="curve" smooth="yes"/>
+ <point x="1278" y="1240"/>
+ <point x="1460" y="992"/>
+ <point x="1460" y="670" type="curve" smooth="yes"/>
+ <point x="1460" y="452"/>
+ <point x="1363" y="335"/>
+ <point x="1305" y="335" type="curve" smooth="yes"/>
+ <point x="1256" y="335"/>
+ <point x="1220" y="430"/>
+ <point x="1220" y="650" type="curve" smooth="yes"/>
+ <point x="1220" y="980" type="line"/>
+ <point x="1133" y="1015"/>
+ <point x="986" y="1040"/>
+ <point x="905" y="1040" type="curve" smooth="yes"/>
+ <point x="741" y="1040"/>
+ <point x="618" y="961"/>
+ <point x="535" y="825" type="curve" smooth="yes"/>
+ <point x="488" y="746"/>
+ <point x="460" y="653"/>
+ <point x="460" y="530" type="curve" smooth="yes"/>
+ <point x="460" y="304"/>
+ <point x="606" y="163"/>
+ <point x="740" y="163" type="curve" smooth="yes"/>
+ <point x="867" y="163"/>
+ <point x="1013" y="331"/>
+ <point x="1065" y="455" type="curve"/>
+ <point x="1075" y="287"/>
+ <point x="1153" y="160"/>
+ <point x="1275" y="160" type="curve" smooth="yes"/>
+ <point x="1450" y="160"/>
+ <point x="1650" y="358"/>
+ <point x="1650" y="700" type="curve" smooth="yes"/>
+ <point x="1650" y="1137"/>
+ <point x="1342" y="1425"/>
+ <point x="905" y="1425" type="curve" smooth="yes"/>
+ <point x="480" y="1425"/>
+ <point x="90" y="1136"/>
+ <point x="90" y="575" type="curve" smooth="yes"/>
+ <point x="90" y="38"/>
+ <point x="479" y="-245"/>
+ <point x="880" y="-245" type="curve" smooth="yes"/>
+ <point x="1015" y="-245"/>
+ <point x="1175" y="-198"/>
+ <point x="1275" y="-128" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1020" y="710" type="line"/>
+ <point x="988" y="572"/>
+ <point x="863" y="350"/>
+ <point x="773" y="350" type="curve" smooth="yes"/>
+ <point x="701" y="350"/>
+ <point x="660" y="428"/>
+ <point x="660" y="575" type="curve" smooth="yes"/>
+ <point x="660" y="652"/>
+ <point x="682" y="737"/>
+ <point x="720" y="786" type="curve" smooth="yes"/>
+ <point x="756" y="831"/>
+ <point x="807" y="855"/>
+ <point x="875" y="855" type="curve" smooth="yes"/>
+ <point x="949" y="855"/>
+ <point x="987" y="836"/>
+ <point x="1020" y="820" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif
new file mode 100644
index 0000000..e26faa2
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Bpos" format="2">
+ <advance width="625"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="400" y="1045" type="line"/>
+ <point x="405" y="1186"/>
+ <point x="406" y="1339"/>
+ <point x="435" y="1585" type="curve"/>
+ <point x="190" y="1585" type="line"/>
+ <point x="221" y="1339"/>
+ <point x="221" y="1186"/>
+ <point x="225" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..7258b7d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="880"/>
+ <unicode hex="005E"/>
+ <anchor x="440" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="888" y="1200" type="line"/>
+ <point x="598" y="1600" type="line"/>
+ <point x="298" y="1600" type="line"/>
+ <point x="8" y="1200" type="line"/>
+ <point x="248" y="1200" type="line"/>
+ <point x="448" y="1430" type="line"/>
+ <point x="648" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..ae4801a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="710"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..5574223
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-600" y="1635" name="U"/>
+ <anchor x="-540" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1600" type="line"/>
+ <point x="-760" y="1200" type="line"/>
+ <point x="-520" y="1200" type="line"/>
+ <point x="-120" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..ca30491
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-588" y="1635" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-140" y="1200" type="line"/>
+ <point x="-430" y="1600" type="line"/>
+ <point x="-730" y="1600" type="line"/>
+ <point x="-1020" y="1200" type="line"/>
+ <point x="-780" y="1200" type="line"/>
+ <point x="-580" y="1430" type="line"/>
+ <point x="-380" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..5a15368
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-580" y="1585" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-510" y="1385" type="curve" smooth="yes"/>
+ <point x="-510" y="1281"/>
+ <point x="-436" y="1210"/>
+ <point x="-335" y="1210" type="curve" smooth="yes"/>
+ <point x="-233" y="1210"/>
+ <point x="-160" y="1281"/>
+ <point x="-160" y="1385" type="curve" smooth="yes"/>
+ <point x="-160" y="1487"/>
+ <point x="-233" y="1560"/>
+ <point x="-335" y="1560" type="curve" smooth="yes"/>
+ <point x="-436" y="1560"/>
+ <point x="-510" y="1487"/>
+ </contour>
+ <contour>
+ <point x="-1000" y="1385" type="curve" smooth="yes"/>
+ <point x="-1000" y="1281"/>
+ <point x="-926" y="1210"/>
+ <point x="-825" y="1210" type="curve" smooth="yes"/>
+ <point x="-723" y="1210"/>
+ <point x="-650" y="1281"/>
+ <point x="-650" y="1385" type="curve" smooth="yes"/>
+ <point x="-650" y="1487"/>
+ <point x="-723" y="1560"/>
+ <point x="-825" y="1560" type="curve" smooth="yes"/>
+ <point x="-926" y="1560"/>
+ <point x="-1000" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..33bed8f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-590" y="1635" name="U"/>
+ <anchor x="-630" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-1050" y="1600" type="line"/>
+ <point x="-650" y="1200" type="line"/>
+ <point x="-410" y="1200" type="line"/>
+ <point x="-700" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..7e03146
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-475" y="1400" type="curve" smooth="yes"/>
+ <point x="-475" y="1345"/>
+ <point x="-515" y="1305"/>
+ <point x="-570" y="1305" type="curve" smooth="yes"/>
+ <point x="-625" y="1305"/>
+ <point x="-665" y="1345"/>
+ <point x="-665" y="1400" type="curve" smooth="yes"/>
+ <point x="-665" y="1455"/>
+ <point x="-625" y="1495"/>
+ <point x="-570" y="1495" type="curve" smooth="yes"/>
+ <point x="-515" y="1495"/>
+ <point x="-475" y="1455"/>
+ </contour>
+ <contour>
+ <point x="-815" y="1400" type="curve" smooth="yes"/>
+ <point x="-815" y="1260"/>
+ <point x="-710" y="1160"/>
+ <point x="-570" y="1160" type="curve" smooth="yes"/>
+ <point x="-430" y="1160"/>
+ <point x="-325" y="1260"/>
+ <point x="-325" y="1400" type="curve" smooth="yes"/>
+ <point x="-325" y="1540"/>
+ <point x="-430" y="1640"/>
+ <point x="-570" y="1640" type="curve" smooth="yes"/>
+ <point x="-710" y="1640"/>
+ <point x="-815" y="1540"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..ee23af5
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-580" y="1490" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-830" y="1190" type="line"/>
+ <point x="-824" y="1232"/>
+ <point x="-803" y="1280"/>
+ <point x="-753" y="1280" type="curve" smooth="yes"/>
+ <point x="-710" y="1280"/>
+ <point x="-653" y="1264"/>
+ <point x="-570" y="1229" type="curve" smooth="yes"/>
+ <point x="-500" y="1199"/>
+ <point x="-448" y="1180"/>
+ <point x="-386" y="1180" type="curve" smooth="yes"/>
+ <point x="-250" y="1180"/>
+ <point x="-155" y="1307"/>
+ <point x="-155" y="1480" type="curve"/>
+ <point x="-310" y="1480" type="line"/>
+ <point x="-318" y="1438"/>
+ <point x="-340" y="1390"/>
+ <point x="-387" y="1390" type="curve" smooth="yes"/>
+ <point x="-435" y="1390"/>
+ <point x="-472" y="1408"/>
+ <point x="-550" y="1437" type="curve" smooth="yes"/>
+ <point x="-629" y="1466"/>
+ <point x="-695" y="1490"/>
+ <point x="-760" y="1490" type="curve" smooth="yes"/>
+ <point x="-892" y="1490"/>
+ <point x="-985" y="1349"/>
+ <point x="-985" y="1190" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..9d4845e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="665"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..a59fff4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="877" y="-25"/>
+ <point x="1130" y="144"/>
+ <point x="1130" y="415" type="curve" smooth="yes"/>
+ <point x="1130" y="641"/>
+ <point x="985" y="739"/>
+ <point x="875" y="795" type="curve"/>
+ <point x="953" y="841"/>
+ <point x="1060" y="923"/>
+ <point x="1060" y="1105" type="curve" smooth="yes"/>
+ <point x="1060" y="1350"/>
+ <point x="860" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="361" y="1485"/>
+ <point x="140" y="1350"/>
+ <point x="140" y="1105" type="curve" smooth="yes"/>
+ <point x="140" y="923"/>
+ <point x="252" y="838"/>
+ <point x="330" y="795" type="curve"/>
+ <point x="201" y="725"/>
+ <point x="70" y="631"/>
+ <point x="70" y="405" type="curve" smooth="yes"/>
+ <point x="70" y="134"/>
+ <point x="324" y="-25"/>
+ </contour>
+ <contour>
+ <point x="810" y="1100" type="curve" smooth="yes"/>
+ <point x="810" y="974"/>
+ <point x="733" y="895"/>
+ <point x="600" y="895" type="curve" smooth="yes"/>
+ <point x="467" y="895"/>
+ <point x="390" y="974"/>
+ <point x="390" y="1100" type="curve" smooth="yes"/>
+ <point x="390" y="1217"/>
+ <point x="477" y="1290"/>
+ <point x="600" y="1290" type="curve" smooth="yes"/>
+ <point x="743" y="1290"/>
+ <point x="810" y="1207"/>
+ </contour>
+ <contour>
+ <point x="865" y="435" type="curve" smooth="yes"/>
+ <point x="865" y="300"/>
+ <point x="768" y="185"/>
+ <point x="600" y="185" type="curve" smooth="yes"/>
+ <point x="440" y="185"/>
+ <point x="335" y="300"/>
+ <point x="335" y="435" type="curve" smooth="yes"/>
+ <point x="335" y="582"/>
+ <point x="450" y="680"/>
+ <point x="600" y="680" type="curve" smooth="yes"/>
+ <point x="748" y="680"/>
+ <point x="865" y="582"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..102780d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="645" type="line"/>
+ <point x="299" y="693"/>
+ <point x="404" y="710"/>
+ <point x="510" y="710" type="curve" smooth="yes"/>
+ <point x="670" y="710"/>
+ <point x="810" y="632"/>
+ <point x="810" y="470" type="curve" smooth="yes"/>
+ <point x="810" y="318"/>
+ <point x="690" y="215"/>
+ <point x="530" y="215" type="curve" smooth="yes"/>
+ <point x="390" y="215"/>
+ <point x="274" y="252"/>
+ <point x="140" y="360" type="curve"/>
+ <point x="100" y="80" type="line"/>
+ <point x="225" y="2"/>
+ <point x="365" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="833" y="-25"/>
+ <point x="1090" y="163"/>
+ <point x="1090" y="475" type="curve" smooth="yes"/>
+ <point x="1090" y="752"/>
+ <point x="882" y="930"/>
+ <point x="605" y="930" type="curve" smooth="yes"/>
+ <point x="543" y="930"/>
+ <point x="468" y="911"/>
+ <point x="435" y="895" type="curve"/>
+ <point x="435" y="1215" type="line"/>
+ <point x="765" y="1215" type="line" smooth="yes"/>
+ <point x="849" y="1215"/>
+ <point x="955" y="1211"/>
+ <point x="1030" y="1195" type="curve"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="175" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..7d2cbe6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1155" y="345" type="line"/>
+ <point x="1155" y="570" type="line"/>
+ <point x="995" y="570" type="line"/>
+ <point x="995" y="1460" type="line"/>
+ <point x="695" y="1460" type="line"/>
+ <point x="60" y="570" type="line"/>
+ <point x="60" y="345" type="line"/>
+ <point x="730" y="345" type="line"/>
+ <point x="730" y="0" type="line"/>
+ <point x="995" y="0" type="line"/>
+ <point x="995" y="345" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1145" type="line"/>
+ <point x="730" y="570" type="line"/>
+ <point x="305" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..b1e153b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="154" y="65" type="line"/>
+ <point x="248" y="5"/>
+ <point x="364" y="-25"/>
+ <point x="492" y="-25" type="curve" smooth="yes"/>
+ <point x="967" y="-25"/>
+ <point x="1135" y="411"/>
+ <point x="1135" y="780" type="curve" smooth="yes"/>
+ <point x="1135" y="1150"/>
+ <point x="977" y="1485"/>
+ <point x="589" y="1485" type="curve" smooth="yes"/>
+ <point x="310" y="1485"/>
+ <point x="70" y="1300"/>
+ <point x="70" y="1002" type="curve" smooth="yes"/>
+ <point x="70" y="763"/>
+ <point x="272" y="576"/>
+ <point x="550" y="576" type="curve" smooth="yes"/>
+ <point x="741" y="576"/>
+ <point x="913" y="707"/>
+ <point x="1010" y="868" type="curve"/>
+ <point x="939" y="991" type="line"/>
+ <point x="865" y="877"/>
+ <point x="729" y="790"/>
+ <point x="574" y="790" type="curve" smooth="yes"/>
+ <point x="425" y="790"/>
+ <point x="326" y="890"/>
+ <point x="326" y="1036" type="curve" smooth="yes"/>
+ <point x="326" y="1153"/>
+ <point x="425" y="1250"/>
+ <point x="573" y="1250" type="curve" smooth="yes"/>
+ <point x="773" y="1250"/>
+ <point x="870" y="1102"/>
+ <point x="870" y="813" type="curve" smooth="yes"/>
+ <point x="870" y="326"/>
+ <point x="699" y="210"/>
+ <point x="502" y="210" type="curve" smooth="yes"/>
+ <point x="406" y="210"/>
+ <point x="294" y="234"/>
+ <point x="208" y="320" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..c744b9f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1075" y="235" type="line"/>
+ <point x="767" y="235" type="line"/>
+ <point x="767" y="1460" type="line"/>
+ <point x="492" y="1460" type="line"/>
+ <point x="177" y="1278" type="line"/>
+ <point x="212" y="1018" type="line"/>
+ <point x="492" y="1170" type="line"/>
+ <point x="492" y="235" type="line"/>
+ <point x="185" y="235" type="line"/>
+ <point x="185" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..63fb1c4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="520" y="0" type="line"/>
+ <point x="649" y="459"/>
+ <point x="834" y="855"/>
+ <point x="1130" y="1260" type="curve"/>
+ <point x="1130" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1195" type="line"/>
+ <point x="176" y="1211"/>
+ <point x="292" y="1215"/>
+ <point x="480" y="1215" type="curve" smooth="yes"/>
+ <point x="800" y="1215" type="line"/>
+ <point x="542" y="842"/>
+ <point x="409" y="566"/>
+ <point x="235" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..7526cc6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1395" type="line"/>
+ <point x="969" y="1465"/>
+ <point x="873" y="1485"/>
+ <point x="735" y="1485" type="curve" smooth="yes"/>
+ <point x="260" y="1485"/>
+ <point x="90" y="1069"/>
+ <point x="90" y="680" type="curve" smooth="yes"/>
+ <point x="90" y="223"/>
+ <point x="297" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="955" y="-25"/>
+ <point x="1155" y="179"/>
+ <point x="1155" y="470" type="curve" smooth="yes"/>
+ <point x="1155" y="729"/>
+ <point x="963" y="925"/>
+ <point x="675" y="925" type="curve" smooth="yes"/>
+ <point x="484" y="925"/>
+ <point x="338" y="810"/>
+ <point x="225" y="655" type="curve"/>
+ <point x="290" y="540" type="line"/>
+ <point x="372" y="643"/>
+ <point x="500" y="710"/>
+ <point x="655" y="710" type="curve" smooth="yes"/>
+ <point x="814" y="710"/>
+ <point x="900" y="601"/>
+ <point x="900" y="455" type="curve" smooth="yes"/>
+ <point x="900" y="329"/>
+ <point x="803" y="210"/>
+ <point x="656" y="210" type="curve" smooth="yes"/>
+ <point x="474" y="210"/>
+ <point x="355" y="386"/>
+ <point x="355" y="645" type="curve" smooth="yes"/>
+ <point x="355" y="1132"/>
+ <point x="528" y="1250"/>
+ <point x="725" y="1250" type="curve" smooth="yes"/>
+ <point x="821" y="1250"/>
+ <point x="923" y="1226"/>
+ <point x="1009" y="1140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..883bd62
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="885" type="line"/>
+ <point x="390" y="645" type="line"/>
+ <point x="480" y="645" type="line" smooth="yes"/>
+ <point x="706" y="645"/>
+ <point x="835" y="548"/>
+ <point x="835" y="425" type="curve" smooth="yes"/>
+ <point x="835" y="291"/>
+ <point x="708" y="210"/>
+ <point x="565" y="210" type="curve" smooth="yes"/>
+ <point x="405" y="210"/>
+ <point x="244" y="282"/>
+ <point x="135" y="405" type="curve"/>
+ <point x="100" y="130" type="line"/>
+ <point x="205" y="32"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="874" y="-25"/>
+ <point x="1120" y="170"/>
+ <point x="1120" y="405" type="curve" smooth="yes"/>
+ <point x="1120" y="672"/>
+ <point x="892" y="756"/>
+ <point x="750" y="780" type="curve"/>
+ <point x="892" y="809"/>
+ <point x="1070" y="957"/>
+ <point x="1070" y="1140" type="curve" smooth="yes"/>
+ <point x="1070" y="1354"/>
+ <point x="868" y="1485"/>
+ <point x="580" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="240" y="1416"/>
+ <point x="160" y="1325" type="curve"/>
+ <point x="195" y="1095" type="line"/>
+ <point x="308" y="1211"/>
+ <point x="436" y="1250"/>
+ <point x="590" y="1250" type="curve" smooth="yes"/>
+ <point x="689" y="1250"/>
+ <point x="791" y="1193"/>
+ <point x="791" y="1102" type="curve" smooth="yes"/>
+ <point x="791" y="994"/>
+ <point x="662" y="885"/>
+ <point x="480" y="885" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..1d73732
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="260" type="line"/>
+ <point x="1010" y="246"/>
+ <point x="942" y="245"/>
+ <point x="745" y="245" type="curve" smooth="yes"/>
+ <point x="480" y="245" type="line"/>
+ <point x="699" y="422"/>
+ <point x="1046" y="739"/>
+ <point x="1046" y="1065" type="curve" smooth="yes"/>
+ <point x="1046" y="1323"/>
+ <point x="850" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="196" y="1402"/>
+ <point x="105" y="1290" type="curve"/>
+ <point x="170" y="1050" type="line"/>
+ <point x="259" y="1158"/>
+ <point x="412" y="1235"/>
+ <point x="535" y="1235" type="curve" smooth="yes"/>
+ <point x="688" y="1235"/>
+ <point x="758" y="1133"/>
+ <point x="758" y="1015" type="curve" smooth="yes"/>
+ <point x="758" y="758"/>
+ <point x="381" y="415"/>
+ <point x="110" y="220" type="curve"/>
+ <point x="110" y="0" type="line"/>
+ <point x="1090" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..01f4532
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="715" type="curve" smooth="yes"/>
+ <point x="850" y="368"/>
+ <point x="762" y="205"/>
+ <point x="600" y="205" type="curve" smooth="yes"/>
+ <point x="432" y="205"/>
+ <point x="350" y="375"/>
+ <point x="350" y="745" type="curve" smooth="yes"/>
+ <point x="350" y="1093"/>
+ <point x="437" y="1255"/>
+ <point x="600" y="1255" type="curve" smooth="yes"/>
+ <point x="772" y="1255"/>
+ <point x="850" y="1086"/>
+ </contour>
+ <contour>
+ <point x="1135" y="740" type="curve" smooth="yes"/>
+ <point x="1135" y="1286"/>
+ <point x="950" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="291" y="1485"/>
+ <point x="65" y="1283"/>
+ <point x="65" y="720" type="curve" smooth="yes"/>
+ <point x="65" y="165"/>
+ <point x="271" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="911" y="-25"/>
+ <point x="1135" y="161"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..f8b49cd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1006" y="1316" type="line"/>
+ <point x="886" y="1374"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="150" y="1203"/>
+ <point x="150" y="1017" type="curve" smooth="yes"/>
+ <point x="150" y="830"/>
+ <point x="275" y="730"/>
+ <point x="540" y="623" type="curve" smooth="yes"/>
+ <point x="802" y="517"/>
+ <point x="851" y="472"/>
+ <point x="851" y="386" type="curve" smooth="yes"/>
+ <point x="851" y="267"/>
+ <point x="744" y="211"/>
+ <point x="586" y="211" type="curve" smooth="yes"/>
+ <point x="440" y="211"/>
+ <point x="297" y="281"/>
+ <point x="195" y="383" type="curve"/>
+ <point x="123" y="124" type="line"/>
+ <point x="216" y="49"/>
+ <point x="388" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="847" y="0"/>
+ <point x="1086" y="147"/>
+ <point x="1086" y="414" type="curve" smooth="yes"/>
+ <point x="1086" y="633"/>
+ <point x="927" y="723"/>
+ <point x="679" y="826" type="curve" smooth="yes"/>
+ <point x="431" y="929"/>
+ <point x="385" y="969"/>
+ <point x="385" y="1040" type="curve" smooth="yes"/>
+ <point x="385" y="1132"/>
+ <point x="466" y="1188"/>
+ <point x="613" y="1188" type="curve" smooth="yes"/>
+ <point x="741" y="1188"/>
+ <point x="876" y="1154"/>
+ <point x="949" y="1077" type="curve"/>
+ </contour>
+ <contour>
+ <point x="548" y="1600" type="line"/>
+ <point x="548" y="788" type="line"/>
+ <point x="518" y="726" type="line"/>
+ <point x="518" y="-220" type="line"/>
+ <point x="688" y="-220" type="line"/>
+ <point x="688" y="668" type="line"/>
+ <point x="718" y="734" type="line"/>
+ <point x="718" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..9eeb2ef
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="440" type="line"/>
+ <point x="1080" y="440" type="line"/>
+ <point x="1080" y="650" type="line"/>
+ <point x="120" y="650" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="810" type="line"/>
+ <point x="1080" y="810" type="line"/>
+ <point x="1080" y="1020" type="line"/>
+ <point x="120" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..cfdf1a6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="780"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="530" y="500" type="line"/>
+ <point x="536" y="790"/>
+ <point x="531" y="1076"/>
+ <point x="570" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="790"/>
+ <point x="275" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="230" y="150" type="curve" smooth="yes"/>
+ <point x="230" y="46"/>
+ <point x="304" y="-25"/>
+ <point x="405" y="-25" type="curve" smooth="yes"/>
+ <point x="507" y="-25"/>
+ <point x="580" y="46"/>
+ <point x="580" y="150" type="curve" smooth="yes"/>
+ <point x="580" y="252"/>
+ <point x="507" y="325"/>
+ <point x="405" y="325" type="curve" smooth="yes"/>
+ <point x="304" y="325"/>
+ <point x="230" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..b05d598
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="710"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..650e4d2
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="245" type="line"/>
+ <point x="1090" y="635" type="line"/>
+ <point x="1090" y="825" type="line"/>
+ <point x="130" y="1215" type="line"/>
+ <point x="130" y="985" type="line"/>
+ <point x="810" y="730" type="line"/>
+ <point x="130" y="475" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..83a5f21
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="640"/>
+ <unicode hex="0060"/>
+ <anchor x="500" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="0" y="1600" type="line"/>
+ <point x="400" y="1200" type="line"/>
+ <point x="640" y="1200" type="line"/>
+ <point x="350" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..d79c70a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="880"/>
+ <unicode hex="2010"/>
+ <anchor x="440" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="70" y="525" type="line"/>
+ <point x="810" y="525" type="line"/>
+ <point x="810" y="735" type="line"/>
+ <point x="70" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..b88bdd4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="895"/>
+ <unicode hex="002D"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="525" type="line"/>
+ <point x="815" y="525" type="line"/>
+ <point x="815" y="735" type="line"/>
+ <point x="80" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..916f8cf
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="895"/>
+ <unicode hex="00AD"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ab92cf3
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1070" y="475" type="line"/>
+ <point x="390" y="730" type="line"/>
+ <point x="1070" y="985" type="line"/>
+ <point x="1070" y="1215" type="line"/>
+ <point x="110" y="825" type="line"/>
+ <point x="110" y="635" type="line"/>
+ <point x="1070" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..2370b56
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="895" y="-179" type="line"/>
+ <point x="828" y="-160"/>
+ <point x="704" y="-122"/>
+ <point x="685" y="-100" type="curve" smooth="yes"/>
+ <point x="650" y="-60"/>
+ <point x="663" y="411"/>
+ <point x="645" y="445" type="curve" smooth="yes"/>
+ <point x="621" y="491"/>
+ <point x="483" y="580"/>
+ <point x="483" y="615" type="curve" smooth="yes"/>
+ <point x="483" y="650"/>
+ <point x="620" y="740"/>
+ <point x="643" y="785" type="curve" smooth="yes"/>
+ <point x="661" y="820"/>
+ <point x="650" y="1289"/>
+ <point x="685" y="1330" type="curve" smooth="yes"/>
+ <point x="702" y="1351"/>
+ <point x="807" y="1390"/>
+ <point x="870" y="1409" type="curve"/>
+ <point x="820" y="1640" type="line"/>
+ <point x="692" y="1613"/>
+ <point x="502" y="1562"/>
+ <point x="455" y="1515" type="curve" smooth="yes"/>
+ <point x="381" y="1442"/>
+ <point x="392" y="852"/>
+ <point x="370" y="820" type="curve" smooth="yes"/>
+ <point x="340" y="777"/>
+ <point x="170" y="670"/>
+ <point x="170" y="615" type="curve" smooth="yes"/>
+ <point x="170" y="560"/>
+ <point x="340" y="453"/>
+ <point x="370" y="410" type="curve" smooth="yes"/>
+ <point x="392" y="378"/>
+ <point x="380" y="-213"/>
+ <point x="455" y="-285" type="curve" smooth="yes"/>
+ <point x="505" y="-333"/>
+ <point x="709" y="-383"/>
+ <point x="845" y="-410" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..99e1982
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="686" y="-240" type="line"/>
+ <point x="462" y="11"/>
+ <point x="376" y="335"/>
+ <point x="376" y="635" type="curve" smooth="yes"/>
+ <point x="376" y="938"/>
+ <point x="466" y="1261"/>
+ <point x="676" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..dcf019b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="710" y="-410" type="line"/>
+ <point x="710" y="-200" type="line"/>
+ <point x="470" y="-200" type="line"/>
+ <point x="470" y="1390" type="line"/>
+ <point x="710" y="1390" type="line"/>
+ <point x="710" y="1600" type="line"/>
+ <point x="190" y="1600" type="line"/>
+ <point x="190" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..225c4ce
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-350" type="line"/>
+ <point x="1274" y="-350" type="line"/>
+ <point x="1274" y="-140" type="line"/>
+ <point x="0" y="-140" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..cf1b900
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1485"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..9fa1f45
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1485"/>
+ <unicode hex="0041"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..79101d0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1485"/>
+ <unicode hex="00C4"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1312" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..df49e47
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1385"/>
+ <unicode hex="0042"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="1248" type="line"/>
+ <point x="487" y="1250"/>
+ <point x="562" y="1253"/>
+ <point x="631" y="1253" type="curve" smooth="yes"/>
+ <point x="818" y="1253"/>
+ <point x="897" y="1196"/>
+ <point x="897" y="1077" type="curve" smooth="yes"/>
+ <point x="897" y="951"/>
+ <point x="794" y="875"/>
+ <point x="605" y="875" type="curve" smooth="yes"/>
+ <point x="450" y="875" type="line"/>
+ </contour>
+ <contour>
+ <point x="1245" y="430" type="curve" smooth="yes"/>
+ <point x="1245" y="672"/>
+ <point x="1084" y="760"/>
+ <point x="935" y="800" type="curve"/>
+ <point x="1065" y="850"/>
+ <point x="1170" y="947"/>
+ <point x="1170" y="1110" type="curve" smooth="yes"/>
+ <point x="1170" y="1378"/>
+ <point x="937" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="422" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="455" type="line" smooth="yes"/>
+ <point x="165" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="401" y="-10"/>
+ <point x="631" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1245" y="181"/>
+ </contour>
+ <contour>
+ <point x="450" y="658" type="line"/>
+ <point x="643" y="658" type="line" smooth="yes"/>
+ <point x="853" y="658"/>
+ <point x="972" y="587"/>
+ <point x="972" y="450" type="curve" smooth="yes"/>
+ <point x="972" y="269"/>
+ <point x="826" y="215"/>
+ <point x="652" y="215" type="curve" smooth="yes"/>
+ <point x="552" y="215"/>
+ <point x="483" y="218"/>
+ <point x="450" y="220" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..78c5238
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1385"/>
+ <unicode hex="0043"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1215" y="405" type="line"/>
+ <point x="1105" y="293"/>
+ <point x="940" y="220"/>
+ <point x="790" y="220" type="curve" smooth="yes"/>
+ <point x="531" y="220"/>
+ <point x="375" y="413"/>
+ <point x="375" y="735" type="curve" smooth="yes"/>
+ <point x="375" y="1074"/>
+ <point x="557" y="1245"/>
+ <point x="800" y="1245" type="curve" smooth="yes"/>
+ <point x="931" y="1245"/>
+ <point x="1053" y="1205"/>
+ <point x="1180" y="1105" type="curve"/>
+ <point x="1250" y="1345" type="line"/>
+ <point x="1106" y="1449"/>
+ <point x="969" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="90" y="1225"/>
+ <point x="90" y="710" type="curve" smooth="yes"/>
+ <point x="90" y="260"/>
+ <point x="341" y="-25"/>
+ <point x="755" y="-25" type="curve" smooth="yes"/>
+ <point x="926" y="-25"/>
+ <point x="1142" y="42"/>
+ <point x="1265" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..4dd3b9c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1485"/>
+ <unicode hex="0044"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="800" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="455" type="line"/>
+ <point x="164" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="474" y="-10"/>
+ <point x="609" y="-10" type="curve" smooth="yes"/>
+ <point x="919" y="-10"/>
+ <point x="1370" y="145"/>
+ <point x="1370" y="740" type="curve" smooth="yes"/>
+ <point x="1370" y="1374"/>
+ <point x="906" y="1470"/>
+ <point x="630" y="1470" type="curve" smooth="yes"/>
+ <point x="487" y="1470"/>
+ <point x="239" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1241" type="line"/>
+ <point x="492" y="1243"/>
+ <point x="582" y="1246"/>
+ <point x="637" y="1246" type="curve" smooth="yes"/>
+ <point x="897" y="1246"/>
+ <point x="1078" y="1118"/>
+ <point x="1078" y="720" type="curve" smooth="yes"/>
+ <point x="1078" y="357"/>
+ <point x="856" y="221"/>
+ <point x="633" y="221" type="curve" smooth="yes"/>
+ <point x="554" y="221"/>
+ <point x="489" y="227"/>
+ <point x="450" y="231" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..9572dfd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1212"/>
+ <unicode hex="0045"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1004" y="0" name="O"/>
+ <anchor x="1247" y="1200" name="R"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="875" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1072" y="1230" type="line"/>
+ <point x="1072" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1102" y="0" type="line"/>
+ <point x="1102" y="245" type="line"/>
+ <point x="1024" y="231"/>
+ <point x="899" y="230"/>
+ <point x="708" y="230" type="curve" smooth="yes"/>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="650" type="line"/>
+ <point x="997" y="650" type="line"/>
+ <point x="997" y="875" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9f4f14b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1200"/>
+ <unicode hex="0046"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="630" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1090" y="1230" type="line"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1217"/>
+ <point x="165" y="1020" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="450" y="73"/>
+ <point x="450" y="222"/>
+ <point x="450" y="408" type="curve" smooth="yes"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1005" y="635" type="line"/>
+ <point x="1005" y="860" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..8358b8a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1472"/>
+ <unicode hex="0047"/>
+ <anchor x="807" y="0" name="H"/>
+ <anchor x="807" y="-100" name="L"/>
+ <anchor x="807" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1337" y="785" type="line"/>
+ <point x="767" y="785" type="line"/>
+ <point x="767" y="560" type="line"/>
+ <point x="1082" y="560" type="line"/>
+ <point x="1082" y="294" type="line"/>
+ <point x="966" y="236"/>
+ <point x="883" y="220"/>
+ <point x="769" y="220" type="curve" smooth="yes"/>
+ <point x="532" y="220"/>
+ <point x="375" y="420"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="545" y="1245"/>
+ <point x="810" y="1245" type="curve" smooth="yes"/>
+ <point x="953" y="1245"/>
+ <point x="1097" y="1205"/>
+ <point x="1236" y="1107" type="curve"/>
+ <point x="1322" y="1345" type="line"/>
+ <point x="1137" y="1462"/>
+ <point x="989" y="1485"/>
+ <point x="818" y="1485" type="curve" smooth="yes"/>
+ <point x="403" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="377" y="-25"/>
+ <point x="777" y="-25" type="curve" smooth="yes"/>
+ <point x="960" y="-25"/>
+ <point x="1120" y="11"/>
+ <point x="1337" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..2e2e5e6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1515"/>
+ <unicode hex="0048"/>
+ <anchor x="305" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="1460" type="line"/>
+ <point x="1040" y="860" type="line"/>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1227"/>
+ <point x="165" y="1030" type="curve" smooth="yes"/>
+ <point x="165" y="430" type="line" smooth="yes"/>
+ <point x="165" y="233"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="450" y="0"/>
+ <point x="450" y="0" type="curve"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1040" y="635" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1340" y="0"/>
+ <point x="1340" y="0" type="curve"/>
+ <point x="1325" y="80"/>
+ <point x="1325" y="233"/>
+ <point x="1325" y="430" type="curve" smooth="yes"/>
+ <point x="1325" y="1030" type="line" smooth="yes"/>
+ <point x="1325" y="1227"/>
+ <point x="1325" y="1380"/>
+ <point x="1340" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..388486b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1045"/>
+ <unicode hex="0049"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="516" y="-100" name="L"/>
+ <anchor x="712" y="0" name="O"/>
+ <anchor x="1014" y="1200" name="R"/>
+ <anchor x="520" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1460" type="line"/>
+ <point x="130" y="1255" type="line"/>
+ <point x="370" y="1255" type="line"/>
+ <point x="370" y="205" type="line"/>
+ <point x="130" y="205" type="line"/>
+ <point x="130" y="0" type="line"/>
+ <point x="895" y="0" type="line"/>
+ <point x="895" y="205" type="line"/>
+ <point x="655" y="205" type="line"/>
+ <point x="655" y="1255" type="line"/>
+ <point x="895" y="1255" type="line"/>
+ <point x="895" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..8ee9ce3
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1030"/>
+ <unicode hex="004A"/>
+ <anchor x="415" y="-100" name="L"/>
+ <anchor x="705" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="555" y="1460" type="line"/>
+ <point x="568" y="1354"/>
+ <point x="570" y="1175"/>
+ <point x="570" y="980" type="curve" smooth="yes"/>
+ <point x="570" y="558" type="line" smooth="yes"/>
+ <point x="570" y="383"/>
+ <point x="540" y="227"/>
+ <point x="365" y="227" type="curve" smooth="yes"/>
+ <point x="264" y="227"/>
+ <point x="153" y="270"/>
+ <point x="79" y="347" type="curve"/>
+ <point x="30" y="90" type="line"/>
+ <point x="109" y="9"/>
+ <point x="258" y="-25"/>
+ <point x="363" y="-25" type="curve" smooth="yes"/>
+ <point x="658" y="-25"/>
+ <point x="855" y="129"/>
+ <point x="855" y="535" type="curve" smooth="yes"/>
+ <point x="855" y="618"/>
+ <point x="855" y="1460"/>
+ <point x="855" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..abb6ff7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1430"/>
+ <unicode hex="004B"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="944" y="1460" type="line"/>
+ <point x="371" y="732" type="line"/>
+ <point x="579" y="676" type="line"/>
+ <point x="1280" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="389" y="731" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ <point x="614" y="829" type="line"/>
+ </contour>
+ <contour>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="450" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..e1c1e2e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1130"/>
+ <unicode hex="004C"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="650" y="1200" name="R"/>
+ <anchor x="620" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1085" y="0" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="1008" y="231"/>
+ <point x="855" y="230"/>
+ <point x="666" y="230" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..8da241e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1855"/>
+ <unicode hex="004D"/>
+ <anchor x="915" y="-100" name="L"/>
+ <anchor x="915" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="275" type="line"/>
+ <point x="575" y="1460" type="line"/>
+ <point x="315" y="1460" type="line"/>
+ <point x="436" y="1170" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1065" y="0" type="line"/>
+ <point x="1397" y="1170" type="line"/>
+ <point x="1517" y="1460" type="line"/>
+ <point x="1260" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="220" y="1460" type="line"/>
+ <point x="220" y="1460"/>
+ <point x="176" y="198"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="420" y="0" type="line"/>
+ <point x="449" y="1205" type="line"/>
+ <point x="485" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1680" y="0" type="line"/>
+ <point x="1651" y="198"/>
+ <point x="1610" y="1460"/>
+ <point x="1610" y="1460" type="curve"/>
+ <point x="1340" y="1460" type="line"/>
+ <point x="1385" y="1205" type="line"/>
+ <point x="1410" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..aa2b5c4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1545"/>
+ <unicode hex="004E"/>
+ <anchor x="1240" y="0" name="H"/>
+ <anchor x="765" y="-100" name="L"/>
+ <anchor x="765" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="223" y="1310" type="line"/>
+ <point x="1095" y="0" type="line"/>
+ <point x="1297" y="150" type="line"/>
+ <point x="425" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1095" y="0" type="line"/>
+ <point x="1355" y="0" type="line"/>
+ <point x="1355" y="1025" type="line" smooth="yes"/>
+ <point x="1355" y="1222"/>
+ <point x="1356" y="1380"/>
+ <point x="1370" y="1460" type="curve"/>
+ <point x="1095" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="425" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..10479ad
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1500"/>
+ <unicode hex="004F"/>
+ <anchor x="740" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="976" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="740" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="940" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="1072" y="-25"/>
+ <point x="1385" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..18e9ee0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1275"/>
+ <unicode hex="0050"/>
+ <anchor x="685" y="-100" name="L"/>
+ <anchor x="685" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="523" type="line"/>
+ <point x="515" y="516"/>
+ <point x="575" y="513"/>
+ <point x="648" y="513" type="curve" smooth="yes"/>
+ <point x="977" y="513"/>
+ <point x="1200" y="702"/>
+ <point x="1200" y="1010" type="curve" smooth="yes"/>
+ <point x="1200" y="1316"/>
+ <point x="981" y="1470"/>
+ <point x="658" y="1470" type="curve" smooth="yes"/>
+ <point x="445" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="237"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="506" y="1243"/>
+ <point x="544" y="1245"/>
+ <point x="622" y="1245" type="curve" smooth="yes"/>
+ <point x="833" y="1245"/>
+ <point x="915" y="1145"/>
+ <point x="915" y="1000" type="curve" smooth="yes"/>
+ <point x="915" y="820"/>
+ <point x="811" y="730"/>
+ <point x="618" y="730" type="curve" smooth="yes"/>
+ <point x="556" y="730"/>
+ <point x="493" y="733"/>
+ <point x="450" y="740" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..433087c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1545"/>
+ <unicode hex="0051"/>
+ <anchor x="747" y="-270" name="L"/>
+ <anchor x="747" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="840" y="-23"/>
+ <point x="889" y="-15" type="curve"/>
+ <point x="958" y="-15"/>
+ <point x="1266" y="-228"/>
+ <point x="1350" y="-228" type="curve" smooth="yes"/>
+ <point x="1424" y="-228"/>
+ <point x="1502" y="-68"/>
+ <point x="1535" y="-15" type="curve"/>
+ <point x="1394" y="1"/>
+ <point x="1277" y="68"/>
+ <point x="1146" y="142" type="curve"/>
+ <point x="1294" y="283"/>
+ <point x="1385" y="471"/>
+ </contour>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="943" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..6103056
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1380"/>
+ <unicode hex="0052"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="660" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="585" type="line"/>
+ <point x="625" y="585" type="line" smooth="yes"/>
+ <point x="910" y="585"/>
+ <point x="1175" y="723"/>
+ <point x="1175" y="1040" type="curve" smooth="yes"/>
+ <point x="1175" y="1329"/>
+ <point x="961" y="1470"/>
+ <point x="650" y="1470" type="curve" smooth="yes"/>
+ <point x="416" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="238"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="503" y="1243"/>
+ <point x="537" y="1245"/>
+ <point x="615" y="1245" type="curve" smooth="yes"/>
+ <point x="792" y="1245"/>
+ <point x="890" y="1186"/>
+ <point x="890" y="1035" type="curve" smooth="yes"/>
+ <point x="890" y="859"/>
+ <point x="780" y="800"/>
+ <point x="605" y="800" type="curve" smooth="yes"/>
+ <point x="450" y="800" type="line"/>
+ </contour>
+ <contour>
+ <point x="556" y="635" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1330" y="0" type="line"/>
+ <point x="1263" y="73"/>
+ <point x="827" y="687"/>
+ <point x="827" y="687" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..486ff77
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1243"/>
+ <unicode hex="0053"/>
+ <anchor x="616" y="0" name="H"/>
+ <anchor x="616" y="-100" name="L"/>
+ <anchor x="616" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="1395" type="line"/>
+ <point x="932" y="1458"/>
+ <point x="810" y="1485"/>
+ <point x="640" y="1485" type="curve" smooth="yes"/>
+ <point x="280" y="1485"/>
+ <point x="130" y="1239"/>
+ <point x="130" y="1060" type="curve" smooth="yes"/>
+ <point x="130" y="882"/>
+ <point x="196" y="754"/>
+ <point x="510" y="655" type="curve" smooth="yes"/>
+ <point x="800" y="563"/>
+ <point x="851" y="504"/>
+ <point x="851" y="420" type="curve" smooth="yes"/>
+ <point x="851" y="293"/>
+ <point x="730" y="220"/>
+ <point x="600" y="220" type="curve" smooth="yes"/>
+ <point x="439" y="220"/>
+ <point x="283" y="270"/>
+ <point x="140" y="385" type="curve"/>
+ <point x="90" y="110" type="line"/>
+ <point x="201" y="31"/>
+ <point x="391" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="895" y="-25"/>
+ <point x="1138" y="169"/>
+ <point x="1138" y="455" type="curve" smooth="yes"/>
+ <point x="1138" y="666"/>
+ <point x="994" y="787"/>
+ <point x="727" y="870" type="curve" smooth="yes"/>
+ <point x="464" y="952"/>
+ <point x="416" y="994"/>
+ <point x="416" y="1080" type="curve" smooth="yes"/>
+ <point x="416" y="1162"/>
+ <point x="506" y="1245"/>
+ <point x="630" y="1245" type="curve" smooth="yes"/>
+ <point x="771" y="1245"/>
+ <point x="873" y="1209"/>
+ <point x="1030" y="1130" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..5f87c10
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1275"/>
+ <unicode hex="0054"/>
+ <anchor x="632" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="632" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1210" type="line"/>
+ <point x="117" y="1227"/>
+ <point x="196" y="1230"/>
+ <point x="276" y="1230" type="curve" smooth="yes"/>
+ <point x="488" y="1230" type="line"/>
+ <point x="488" y="413" type="line" smooth="yes"/>
+ <point x="488" y="226"/>
+ <point x="485" y="76"/>
+ <point x="468" y="0" type="curve"/>
+ <point x="793" y="0" type="line"/>
+ <point x="776" y="76"/>
+ <point x="773" y="226"/>
+ <point x="773" y="413" type="curve" smooth="yes"/>
+ <point x="773" y="1230" type="line"/>
+ <point x="989" y="1230" type="line" smooth="yes"/>
+ <point x="1070" y="1230"/>
+ <point x="1148" y="1227"/>
+ <point x="1220" y="1210" type="curve"/>
+ <point x="1220" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..b3f6b6f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1490"/>
+ <unicode hex="0055"/>
+ <anchor x="732" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="950" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1015" y="1460" type="line"/>
+ <point x="1015" y="560" type="line" smooth="yes"/>
+ <point x="1015" y="344"/>
+ <point x="952" y="204"/>
+ <point x="735" y="204" type="curve" smooth="yes"/>
+ <point x="513" y="204"/>
+ <point x="450" y="344"/>
+ <point x="450" y="560" type="curve" smooth="yes"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="164" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="515" type="line" smooth="yes"/>
+ <point x="165" y="190"/>
+ <point x="356" y="-25"/>
+ <point x="735" y="-25" type="curve" smooth="yes"/>
+ <point x="1110" y="-25"/>
+ <point x="1300" y="190"/>
+ <point x="1300" y="515" type="curve" smooth="yes"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1232"/>
+ <point x="1302" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..3468784
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1465"/>
+ <unicode hex="0056"/>
+ <anchor x="730" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="930" y="0" name="O"/>
+ <anchor x="722" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1460" type="line"/>
+ <point x="722" y="260" type="line"/>
+ <point x="330" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="58" y="1378"/>
+ <point x="96" y="1288"/>
+ <point x="165" y="1095" type="curve" smooth="yes"/>
+ <point x="555" y="0" type="line"/>
+ <point x="890" y="0" type="line"/>
+ <point x="1280" y="1095" type="line" smooth="yes"/>
+ <point x="1348" y="1289"/>
+ <point x="1384" y="1378"/>
+ <point x="1420" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..98329a0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2135"/>
+ <unicode hex="0057"/>
+ <anchor x="1052" y="-100" name="L"/>
+ <anchor x="1052" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1490" y="0" type="line"/>
+ <point x="1655" y="0" type="line"/>
+ <point x="1965" y="1095" type="line" smooth="yes"/>
+ <point x="2020" y="1289"/>
+ <point x="2048" y="1378"/>
+ <point x="2080" y="1460" type="curve"/>
+ <point x="1770" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="995" y="1305" type="line"/>
+ <point x="1340" y="0" type="line"/>
+ <point x="1510" y="0" type="line"/>
+ <point x="1530" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="600" y="0" type="line"/>
+ <point x="765" y="0" type="line"/>
+ <point x="1105" y="1305" type="line"/>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="580" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="30" y="1460" type="line"/>
+ <point x="61" y="1381"/>
+ <point x="92" y="1286"/>
+ <point x="145" y="1095" type="curve" smooth="yes"/>
+ <point x="450" y="0" type="line"/>
+ <point x="620" y="0" type="line"/>
+ <point x="640" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..17126dd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1365"/>
+ <unicode hex="0058"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="0" type="line"/>
+ <point x="1310" y="0" type="line"/>
+ <point x="1249" y="82"/>
+ <point x="1211" y="125"/>
+ <point x="1083" y="336" type="curve" smooth="yes"/>
+ <point x="400" y="1460" type="line"/>
+ <point x="75" y="1460" type="line"/>
+ <point x="139" y="1376"/>
+ <point x="189" y="1317"/>
+ <point x="315" y="1110" type="curve"/>
+ </contour>
+ <contour>
+ <point x="605" y="947" type="line"/>
+ <point x="255" y="340" type="line" smooth="yes"/>
+ <point x="133" y="128"/>
+ <point x="93" y="86"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="700" y="609" type="line"/>
+ </contour>
+ <contour>
+ <point x="750" y="609" type="line"/>
+ <point x="1040" y="1110" type="line" smooth="yes"/>
+ <point x="1153" y="1306"/>
+ <point x="1211" y="1383"/>
+ <point x="1275" y="1460" type="curve"/>
+ <point x="950" y="1460" type="line"/>
+ <point x="655" y="947" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..a7a345d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1364"/>
+ <unicode hex="0059"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="560" type="line"/>
+ <point x="782" y="675" type="line"/>
+ <point x="357" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="137" y="1311"/>
+ <point x="203" y="1197"/>
+ <point x="280" y="1065" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="770" y="560" type="line"/>
+ <point x="1069" y="1065" type="line" smooth="yes"/>
+ <point x="1145" y="1195"/>
+ <point x="1201" y="1291"/>
+ <point x="1319" y="1460" type="curve"/>
+ <point x="997" y="1460" type="line"/>
+ <point x="577" y="675" type="line"/>
+ </contour>
+ <contour>
+ <point x="530" y="695" type="line"/>
+ <point x="530" y="435" type="line" smooth="yes"/>
+ <point x="530" y="238"/>
+ <point x="530" y="80"/>
+ <point x="515" y="0" type="curve"/>
+ <point x="830" y="0" type="line"/>
+ <point x="815" y="80"/>
+ <point x="815" y="238"/>
+ <point x="815" y="435" type="curve" smooth="yes"/>
+ <point x="815" y="695" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..7885750
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1205"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1078" y="112"/>
+ <point x="1050" y="226"/>
+ <point x="1050" y="370" type="curve"/>
+ <point x="1050" y="760" type="line"/>
+ <point x="1050" y="919"/>
+ <point x="877" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="446" y="1040"/>
+ <point x="330" y="994"/>
+ <point x="216" y="950" type="curve"/>
+ <point x="210" y="868"/>
+ <point x="207" y="735"/>
+ <point x="206" y="691" type="curve"/>
+ <point x="323" y="773"/>
+ <point x="424" y="816"/>
+ <point x="530" y="816" type="curve" smooth="yes"/>
+ <point x="680" y="816"/>
+ <point x="770" y="785"/>
+ <point x="770" y="710" type="curve" smooth="yes"/>
+ <point x="770" y="660" type="line"/>
+ <point x="729" y="659"/>
+ <point x="569" y="649"/>
+ <point x="500" y="642" type="curve" smooth="yes"/>
+ <point x="191" y="612"/>
+ <point x="100" y="438"/>
+ <point x="100" y="285" type="curve" smooth="yes"/>
+ <point x="100" y="121"/>
+ <point x="245" y="-25"/>
+ <point x="445" y="-25" type="curve" smooth="yes"/>
+ <point x="562" y="-25"/>
+ <point x="688" y="23"/>
+ <point x="800" y="135" type="curve"/>
+ <point x="814" y="79"/>
+ <point x="838" y="28"/>
+ <point x="850" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="355" type="line"/>
+ <point x="674" y="225"/>
+ <point x="600" y="205"/>
+ <point x="518" y="205" type="curve" smooth="yes"/>
+ <point x="436" y="205"/>
+ <point x="380" y="256"/>
+ <point x="380" y="320" type="curve" smooth="yes"/>
+ <point x="380" y="386"/>
+ <point x="422" y="442"/>
+ <point x="560" y="457" type="curve" smooth="yes"/>
+ <point x="611" y="463"/>
+ <point x="730" y="474"/>
+ <point x="770" y="475" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f1c66a5
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E1"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="550" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..218d694
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E2"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="602" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..bb0ea2c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E4"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..3153364
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E0"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="650" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..3b8da5a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E5"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="612" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..b3a8515
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E3"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..6cc6671
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1215"/>
+ <unicode hex="0062"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1215" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1488"/>
+ <point x="135" y="1273"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="936"/>
+ <point x="135" y="228"/>
+ <point x="135" y="65" type="curve"/>
+ <point x="286" y="26"/>
+ <point x="457" y="-25"/>
+ <point x="650" y="-25" type="curve" smooth="yes"/>
+ <point x="939" y="-25"/>
+ <point x="1125" y="197"/>
+ <point x="1125" y="540" type="curve" smooth="yes"/>
+ <point x="1125" y="832"/>
+ <point x="986" y="1040"/>
+ <point x="789" y="1040" type="curve" smooth="yes"/>
+ <point x="626" y="1040"/>
+ <point x="505" y="956"/>
+ <point x="415" y="845" type="curve"/>
+ <point x="415" y="934"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="415" y="585" type="line"/>
+ <point x="471" y="709"/>
+ <point x="580" y="795"/>
+ <point x="683" y="795" type="curve" smooth="yes"/>
+ <point x="793" y="795"/>
+ <point x="855" y="684"/>
+ <point x="855" y="505" type="curve" smooth="yes"/>
+ <point x="855" y="317"/>
+ <point x="750" y="190"/>
+ <point x="605" y="190" type="curve" smooth="yes"/>
+ <point x="538" y="190"/>
+ <point x="492" y="204"/>
+ <point x="415" y="240" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..19a8a6d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1022"/>
+ <unicode hex="0063"/>
+ <anchor x="555" y="0" name="H"/>
+ <anchor x="575" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="575" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="922" y="969" type="line"/>
+ <point x="849" y="1007"/>
+ <point x="744" y="1040"/>
+ <point x="612" y="1040" type="curve" smooth="yes"/>
+ <point x="295" y="1040"/>
+ <point x="90" y="802"/>
+ <point x="90" y="490" type="curve" smooth="yes"/>
+ <point x="90" y="161"/>
+ <point x="309" y="-25"/>
+ <point x="578" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="831" y="8"/>
+ <point x="932" y="70" type="curve"/>
+ <point x="902" y="314" type="line"/>
+ <point x="815" y="245"/>
+ <point x="737" y="205"/>
+ <point x="617" y="205" type="curve" smooth="yes"/>
+ <point x="467" y="205"/>
+ <point x="370" y="324"/>
+ <point x="370" y="500" type="curve" smooth="yes"/>
+ <point x="370" y="694"/>
+ <point x="478" y="810"/>
+ <point x="617" y="810" type="curve" smooth="yes"/>
+ <point x="720" y="810"/>
+ <point x="788" y="779"/>
+ <point x="878" y="717" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fc1cc76
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="595" y="0" name="H"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1600" type="line"/>
+ <point x="810" y="1600" type="line"/>
+ <point x="829" y="1516"/>
+ <point x="835" y="1395"/>
+ <point x="835" y="1235" type="curve" smooth="yes"/>
+ <point x="835" y="955" type="line"/>
+ <point x="763" y="999"/>
+ <point x="669" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="319" y="1040"/>
+ <point x="100" y="814"/>
+ <point x="100" y="460" type="curve" smooth="yes"/>
+ <point x="100" y="167"/>
+ <point x="268" y="-25"/>
+ <point x="515" y="-25" type="curve" smooth="yes"/>
+ <point x="654" y="-25"/>
+ <point x="770" y="47"/>
+ <point x="860" y="175" type="curve"/>
+ <point x="877" y="105"/>
+ <point x="900" y="32"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1147" y="112"/>
+ <point x="1115" y="278"/>
+ <point x="1115" y="530" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="835" y="400" type="line"/>
+ <point x="787" y="300"/>
+ <point x="676" y="200"/>
+ <point x="570" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="380" y="300"/>
+ <point x="380" y="490" type="curve" smooth="yes"/>
+ <point x="380" y="685"/>
+ <point x="485" y="800"/>
+ <point x="590" y="800" type="curve" smooth="yes"/>
+ <point x="683" y="800"/>
+ <point x="743" y="783"/>
+ <point x="835" y="738" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..5c67455
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1110"/>
+ <unicode hex="0065"/>
+ <anchor x="569" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="900" y="0" name="O"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="537" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1010" y="450" type="line"/>
+ <point x="1010" y="469"/>
+ <point x="1009" y="513"/>
+ <point x="1009" y="532" type="curve" smooth="yes"/>
+ <point x="1009" y="782"/>
+ <point x="924" y="1040"/>
+ <point x="589" y="1040" type="curve" smooth="yes"/>
+ <point x="281" y="1040"/>
+ <point x="90" y="826"/>
+ <point x="90" y="495" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="324" y="-25"/>
+ <point x="589" y="-25" type="curve" smooth="yes"/>
+ <point x="745" y="-25"/>
+ <point x="871" y="2"/>
+ <point x="1015" y="75" type="curve"/>
+ <point x="994" y="306" type="line"/>
+ <point x="870" y="232"/>
+ <point x="745" y="205"/>
+ <point x="614" y="205" type="curve" smooth="yes"/>
+ <point x="448" y="205"/>
+ <point x="362" y="293"/>
+ <point x="362" y="505" type="curve" smooth="yes"/>
+ <point x="362" y="739"/>
+ <point x="431" y="830"/>
+ <point x="575" y="830" type="curve" smooth="yes"/>
+ <point x="693" y="830"/>
+ <point x="755" y="770"/>
+ <point x="755" y="630" type="curve"/>
+ <point x="242" y="630" type="line"/>
+ <point x="242" y="450" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..8a5996d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="800"/>
+ <unicode hex="0066"/>
+ <anchor x="380" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="600" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="30" y="805" type="line"/>
+ <point x="230" y="805" type="line"/>
+ <point x="230" y="0" type="line"/>
+ <point x="540" y="0" type="line"/>
+ <point x="518" y="105"/>
+ <point x="510" y="300"/>
+ <point x="510" y="494" type="curve" smooth="yes"/>
+ <point x="510" y="805" type="line"/>
+ <point x="765" y="805" type="line"/>
+ <point x="765" y="1005" type="line"/>
+ <point x="510" y="1005" type="line"/>
+ <point x="510" y="1159" type="line" smooth="yes"/>
+ <point x="510" y="1322"/>
+ <point x="552" y="1387"/>
+ <point x="648" y="1387" type="curve" smooth="yes"/>
+ <point x="697" y="1387"/>
+ <point x="765" y="1362"/>
+ <point x="808" y="1322" type="curve"/>
+ <point x="865" y="1550" type="line"/>
+ <point x="806" y="1588"/>
+ <point x="699" y="1620"/>
+ <point x="625" y="1620" type="curve" smooth="yes"/>
+ <point x="378" y="1620"/>
+ <point x="230" y="1470"/>
+ <point x="230" y="1170" type="curve" smooth="yes"/>
+ <point x="230" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..871e4e9
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1170"/>
+ <unicode hex="0067"/>
+ <anchor x="597" y="-465" name="H"/>
+ <anchor x="597" y="-535" name="L"/>
+ <anchor x="1187" y="1000" name="R"/>
+ <anchor x="567" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="352" y="395" type="line"/>
+ <point x="256" y="357"/>
+ <point x="202" y="275"/>
+ <point x="202" y="215" type="curve" smooth="yes"/>
+ <point x="202" y="113"/>
+ <point x="280" y="12"/>
+ <point x="547" y="-23" type="curve" smooth="yes"/>
+ <point x="797" y="-50"/>
+ <point x="870" y="-99"/>
+ <point x="870" y="-170" type="curve" smooth="yes"/>
+ <point x="870" y="-229"/>
+ <point x="748" y="-302"/>
+ <point x="602" y="-302" type="curve" smooth="yes"/>
+ <point x="418" y="-302"/>
+ <point x="330" y="-235"/>
+ <point x="330" y="-180" type="curve" smooth="yes"/>
+ <point x="330" y="-121"/>
+ <point x="357" y="-56"/>
+ <point x="562" y="20" type="curve"/>
+ <point x="554" y="49"/>
+ <point x="322" y="75"/>
+ <point x="322" y="75" type="curve"/>
+ <point x="138" y="2"/>
+ <point x="50" y="-89"/>
+ <point x="50" y="-200" type="curve" smooth="yes"/>
+ <point x="50" y="-409"/>
+ <point x="341" y="-505"/>
+ <point x="587" y="-505" type="curve" smooth="yes"/>
+ <point x="843" y="-505"/>
+ <point x="1150" y="-375"/>
+ <point x="1150" y="-160" type="curve" smooth="yes"/>
+ <point x="1150" y="13"/>
+ <point x="1049" y="125"/>
+ <point x="752" y="165" type="curve" smooth="yes"/>
+ <point x="497" y="191"/>
+ <point x="433" y="216"/>
+ <point x="433" y="255" type="curve" smooth="yes"/>
+ <point x="433" y="285"/>
+ <point x="472" y="322"/>
+ <point x="588" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1102" y="1040" type="line"/>
+ <point x="1003" y="1033"/>
+ <point x="871" y="997"/>
+ <point x="782" y="940" type="curve"/>
+ <point x="847" y="770" type="line"/>
+ <point x="939" y="808"/>
+ <point x="1019" y="823"/>
+ <point x="1092" y="825" type="curve"/>
+ </contour>
+ <contour>
+ <point x="122" y="670" type="curve" smooth="yes"/>
+ <point x="122" y="455"/>
+ <point x="316" y="305"/>
+ <point x="567" y="305" type="curve" smooth="yes"/>
+ <point x="820" y="305"/>
+ <point x="1012" y="465"/>
+ <point x="1012" y="680" type="curve" smooth="yes"/>
+ <point x="1012" y="884"/>
+ <point x="820" y="1040"/>
+ <point x="567" y="1040" type="curve" smooth="yes"/>
+ <point x="316" y="1040"/>
+ <point x="122" y="874"/>
+ </contour>
+ <contour>
+ <point x="377" y="680" type="curve" smooth="yes"/>
+ <point x="377" y="770"/>
+ <point x="457" y="847"/>
+ <point x="567" y="847" type="curve" smooth="yes"/>
+ <point x="678" y="847"/>
+ <point x="757" y="770"/>
+ <point x="757" y="680" type="curve" smooth="yes"/>
+ <point x="757" y="578"/>
+ <point x="678" y="501"/>
+ <point x="567" y="501" type="curve" smooth="yes"/>
+ <point x="457" y="501"/>
+ <point x="377" y="578"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..15fc451
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1235"/>
+ <unicode hex="0068"/>
+ <anchor x="280" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="580" type="line"/>
+ <point x="450" y="683"/>
+ <point x="560" y="795"/>
+ <point x="675" y="795" type="curve" smooth="yes"/>
+ <point x="782" y="795"/>
+ <point x="830" y="744"/>
+ <point x="830" y="550" type="curve" smooth="yes"/>
+ <point x="830" y="413"/>
+ <point x="830" y="0"/>
+ <point x="830" y="0" type="curve"/>
+ <point x="1110" y="0" type="line"/>
+ <point x="1110" y="0"/>
+ <point x="1110" y="459"/>
+ <point x="1110" y="625" type="curve" smooth="yes"/>
+ <point x="1110" y="900"/>
+ <point x="1008" y="1040"/>
+ <point x="805" y="1040" type="curve" smooth="yes"/>
+ <point x="662" y="1040"/>
+ <point x="513" y="976"/>
+ <point x="415" y="850" type="curve"/>
+ <point x="415" y="894"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="935"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ <point x="415" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..05022d4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="640"/>
+ <unicode hex="0069"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="320" y="-100" name="L"/>
+ <anchor x="580" y="0" name="O"/>
+ <anchor x="640" y="1000" name="R"/>
+ <anchor x="320" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="1020" type="line"/>
+ <point x="178" y="915"/>
+ <point x="180" y="725"/>
+ <point x="180" y="530" type="curve" smooth="yes"/>
+ <point x="180" y="336"/>
+ <point x="180" y="0"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="107"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ <point x="460" y="558"/>
+ <point x="460" y="1020"/>
+ <point x="460" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="145" y="1385" type="curve" smooth="yes"/>
+ <point x="145" y="1281"/>
+ <point x="219" y="1210"/>
+ <point x="320" y="1210" type="curve" smooth="yes"/>
+ <point x="422" y="1210"/>
+ <point x="495" y="1281"/>
+ <point x="495" y="1385" type="curve" smooth="yes"/>
+ <point x="495" y="1487"/>
+ <point x="422" y="1560"/>
+ <point x="320" y="1560" type="curve" smooth="yes"/>
+ <point x="219" y="1560"/>
+ <point x="145" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..6e044af
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="670"/>
+ <unicode hex="006A"/>
+ <anchor x="140" y="-500" name="L"/>
+ <anchor x="355" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="185" y="1385" type="curve" smooth="yes"/>
+ <point x="185" y="1281"/>
+ <point x="259" y="1210"/>
+ <point x="360" y="1210" type="curve" smooth="yes"/>
+ <point x="462" y="1210"/>
+ <point x="535" y="1281"/>
+ <point x="535" y="1385" type="curve" smooth="yes"/>
+ <point x="535" y="1487"/>
+ <point x="462" y="1560"/>
+ <point x="360" y="1560" type="curve" smooth="yes"/>
+ <point x="259" y="1560"/>
+ <point x="185" y="1487"/>
+ </contour>
+ <contour>
+ <point x="500" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="20" type="line"/>
+ <point x="220" y="-150"/>
+ <point x="165" y="-232"/>
+ <point x="48" y="-232" type="curve" smooth="yes"/>
+ <point x="-20" y="-232"/>
+ <point x="-101" y="-195"/>
+ <point x="-145" y="-152" type="curve"/>
+ <point x="-190" y="-389" type="line"/>
+ <point x="-148" y="-421"/>
+ <point x="-37" y="-470"/>
+ <point x="56" y="-470" type="curve" smooth="yes"/>
+ <point x="306" y="-470"/>
+ <point x="500" y="-348"/>
+ <point x="500" y="25" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..529f7dd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1138"/>
+ <unicode hex="006B"/>
+ <anchor x="940" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="595" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="0" type="line"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="934"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="723" y="1020" type="line"/>
+ <point x="353" y="570" type="line"/>
+ <point x="572" y="528" type="line"/>
+ <point x="1098" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="570" type="line"/>
+ <point x="761" y="0" type="line"/>
+ <point x="1128" y="0" type="line"/>
+ <point x="540" y="664" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..0b21294
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="640"/>
+ <unicode hex="006C"/>
+ <anchor x="335" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="660" y="1000" name="R"/>
+ <anchor x="320" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="1600" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="173" y="1485"/>
+ <point x="180" y="1324"/>
+ <point x="180" y="1130" type="curve" smooth="yes"/>
+ <point x="180" y="0" type="line"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="109"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..eace489
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1760"/>
+ <unicode hex="006D"/>
+ <anchor x="890" y="0" name="H"/>
+ <anchor x="890" y="-100" name="L"/>
+ <anchor x="890" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="115" y="1020" type="line"/>
+ <point x="136" y="951"/>
+ <point x="165" y="811"/>
+ <point x="165" y="615" type="curve" smooth="yes"/>
+ <point x="165" y="0" type="line"/>
+ <point x="445" y="0" type="line"/>
+ <point x="445" y="640" type="line"/>
+ <point x="484" y="731"/>
+ <point x="560" y="795"/>
+ <point x="635" y="795" type="curve" smooth="yes"/>
+ <point x="723" y="795"/>
+ <point x="750" y="759"/>
+ <point x="750" y="570" type="curve" smooth="yes"/>
+ <point x="750" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1030" y="660" type="line"/>
+ <point x="1073" y="742"/>
+ <point x="1147" y="795"/>
+ <point x="1220" y="795" type="curve" smooth="yes"/>
+ <point x="1310" y="795"/>
+ <point x="1335" y="751"/>
+ <point x="1335" y="550" type="curve" smooth="yes"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1615" y="0" type="line"/>
+ <point x="1615" y="660" type="line" smooth="yes"/>
+ <point x="1615" y="907"/>
+ <point x="1548" y="1040"/>
+ <point x="1345" y="1040" type="curve" smooth="yes"/>
+ <point x="1240" y="1040"/>
+ <point x="1131" y="1007"/>
+ <point x="1006" y="872" type="curve"/>
+ <point x="973" y="960"/>
+ <point x="891" y="1040"/>
+ <point x="760" y="1040" type="curve" smooth="yes"/>
+ <point x="644" y="1040"/>
+ <point x="544" y="1008"/>
+ <point x="422" y="875" type="curve"/>
+ <point x="412" y="920"/>
+ <point x="397" y="981"/>
+ <point x="375" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..f7abb6f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1245"/>
+ <unicode hex="006E"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1120" y="0"/>
+ <point x="1120" y="459"/>
+ <point x="1120" y="625" type="curve" smooth="yes"/>
+ <point x="1120" y="900"/>
+ <point x="998" y="1040"/>
+ <point x="795" y="1040" type="curve" smooth="yes"/>
+ <point x="654" y="1040"/>
+ <point x="537" y="980"/>
+ <point x="410" y="835" type="curve"/>
+ <point x="403" y="881"/>
+ <point x="385" y="980"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="420"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="580" type="line"/>
+ <point x="460" y="683"/>
+ <point x="570" y="795"/>
+ <point x="685" y="795" type="curve" smooth="yes"/>
+ <point x="792" y="795"/>
+ <point x="840" y="734"/>
+ <point x="840" y="550" type="curve" smooth="yes"/>
+ <point x="840" y="413"/>
+ <point x="840" y="0"/>
+ <point x="840" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..063c297
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1160"/>
+ <unicode hex="006F"/>
+ <anchor x="578" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="790" y="0" name="O"/>
+ <anchor x="1160" y="1000" name="R"/>
+ <anchor x="580" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="90" y="507" type="curve" smooth="yes"/>
+ <point x="90" y="163"/>
+ <point x="288" y="-25"/>
+ <point x="570" y="-25" type="curve" smooth="yes"/>
+ <point x="840" y="-25"/>
+ <point x="1070" y="163"/>
+ <point x="1070" y="507" type="curve" smooth="yes"/>
+ <point x="1070" y="851"/>
+ <point x="873" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="1040"/>
+ <point x="90" y="851"/>
+ </contour>
+ <contour>
+ <point x="370" y="507" type="curve" smooth="yes"/>
+ <point x="370" y="699"/>
+ <point x="451" y="815"/>
+ <point x="580" y="815" type="curve" smooth="yes"/>
+ <point x="717" y="815"/>
+ <point x="790" y="699"/>
+ <point x="790" y="507" type="curve" smooth="yes"/>
+ <point x="790" y="316"/>
+ <point x="709" y="200"/>
+ <point x="580" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="370" y="316"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..4fe224b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1235"/>
+ <unicode hex="0070"/>
+ <anchor x="290" y="-435" name="H"/>
+ <anchor x="640" y="-500" name="L"/>
+ <anchor x="1235" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="-490" type="line"/>
+ <point x="433" y="-405"/>
+ <point x="425" y="-310"/>
+ <point x="425" y="-150" type="curve" smooth="yes"/>
+ <point x="425" y="-71"/>
+ <point x="425" y="-41"/>
+ <point x="425" y="65" type="curve"/>
+ <point x="518" y="10"/>
+ <point x="594" y="-25"/>
+ <point x="699" y="-25" type="curve" smooth="yes"/>
+ <point x="945" y="-25"/>
+ <point x="1145" y="193"/>
+ <point x="1145" y="535" type="curve" smooth="yes"/>
+ <point x="1145" y="828"/>
+ <point x="996" y="1040"/>
+ <point x="773" y="1040" type="curve" smooth="yes"/>
+ <point x="628" y="1040"/>
+ <point x="502" y="962"/>
+ <point x="410" y="850" type="curve"/>
+ <point x="401" y="932"/>
+ <point x="385" y="990"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="140" y="907"/>
+ <point x="145" y="734"/>
+ <point x="145" y="485" type="curve" smooth="yes"/>
+ <point x="145" y="291"/>
+ <point x="145" y="-345"/>
+ <point x="145" y="-490" type="curve"/>
+ </contour>
+ <contour>
+ <point x="633" y="206" type="curve" smooth="yes"/>
+ <point x="564" y="206"/>
+ <point x="527" y="225"/>
+ <point x="425" y="300" type="curve"/>
+ <point x="425" y="390"/>
+ <point x="425" y="507"/>
+ <point x="425" y="585" type="curve"/>
+ <point x="482" y="726"/>
+ <point x="583" y="802"/>
+ <point x="672" y="802" type="curve" smooth="yes"/>
+ <point x="793" y="802"/>
+ <point x="865" y="686"/>
+ <point x="865" y="505" type="curve" smooth="yes"/>
+ <point x="865" y="320"/>
+ <point x="755" y="206"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9727ad7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1210"/>
+ <unicode hex="0071"/>
+ <anchor x="600" y="-500" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="790" y="-490" type="line"/>
+ <point x="1095" y="-490" type="line"/>
+ <point x="1078" y="-405"/>
+ <point x="1070" y="-310"/>
+ <point x="1070" y="-150" type="curve" smooth="yes"/>
+ <point x="1070" y="-26"/>
+ <point x="1070" y="965"/>
+ <point x="1070" y="965" type="curve"/>
+ <point x="934" y="1001"/>
+ <point x="773" y="1040"/>
+ <point x="620" y="1040" type="curve" smooth="yes"/>
+ <point x="255" y="1040"/>
+ <point x="100" y="742"/>
+ <point x="100" y="435" type="curve" smooth="yes"/>
+ <point x="100" y="117"/>
+ <point x="316" y="-25"/>
+ <point x="500" y="-25" type="curve" smooth="yes"/>
+ <point x="593" y="-25"/>
+ <point x="686" y="14"/>
+ <point x="790" y="120" type="curve"/>
+ </contour>
+ <contour>
+ <point x="790" y="368" type="line"/>
+ <point x="727" y="258"/>
+ <point x="650" y="203"/>
+ <point x="580" y="203" type="curve" smooth="yes"/>
+ <point x="475" y="203"/>
+ <point x="380" y="287"/>
+ <point x="380" y="485" type="curve" smooth="yes"/>
+ <point x="380" y="641"/>
+ <point x="456" y="802"/>
+ <point x="655" y="802" type="curve" smooth="yes"/>
+ <point x="696" y="802"/>
+ <point x="749" y="789"/>
+ <point x="790" y="770" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8a81116
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="995"/>
+ <unicode hex="0072"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="275" y="-100" name="L"/>
+ <anchor x="550" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="530" type="line"/>
+ <point x="460" y="654"/>
+ <point x="570" y="781"/>
+ <point x="637" y="781" type="curve" smooth="yes"/>
+ <point x="722" y="781"/>
+ <point x="755" y="721"/>
+ <point x="762" y="630" type="curve"/>
+ <point x="985" y="665" type="line"/>
+ <point x="985" y="868"/>
+ <point x="913" y="1040"/>
+ <point x="725" y="1040" type="curve" smooth="yes"/>
+ <point x="634" y="1040"/>
+ <point x="507" y="964"/>
+ <point x="410" y="825" type="curve"/>
+ <point x="403" y="873"/>
+ <point x="385" y="978"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..06b1a9a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1035"/>
+ <unicode hex="0073"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="530" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="960" type="line"/>
+ <point x="827" y="998"/>
+ <point x="708" y="1040"/>
+ <point x="545" y="1040" type="curve" smooth="yes"/>
+ <point x="202" y="1040"/>
+ <point x="110" y="818"/>
+ <point x="110" y="720" type="curve" smooth="yes"/>
+ <point x="110" y="594"/>
+ <point x="171" y="491"/>
+ <point x="455" y="432" type="curve" smooth="yes"/>
+ <point x="646" y="390"/>
+ <point x="690" y="348"/>
+ <point x="690" y="290" type="curve" smooth="yes"/>
+ <point x="690" y="243"/>
+ <point x="624" y="199"/>
+ <point x="530" y="199" type="curve" smooth="yes"/>
+ <point x="413" y="199"/>
+ <point x="254" y="253"/>
+ <point x="155" y="334" type="curve"/>
+ <point x="100" y="90" type="line"/>
+ <point x="187" y="28"/>
+ <point x="346" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="768" y="-25"/>
+ <point x="960" y="123"/>
+ <point x="960" y="315" type="curve" smooth="yes"/>
+ <point x="960" y="504"/>
+ <point x="788" y="583"/>
+ <point x="580" y="625" type="curve" smooth="yes"/>
+ <point x="405" y="659"/>
+ <point x="380" y="681"/>
+ <point x="380" y="730" type="curve" smooth="yes"/>
+ <point x="380" y="770"/>
+ <point x="418" y="816"/>
+ <point x="535" y="816" type="curve" smooth="yes"/>
+ <point x="674" y="816"/>
+ <point x="791" y="760"/>
+ <point x="866" y="721" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..d4123c7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="885"/>
+ <unicode hex="0074"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="885" y="1000" name="R"/>
+ <anchor x="360" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="220" y="270" type="line"/>
+ <point x="220" y="39"/>
+ <point x="374" y="-25"/>
+ <point x="563" y="-25" type="curve" smooth="yes"/>
+ <point x="635" y="-25"/>
+ <point x="725" y="-3"/>
+ <point x="820" y="57" type="curve"/>
+ <point x="820" y="281" type="line"/>
+ <point x="741" y="232"/>
+ <point x="678" y="206"/>
+ <point x="627" y="206" type="curve" smooth="yes"/>
+ <point x="537" y="206"/>
+ <point x="500" y="235"/>
+ <point x="500" y="462" type="curve" smooth="yes"/>
+ <point x="500" y="1320" type="line"/>
+ <point x="220" y="1320" type="line"/>
+ </contour>
+ <contour>
+ <point x="805" y="805" type="line"/>
+ <point x="805" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ <point x="30" y="805" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5b8d434
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1245"/>
+ <unicode hex="0075"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="1258" y="1000" name="R"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1160" y="0" type="line"/>
+ <point x="1118" y="112"/>
+ <point x="1095" y="256"/>
+ <point x="1095" y="450" type="curve" smooth="yes"/>
+ <point x="1095" y="646"/>
+ <point x="1095" y="1020"/>
+ <point x="1095" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="813" y="898"/>
+ <point x="815" y="832"/>
+ <point x="815" y="700" type="curve" smooth="yes"/>
+ <point x="815" y="418" type="line"/>
+ <point x="774" y="326"/>
+ <point x="651" y="206"/>
+ <point x="560" y="206" type="curve" smooth="yes"/>
+ <point x="458" y="206"/>
+ <point x="425" y="284"/>
+ <point x="425" y="465" type="curve" smooth="yes"/>
+ <point x="425" y="603"/>
+ <point x="425" y="1020"/>
+ <point x="425" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="143" y="900"/>
+ <point x="145" y="827"/>
+ <point x="145" y="700" type="curve" smooth="yes"/>
+ <point x="145" y="681"/>
+ <point x="145" y="424"/>
+ <point x="145" y="405" type="curve" smooth="yes"/>
+ <point x="145" y="120"/>
+ <point x="250" y="-25"/>
+ <point x="458" y="-25" type="curve" smooth="yes"/>
+ <point x="595" y="-25"/>
+ <point x="722" y="48"/>
+ <point x="840" y="185" type="curve"/>
+ <point x="850" y="116"/>
+ <point x="876" y="43"/>
+ <point x="895" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..daf1468
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1104"/>
+ <unicode hex="0076"/>
+ <anchor x="565" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="786" y="1020" type="line"/>
+ <point x="556" y="290" type="line"/>
+ <point x="322" y="1020" type="line"/>
+ <point x="10" y="1020" type="line"/>
+ <point x="65" y="905"/>
+ <point x="133" y="746"/>
+ <point x="165" y="665" type="curve" smooth="yes"/>
+ <point x="227" y="510"/>
+ <point x="430" y="0"/>
+ <point x="430" y="0" type="curve"/>
+ <point x="674" y="0" type="line"/>
+ <point x="674" y="0"/>
+ <point x="886" y="536"/>
+ <point x="939" y="665" type="curve" smooth="yes"/>
+ <point x="972" y="744"/>
+ <point x="1037" y="905"/>
+ <point x="1094" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1ca1ec4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1570"/>
+ <unicode hex="0077"/>
+ <anchor x="785" y="-100" name="L"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="665" y="1020" type="line"/>
+ <point x="480" y="285" type="line"/>
+ <point x="323" y="1020" type="line"/>
+ <point x="35" y="1020" type="line"/>
+ <point x="82" y="867"/>
+ <point x="110" y="771"/>
+ <point x="140" y="665" type="curve" smooth="yes"/>
+ <point x="325" y="0" type="line"/>
+ <point x="615" y="0" type="line"/>
+ <point x="785" y="695" type="line"/>
+ <point x="955" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1430" y="665" type="line" smooth="yes"/>
+ <point x="1464" y="785"/>
+ <point x="1488" y="868"/>
+ <point x="1535" y="1020" type="curve"/>
+ <point x="1247" y="1020" type="line"/>
+ <point x="1090" y="285" type="line"/>
+ <point x="905" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..971c129
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1185"/>
+ <unicode hex="0078"/>
+ <anchor x="960" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="815" y="0" type="line"/>
+ <point x="1145" y="0" type="line"/>
+ <point x="1037" y="129"/>
+ <point x="989" y="190"/>
+ <point x="930" y="270" type="curve" smooth="yes"/>
+ <point x="380" y="1020" type="line"/>
+ <point x="50" y="1020" type="line"/>
+ <point x="158" y="887"/>
+ <point x="192" y="842"/>
+ <point x="260" y="750" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="499" y="616" type="line"/>
+ <point x="245" y="270" type="line" smooth="yes"/>
+ <point x="195" y="201"/>
+ <point x="150" y="143"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="584" y="359" type="line"/>
+ </contour>
+ <contour>
+ <point x="675" y="405" type="line"/>
+ <point x="925" y="750" type="line" smooth="yes"/>
+ <point x="980" y="826"/>
+ <point x="1027" y="886"/>
+ <point x="1130" y="1020" type="curve"/>
+ <point x="825" y="1020" type="line"/>
+ <point x="595" y="668" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..ea8d25e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1100"/>
+ <unicode hex="0079"/>
+ <anchor x="845" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="665" type="line" smooth="yes"/>
+ <point x="978" y="758"/>
+ <point x="1021" y="865"/>
+ <point x="1090" y="1020" type="curve"/>
+ <point x="777" y="1020" type="line"/>
+ <point x="777" y="1020"/>
+ <point x="646" y="549"/>
+ <point x="573" y="293" type="curve"/>
+ <point x="333" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="97" y="864"/>
+ <point x="144" y="757"/>
+ <point x="180" y="665" type="curve" smooth="yes"/>
+ <point x="445" y="-18" type="line"/>
+ <point x="366" y="-209"/>
+ <point x="304" y="-242"/>
+ <point x="245" y="-242" type="curve" smooth="yes"/>
+ <point x="179" y="-242"/>
+ <point x="102" y="-202"/>
+ <point x="60" y="-167" type="curve"/>
+ <point x="-10" y="-385" type="line"/>
+ <point x="63" y="-439"/>
+ <point x="154" y="-470"/>
+ <point x="245" y="-470" type="curve" smooth="yes"/>
+ <point x="427" y="-470"/>
+ <point x="565" y="-387"/>
+ <point x="705" y="0" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..7dc67c0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="895"/>
+ <unicode hex="2011"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..54b82cb
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="412" y="1360" type="line"/>
+ <point x="52" y="100" type="line"/>
+ <point x="272" y="100" type="line"/>
+ <point x="632" y="1360" type="line"/>
+ </contour>
+ <contour>
+ <point x="10" y="425" type="line"/>
+ <point x="1101" y="425" type="line"/>
+ <point x="1101" y="635" type="line"/>
+ <point x="10" y="635" type="line"/>
+ </contour>
+ <contour>
+ <point x="69" y="850" type="line"/>
+ <point x="1160" y="850" type="line"/>
+ <point x="1160" y="1060" type="line"/>
+ <point x="69" y="1060" type="line"/>
+ </contour>
+ <contour>
+ <point x="887" y="1360" type="line"/>
+ <point x="527" y="100" type="line"/>
+ <point x="747" y="100" type="line"/>
+ <point x="1107" y="1360" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..5017543
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1565"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="499" y="-25" type="line"/>
+ <point x="1279" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="511" y="1076" type="curve" smooth="yes"/>
+ <point x="511" y="892"/>
+ <point x="470" y="815"/>
+ <point x="394" y="815" type="curve" smooth="yes"/>
+ <point x="315" y="815"/>
+ <point x="279" y="891"/>
+ <point x="279" y="1091" type="curve" smooth="yes"/>
+ <point x="279" y="1275"/>
+ <point x="317" y="1350"/>
+ <point x="394" y="1350" type="curve" smooth="yes"/>
+ <point x="475" y="1350"/>
+ <point x="511" y="1276"/>
+ </contour>
+ <contour>
+ <point x="721" y="1089" type="curve" smooth="yes"/>
+ <point x="721" y="1362"/>
+ <point x="584" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="215" y="1480"/>
+ <point x="69" y="1360"/>
+ <point x="69" y="1078" type="curve" smooth="yes"/>
+ <point x="69" y="796"/>
+ <point x="205" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="575" y="685"/>
+ <point x="721" y="794"/>
+ </contour>
+ <contour>
+ <point x="1286" y="366" type="curve" smooth="yes"/>
+ <point x="1286" y="182"/>
+ <point x="1245" y="105"/>
+ <point x="1169" y="105" type="curve" smooth="yes"/>
+ <point x="1090" y="105"/>
+ <point x="1054" y="181"/>
+ <point x="1054" y="381" type="curve" smooth="yes"/>
+ <point x="1054" y="565"/>
+ <point x="1092" y="640"/>
+ <point x="1169" y="640" type="curve" smooth="yes"/>
+ <point x="1250" y="640"/>
+ <point x="1286" y="566"/>
+ </contour>
+ <contour>
+ <point x="1496" y="379" type="curve" smooth="yes"/>
+ <point x="1496" y="652"/>
+ <point x="1359" y="770"/>
+ <point x="1174" y="770" type="curve" smooth="yes"/>
+ <point x="990" y="770"/>
+ <point x="844" y="650"/>
+ <point x="844" y="368" type="curve" smooth="yes"/>
+ <point x="844" y="86"/>
+ <point x="980" y="-25"/>
+ <point x="1165" y="-25" type="curve" smooth="yes"/>
+ <point x="1350" y="-25"/>
+ <point x="1496" y="84"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..a1a4c93
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="495" y="1180" type="line"/>
+ <point x="495" y="285" type="line"/>
+ <point x="705" y="285" type="line"/>
+ <point x="705" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="630" type="line"/>
+ <point x="1045" y="630" type="line"/>
+ <point x="1045" y="840" type="line"/>
+ <point x="155" y="840" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..c9bbb28
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1090"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="640" y="500" type="line"/>
+ <point x="640" y="671"/>
+ <point x="668" y="805"/>
+ <point x="767" y="956" type="curve" smooth="yes"/>
+ <point x="837" y="1063"/>
+ <point x="900" y="1117"/>
+ <point x="900" y="1220" type="curve" smooth="yes"/>
+ <point x="900" y="1402"/>
+ <point x="757" y="1540"/>
+ <point x="500" y="1540" type="curve" smooth="yes"/>
+ <point x="355" y="1540"/>
+ <point x="206" y="1470"/>
+ <point x="140" y="1407" type="curve"/>
+ <point x="185" y="1168" type="line"/>
+ <point x="261" y="1247"/>
+ <point x="372" y="1295"/>
+ <point x="472" y="1295" type="curve" smooth="yes"/>
+ <point x="569" y="1295"/>
+ <point x="615" y="1249"/>
+ <point x="615" y="1190" type="curve" smooth="yes"/>
+ <point x="615" y="1139"/>
+ <point x="565" y="1096"/>
+ <point x="495" y="980" type="curve" smooth="yes"/>
+ <point x="434" y="879"/>
+ <point x="375" y="710"/>
+ <point x="375" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="335" y="150" type="curve" smooth="yes"/>
+ <point x="335" y="46"/>
+ <point x="409" y="-25"/>
+ <point x="510" y="-25" type="curve" smooth="yes"/>
+ <point x="612" y="-25"/>
+ <point x="685" y="46"/>
+ <point x="685" y="150" type="curve" smooth="yes"/>
+ <point x="685" y="252"/>
+ <point x="612" y="325"/>
+ <point x="510" y="325" type="curve" smooth="yes"/>
+ <point x="409" y="325"/>
+ <point x="335" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..794a655
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1085"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="450" y="1045" type="line"/>
+ <point x="455" y="1186"/>
+ <point x="456" y="1339"/>
+ <point x="485" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="271" y="1186"/>
+ <point x="275" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="810" y="1045" type="line"/>
+ <point x="815" y="1186"/>
+ <point x="816" y="1339"/>
+ <point x="845" y="1585" type="curve"/>
+ <point x="600" y="1585" type="line"/>
+ <point x="631" y="1339"/>
+ <point x="631" y="1186"/>
+ <point x="635" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..799c999
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ <point x="1070" y="-245" type="line"/>
+ <point x="240" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..48383fb
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="180" y="-410" type="line"/>
+ <point x="316" y="-383"/>
+ <point x="520" y="-333"/>
+ <point x="570" y="-285" type="curve" smooth="yes"/>
+ <point x="645" y="-213"/>
+ <point x="633" y="378"/>
+ <point x="655" y="410" type="curve" smooth="yes"/>
+ <point x="685" y="453"/>
+ <point x="855" y="560"/>
+ <point x="855" y="615" type="curve" smooth="yes"/>
+ <point x="855" y="670"/>
+ <point x="685" y="777"/>
+ <point x="655" y="820" type="curve" smooth="yes"/>
+ <point x="633" y="852"/>
+ <point x="644" y="1442"/>
+ <point x="570" y="1515" type="curve" smooth="yes"/>
+ <point x="523" y="1562"/>
+ <point x="333" y="1613"/>
+ <point x="205" y="1640" type="curve"/>
+ <point x="155" y="1409" type="line"/>
+ <point x="218" y="1390"/>
+ <point x="323" y="1351"/>
+ <point x="340" y="1330" type="curve" smooth="yes"/>
+ <point x="375" y="1289"/>
+ <point x="364" y="820"/>
+ <point x="382" y="785" type="curve" smooth="yes"/>
+ <point x="405" y="740"/>
+ <point x="542" y="650"/>
+ <point x="542" y="615" type="curve" smooth="yes"/>
+ <point x="542" y="580"/>
+ <point x="404" y="491"/>
+ <point x="380" y="445" type="curve" smooth="yes"/>
+ <point x="362" y="411"/>
+ <point x="375" y="-60"/>
+ <point x="340" y="-100" type="curve" smooth="yes"/>
+ <point x="321" y="-122"/>
+ <point x="197" y="-160"/>
+ <point x="130" y="-179" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..ae49fca
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="185" y="1455" type="line"/>
+ <point x="395" y="1261"/>
+ <point x="485" y="938"/>
+ <point x="485" y="635" type="curve" smooth="yes"/>
+ <point x="485" y="335"/>
+ <point x="399" y="11"/>
+ <point x="175" y="-240" type="curve"/>
+ <point x="326" y="-410" type="line"/>
+ <point x="601" y="-125"/>
+ <point x="746" y="218"/>
+ <point x="746" y="625" type="curve" smooth="yes"/>
+ <point x="746" y="1062"/>
+ <point x="571" y="1444"/>
+ <point x="306" y="1640" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..325e575
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="660" y="-410" type="line"/>
+ <point x="660" y="1600" type="line"/>
+ <point x="140" y="1600" type="line"/>
+ <point x="140" y="1390" type="line"/>
+ <point x="380" y="1390" type="line"/>
+ <point x="380" y="-200" type="line"/>
+ <point x="140" y="-200" type="line"/>
+ <point x="140" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..ae95657
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="710"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..1e33c05
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="240" y="-245" type="line"/>
+ <point x="1070" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif
new file mode 100644
index 0000000..07072d0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Star" format="2">
+ <advance width="1040"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="827" y="1493" type="line"/>
+ <point x="747" y="1426"/>
+ <point x="679" y="1367"/>
+ <point x="594" y="1308" type="curve"/>
+ <point x="599" y="1405"/>
+ <point x="609" y="1486"/>
+ <point x="624" y="1600" type="curve"/>
+ <point x="425" y="1600" type="line"/>
+ <point x="444" y="1497"/>
+ <point x="460" y="1412"/>
+ <point x="468" y="1308" type="curve"/>
+ <point x="383" y="1360"/>
+ <point x="312" y="1408"/>
+ <point x="228" y="1476" type="curve"/>
+ <point x="126" y="1306" type="line"/>
+ <point x="231" y="1271"/>
+ <point x="331" y="1234"/>
+ <point x="412" y="1196" type="curve"/>
+ <point x="328" y="1153"/>
+ <point x="243" y="1120"/>
+ <point x="136" y="1077" type="curve"/>
+ <point x="237" y="897" type="line"/>
+ <point x="316" y="968"/>
+ <point x="382" y="1026"/>
+ <point x="466" y="1087" type="curve"/>
+ <point x="459" y="983"/>
+ <point x="449" y="896"/>
+ <point x="431" y="793" type="curve"/>
+ <point x="632" y="793" type="line"/>
+ <point x="610" y="906"/>
+ <point x="602" y="987"/>
+ <point x="593" y="1084" type="curve"/>
+ <point x="682" y="1027"/>
+ <point x="747" y="981"/>
+ <point x="830" y="914" type="curve"/>
+ <point x="936" y="1089" type="line"/>
+ <point x="827" y="1127"/>
+ <point x="743" y="1155"/>
+ <point x="651" y="1196" type="curve"/>
+ <point x="738" y="1241"/>
+ <point x="820" y="1277"/>
+ <point x="924" y="1321" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..ec9fc73
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="165" y="345" type="line"/>
+ <point x="170" y="394"/>
+ <point x="202" y="435"/>
+ <point x="280" y="435" type="curve" smooth="yes"/>
+ <point x="435" y="435"/>
+ <point x="615" y="330"/>
+ <point x="825" y="330" type="curve" smooth="yes"/>
+ <point x="984" y="330"/>
+ <point x="1080" y="512"/>
+ <point x="1080" y="640" type="curve"/>
+ <point x="935" y="640" type="line"/>
+ <point x="928" y="594"/>
+ <point x="898" y="540"/>
+ <point x="815" y="540" type="curve" smooth="yes"/>
+ <point x="599" y="540"/>
+ <point x="461" y="645"/>
+ <point x="260" y="645" type="curve" smooth="yes"/>
+ <point x="104" y="645"/>
+ <point x="20" y="467"/>
+ <point x="20" y="345" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..d7caa84
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="240" y="1600" type="line"/>
+ <point x="240" y="-390" type="line"/>
+ <point x="450" y="-390" type="line"/>
+ <point x="450" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..33b59ec
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>Bpos</key>
+ <string>B_pos.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Star</key>
+ <string>S_tar.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist b/tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/lib.plist b/tests/reference/ufo/psfrenameglyphs.ufo/lib.plist
new file mode 100644
index 0000000..72c2421
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/lib.plist
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Bpos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Star</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Bpos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Star</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>Bpos</key>
+ <string>quotesingle</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Star</key>
+ <string>asterisk</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist b/tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.lg b/tests/reference/ufo/psfsetassocfeat.lg
new file mode 100644
index 0000000..d0f1b38
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.lg
@@ -0,0 +1,30 @@
+2021-06-29 14:42:22 Progress: Running: psfsetassocfeat tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfsetassocfeat.csv -l local/testresults/ufo/psfsetassocfeat.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/psfsetassocfeat.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:22 Info: Types: Old - int, New - NoneType
+2021-06-29 14:42:22 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:22 Info: Types: Old - float, New - int
+2021-06-29 14:42:22 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetassocfeat.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist b/tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist
new file mode 100644
index 0000000..52c03d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:06</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Testing</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>1</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..a186541
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocFeature</key>
+ <string>fea1</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..ed6e991
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocFeature</key>
+ <string>fea2</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist b/tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/lib.plist b/tests/reference/ufo/psfsetassocfeat.ufo/lib.plist
new file mode 100644
index 0000000..43413a8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/lib.plist
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist b/tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.lg b/tests/reference/ufo/psfsetassocuids.lg
new file mode 100644
index 0000000..86af491
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.lg
@@ -0,0 +1,22 @@
+2021-06-29 14:42:22 Progress: Running: psfsetassocuids tests/input/font-psf-test/source/PsfTest-Bold.ufo -i tests/input/psfsetassocuids.csv -l local/testresults/ufo/psfsetassocuids.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/psfsetassocuids.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Bold.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Error: No glyph in font for SupThree on line 1
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetassocuids.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist b/tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist
new file mode 100644
index 0000000..2036ffe
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:06</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f2749f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1355"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1060" y="600" type="line"/>
+ <point x="996" y="433"/>
+ <point x="715" y="190"/>
+ <point x="540" y="190" type="curve" smooth="yes"/>
+ <point x="425" y="190"/>
+ <point x="335" y="257"/>
+ <point x="335" y="370" type="curve" smooth="yes"/>
+ <point x="335" y="480"/>
+ <point x="411" y="547"/>
+ <point x="585" y="700" type="curve" smooth="yes"/>
+ <point x="766" y="859"/>
+ <point x="925" y="1048"/>
+ <point x="925" y="1190" type="curve" smooth="yes"/>
+ <point x="925" y="1372"/>
+ <point x="777" y="1485"/>
+ <point x="575" y="1485" type="curve" smooth="yes"/>
+ <point x="366" y="1485"/>
+ <point x="190" y="1372"/>
+ <point x="190" y="1160" type="curve" smooth="yes"/>
+ <point x="190" y="1000"/>
+ <point x="407" y="785"/>
+ <point x="590" y="540" type="curve" smooth="yes"/>
+ <point x="859" y="179"/>
+ <point x="1038" y="-25"/>
+ <point x="1090" y="-25" type="curve" smooth="yes"/>
+ <point x="1125" y="-25"/>
+ <point x="1253" y="58"/>
+ <point x="1290" y="90" type="curve"/>
+ <point x="1195" y="130"/>
+ <point x="1060" y="305"/>
+ <point x="785" y="680" type="curve" smooth="yes"/>
+ <point x="619" y="906"/>
+ <point x="420" y="1085"/>
+ <point x="420" y="1170" type="curve" smooth="yes"/>
+ <point x="420" y="1241"/>
+ <point x="483" y="1310"/>
+ <point x="560" y="1310" type="curve" smooth="yes"/>
+ <point x="640" y="1310"/>
+ <point x="695" y="1254"/>
+ <point x="695" y="1175" type="curve" smooth="yes"/>
+ <point x="695" y="1106"/>
+ <point x="628" y="1001"/>
+ <point x="455" y="840" type="curve" smooth="yes"/>
+ <point x="251" y="651"/>
+ <point x="90" y="527"/>
+ <point x="90" y="344" type="curve" smooth="yes"/>
+ <point x="90" y="121"/>
+ <point x="242" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="808" y="-25"/>
+ <point x="1117" y="264"/>
+ <point x="1195" y="425" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..61494e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="625"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="400" y="1045" type="line"/>
+ <point x="405" y="1186"/>
+ <point x="406" y="1339"/>
+ <point x="435" y="1585" type="curve"/>
+ <point x="190" y="1585" type="line"/>
+ <point x="221" y="1339"/>
+ <point x="221" y="1186"/>
+ <point x="225" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..ed9d25e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1040"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="827" y="1493" type="line"/>
+ <point x="747" y="1426"/>
+ <point x="679" y="1367"/>
+ <point x="594" y="1308" type="curve"/>
+ <point x="599" y="1405"/>
+ <point x="609" y="1486"/>
+ <point x="624" y="1600" type="curve"/>
+ <point x="425" y="1600" type="line"/>
+ <point x="444" y="1497"/>
+ <point x="460" y="1412"/>
+ <point x="468" y="1308" type="curve"/>
+ <point x="383" y="1360"/>
+ <point x="312" y="1408"/>
+ <point x="228" y="1476" type="curve"/>
+ <point x="126" y="1306" type="line"/>
+ <point x="231" y="1271"/>
+ <point x="331" y="1234"/>
+ <point x="412" y="1196" type="curve"/>
+ <point x="328" y="1153"/>
+ <point x="243" y="1120"/>
+ <point x="136" y="1077" type="curve"/>
+ <point x="237" y="897" type="line"/>
+ <point x="316" y="968"/>
+ <point x="382" y="1026"/>
+ <point x="466" y="1087" type="curve"/>
+ <point x="459" y="983"/>
+ <point x="449" y="896"/>
+ <point x="431" y="793" type="curve"/>
+ <point x="632" y="793" type="line"/>
+ <point x="610" y="906"/>
+ <point x="602" y="987"/>
+ <point x="593" y="1084" type="curve"/>
+ <point x="682" y="1027"/>
+ <point x="747" y="981"/>
+ <point x="830" y="914" type="curve"/>
+ <point x="936" y="1089" type="line"/>
+ <point x="827" y="1127"/>
+ <point x="743" y="1155"/>
+ <point x="651" y="1196" type="curve"/>
+ <point x="738" y="1241"/>
+ <point x="820" y="1277"/>
+ <point x="924" y="1321" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..47fee96
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1742"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1140" y="10" type="line"/>
+ <point x="1077" y="-34"/>
+ <point x="988" y="-60"/>
+ <point x="895" y="-60" type="curve" smooth="yes"/>
+ <point x="558" y="-60"/>
+ <point x="290" y="204"/>
+ <point x="290" y="605" type="curve" smooth="yes"/>
+ <point x="290" y="973"/>
+ <point x="557" y="1240"/>
+ <point x="895" y="1240" type="curve" smooth="yes"/>
+ <point x="1278" y="1240"/>
+ <point x="1460" y="992"/>
+ <point x="1460" y="670" type="curve" smooth="yes"/>
+ <point x="1460" y="452"/>
+ <point x="1363" y="335"/>
+ <point x="1305" y="335" type="curve" smooth="yes"/>
+ <point x="1256" y="335"/>
+ <point x="1220" y="430"/>
+ <point x="1220" y="650" type="curve" smooth="yes"/>
+ <point x="1220" y="980" type="line"/>
+ <point x="1133" y="1015"/>
+ <point x="986" y="1040"/>
+ <point x="905" y="1040" type="curve" smooth="yes"/>
+ <point x="741" y="1040"/>
+ <point x="618" y="961"/>
+ <point x="535" y="825" type="curve" smooth="yes"/>
+ <point x="488" y="746"/>
+ <point x="460" y="653"/>
+ <point x="460" y="530" type="curve" smooth="yes"/>
+ <point x="460" y="304"/>
+ <point x="606" y="163"/>
+ <point x="740" y="163" type="curve" smooth="yes"/>
+ <point x="867" y="163"/>
+ <point x="1013" y="331"/>
+ <point x="1065" y="455" type="curve"/>
+ <point x="1075" y="287"/>
+ <point x="1153" y="160"/>
+ <point x="1275" y="160" type="curve" smooth="yes"/>
+ <point x="1450" y="160"/>
+ <point x="1650" y="358"/>
+ <point x="1650" y="700" type="curve" smooth="yes"/>
+ <point x="1650" y="1137"/>
+ <point x="1342" y="1425"/>
+ <point x="905" y="1425" type="curve" smooth="yes"/>
+ <point x="480" y="1425"/>
+ <point x="90" y="1136"/>
+ <point x="90" y="575" type="curve" smooth="yes"/>
+ <point x="90" y="38"/>
+ <point x="479" y="-245"/>
+ <point x="880" y="-245" type="curve" smooth="yes"/>
+ <point x="1015" y="-245"/>
+ <point x="1175" y="-198"/>
+ <point x="1275" y="-128" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1020" y="710" type="line"/>
+ <point x="988" y="572"/>
+ <point x="863" y="350"/>
+ <point x="773" y="350" type="curve" smooth="yes"/>
+ <point x="701" y="350"/>
+ <point x="660" y="428"/>
+ <point x="660" y="575" type="curve" smooth="yes"/>
+ <point x="660" y="652"/>
+ <point x="682" y="737"/>
+ <point x="720" y="786" type="curve" smooth="yes"/>
+ <point x="756" y="831"/>
+ <point x="807" y="855"/>
+ <point x="875" y="855" type="curve" smooth="yes"/>
+ <point x="949" y="855"/>
+ <point x="987" y="836"/>
+ <point x="1020" y="820" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..c8db8e3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="880"/>
+ <unicode hex="005E"/>
+ <anchor x="440" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="888" y="1200" type="line"/>
+ <point x="598" y="1600" type="line"/>
+ <point x="298" y="1600" type="line"/>
+ <point x="8" y="1200" type="line"/>
+ <point x="248" y="1200" type="line"/>
+ <point x="448" y="1430" type="line"/>
+ <point x="648" y="1200" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocUIDs</key>
+ <array>
+ <string>003E</string>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..ae4801a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="710"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..5574223
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-600" y="1635" name="U"/>
+ <anchor x="-540" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1600" type="line"/>
+ <point x="-760" y="1200" type="line"/>
+ <point x="-520" y="1200" type="line"/>
+ <point x="-120" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..ca30491
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-588" y="1635" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-140" y="1200" type="line"/>
+ <point x="-430" y="1600" type="line"/>
+ <point x="-730" y="1600" type="line"/>
+ <point x="-1020" y="1200" type="line"/>
+ <point x="-780" y="1200" type="line"/>
+ <point x="-580" y="1430" type="line"/>
+ <point x="-380" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..5a15368
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-580" y="1585" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-510" y="1385" type="curve" smooth="yes"/>
+ <point x="-510" y="1281"/>
+ <point x="-436" y="1210"/>
+ <point x="-335" y="1210" type="curve" smooth="yes"/>
+ <point x="-233" y="1210"/>
+ <point x="-160" y="1281"/>
+ <point x="-160" y="1385" type="curve" smooth="yes"/>
+ <point x="-160" y="1487"/>
+ <point x="-233" y="1560"/>
+ <point x="-335" y="1560" type="curve" smooth="yes"/>
+ <point x="-436" y="1560"/>
+ <point x="-510" y="1487"/>
+ </contour>
+ <contour>
+ <point x="-1000" y="1385" type="curve" smooth="yes"/>
+ <point x="-1000" y="1281"/>
+ <point x="-926" y="1210"/>
+ <point x="-825" y="1210" type="curve" smooth="yes"/>
+ <point x="-723" y="1210"/>
+ <point x="-650" y="1281"/>
+ <point x="-650" y="1385" type="curve" smooth="yes"/>
+ <point x="-650" y="1487"/>
+ <point x="-723" y="1560"/>
+ <point x="-825" y="1560" type="curve" smooth="yes"/>
+ <point x="-926" y="1560"/>
+ <point x="-1000" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..33bed8f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-590" y="1635" name="U"/>
+ <anchor x="-630" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-1050" y="1600" type="line"/>
+ <point x="-650" y="1200" type="line"/>
+ <point x="-410" y="1200" type="line"/>
+ <point x="-700" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..7e03146
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-475" y="1400" type="curve" smooth="yes"/>
+ <point x="-475" y="1345"/>
+ <point x="-515" y="1305"/>
+ <point x="-570" y="1305" type="curve" smooth="yes"/>
+ <point x="-625" y="1305"/>
+ <point x="-665" y="1345"/>
+ <point x="-665" y="1400" type="curve" smooth="yes"/>
+ <point x="-665" y="1455"/>
+ <point x="-625" y="1495"/>
+ <point x="-570" y="1495" type="curve" smooth="yes"/>
+ <point x="-515" y="1495"/>
+ <point x="-475" y="1455"/>
+ </contour>
+ <contour>
+ <point x="-815" y="1400" type="curve" smooth="yes"/>
+ <point x="-815" y="1260"/>
+ <point x="-710" y="1160"/>
+ <point x="-570" y="1160" type="curve" smooth="yes"/>
+ <point x="-430" y="1160"/>
+ <point x="-325" y="1260"/>
+ <point x="-325" y="1400" type="curve" smooth="yes"/>
+ <point x="-325" y="1540"/>
+ <point x="-430" y="1640"/>
+ <point x="-570" y="1640" type="curve" smooth="yes"/>
+ <point x="-710" y="1640"/>
+ <point x="-815" y="1540"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..ee23af5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-580" y="1490" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-830" y="1190" type="line"/>
+ <point x="-824" y="1232"/>
+ <point x="-803" y="1280"/>
+ <point x="-753" y="1280" type="curve" smooth="yes"/>
+ <point x="-710" y="1280"/>
+ <point x="-653" y="1264"/>
+ <point x="-570" y="1229" type="curve" smooth="yes"/>
+ <point x="-500" y="1199"/>
+ <point x="-448" y="1180"/>
+ <point x="-386" y="1180" type="curve" smooth="yes"/>
+ <point x="-250" y="1180"/>
+ <point x="-155" y="1307"/>
+ <point x="-155" y="1480" type="curve"/>
+ <point x="-310" y="1480" type="line"/>
+ <point x="-318" y="1438"/>
+ <point x="-340" y="1390"/>
+ <point x="-387" y="1390" type="curve" smooth="yes"/>
+ <point x="-435" y="1390"/>
+ <point x="-472" y="1408"/>
+ <point x="-550" y="1437" type="curve" smooth="yes"/>
+ <point x="-629" y="1466"/>
+ <point x="-695" y="1490"/>
+ <point x="-760" y="1490" type="curve" smooth="yes"/>
+ <point x="-892" y="1490"/>
+ <point x="-985" y="1349"/>
+ <point x="-985" y="1190" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..9d4845e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="665"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..a59fff4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="877" y="-25"/>
+ <point x="1130" y="144"/>
+ <point x="1130" y="415" type="curve" smooth="yes"/>
+ <point x="1130" y="641"/>
+ <point x="985" y="739"/>
+ <point x="875" y="795" type="curve"/>
+ <point x="953" y="841"/>
+ <point x="1060" y="923"/>
+ <point x="1060" y="1105" type="curve" smooth="yes"/>
+ <point x="1060" y="1350"/>
+ <point x="860" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="361" y="1485"/>
+ <point x="140" y="1350"/>
+ <point x="140" y="1105" type="curve" smooth="yes"/>
+ <point x="140" y="923"/>
+ <point x="252" y="838"/>
+ <point x="330" y="795" type="curve"/>
+ <point x="201" y="725"/>
+ <point x="70" y="631"/>
+ <point x="70" y="405" type="curve" smooth="yes"/>
+ <point x="70" y="134"/>
+ <point x="324" y="-25"/>
+ </contour>
+ <contour>
+ <point x="810" y="1100" type="curve" smooth="yes"/>
+ <point x="810" y="974"/>
+ <point x="733" y="895"/>
+ <point x="600" y="895" type="curve" smooth="yes"/>
+ <point x="467" y="895"/>
+ <point x="390" y="974"/>
+ <point x="390" y="1100" type="curve" smooth="yes"/>
+ <point x="390" y="1217"/>
+ <point x="477" y="1290"/>
+ <point x="600" y="1290" type="curve" smooth="yes"/>
+ <point x="743" y="1290"/>
+ <point x="810" y="1207"/>
+ </contour>
+ <contour>
+ <point x="865" y="435" type="curve" smooth="yes"/>
+ <point x="865" y="300"/>
+ <point x="768" y="185"/>
+ <point x="600" y="185" type="curve" smooth="yes"/>
+ <point x="440" y="185"/>
+ <point x="335" y="300"/>
+ <point x="335" y="435" type="curve" smooth="yes"/>
+ <point x="335" y="582"/>
+ <point x="450" y="680"/>
+ <point x="600" y="680" type="curve" smooth="yes"/>
+ <point x="748" y="680"/>
+ <point x="865" y="582"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..102780d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="645" type="line"/>
+ <point x="299" y="693"/>
+ <point x="404" y="710"/>
+ <point x="510" y="710" type="curve" smooth="yes"/>
+ <point x="670" y="710"/>
+ <point x="810" y="632"/>
+ <point x="810" y="470" type="curve" smooth="yes"/>
+ <point x="810" y="318"/>
+ <point x="690" y="215"/>
+ <point x="530" y="215" type="curve" smooth="yes"/>
+ <point x="390" y="215"/>
+ <point x="274" y="252"/>
+ <point x="140" y="360" type="curve"/>
+ <point x="100" y="80" type="line"/>
+ <point x="225" y="2"/>
+ <point x="365" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="833" y="-25"/>
+ <point x="1090" y="163"/>
+ <point x="1090" y="475" type="curve" smooth="yes"/>
+ <point x="1090" y="752"/>
+ <point x="882" y="930"/>
+ <point x="605" y="930" type="curve" smooth="yes"/>
+ <point x="543" y="930"/>
+ <point x="468" y="911"/>
+ <point x="435" y="895" type="curve"/>
+ <point x="435" y="1215" type="line"/>
+ <point x="765" y="1215" type="line" smooth="yes"/>
+ <point x="849" y="1215"/>
+ <point x="955" y="1211"/>
+ <point x="1030" y="1195" type="curve"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="175" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..7d2cbe6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1155" y="345" type="line"/>
+ <point x="1155" y="570" type="line"/>
+ <point x="995" y="570" type="line"/>
+ <point x="995" y="1460" type="line"/>
+ <point x="695" y="1460" type="line"/>
+ <point x="60" y="570" type="line"/>
+ <point x="60" y="345" type="line"/>
+ <point x="730" y="345" type="line"/>
+ <point x="730" y="0" type="line"/>
+ <point x="995" y="0" type="line"/>
+ <point x="995" y="345" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1145" type="line"/>
+ <point x="730" y="570" type="line"/>
+ <point x="305" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..b1e153b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="154" y="65" type="line"/>
+ <point x="248" y="5"/>
+ <point x="364" y="-25"/>
+ <point x="492" y="-25" type="curve" smooth="yes"/>
+ <point x="967" y="-25"/>
+ <point x="1135" y="411"/>
+ <point x="1135" y="780" type="curve" smooth="yes"/>
+ <point x="1135" y="1150"/>
+ <point x="977" y="1485"/>
+ <point x="589" y="1485" type="curve" smooth="yes"/>
+ <point x="310" y="1485"/>
+ <point x="70" y="1300"/>
+ <point x="70" y="1002" type="curve" smooth="yes"/>
+ <point x="70" y="763"/>
+ <point x="272" y="576"/>
+ <point x="550" y="576" type="curve" smooth="yes"/>
+ <point x="741" y="576"/>
+ <point x="913" y="707"/>
+ <point x="1010" y="868" type="curve"/>
+ <point x="939" y="991" type="line"/>
+ <point x="865" y="877"/>
+ <point x="729" y="790"/>
+ <point x="574" y="790" type="curve" smooth="yes"/>
+ <point x="425" y="790"/>
+ <point x="326" y="890"/>
+ <point x="326" y="1036" type="curve" smooth="yes"/>
+ <point x="326" y="1153"/>
+ <point x="425" y="1250"/>
+ <point x="573" y="1250" type="curve" smooth="yes"/>
+ <point x="773" y="1250"/>
+ <point x="870" y="1102"/>
+ <point x="870" y="813" type="curve" smooth="yes"/>
+ <point x="870" y="326"/>
+ <point x="699" y="210"/>
+ <point x="502" y="210" type="curve" smooth="yes"/>
+ <point x="406" y="210"/>
+ <point x="294" y="234"/>
+ <point x="208" y="320" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..c744b9f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1075" y="235" type="line"/>
+ <point x="767" y="235" type="line"/>
+ <point x="767" y="1460" type="line"/>
+ <point x="492" y="1460" type="line"/>
+ <point x="177" y="1278" type="line"/>
+ <point x="212" y="1018" type="line"/>
+ <point x="492" y="1170" type="line"/>
+ <point x="492" y="235" type="line"/>
+ <point x="185" y="235" type="line"/>
+ <point x="185" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..63fb1c4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="520" y="0" type="line"/>
+ <point x="649" y="459"/>
+ <point x="834" y="855"/>
+ <point x="1130" y="1260" type="curve"/>
+ <point x="1130" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1195" type="line"/>
+ <point x="176" y="1211"/>
+ <point x="292" y="1215"/>
+ <point x="480" y="1215" type="curve" smooth="yes"/>
+ <point x="800" y="1215" type="line"/>
+ <point x="542" y="842"/>
+ <point x="409" y="566"/>
+ <point x="235" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..7526cc6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1395" type="line"/>
+ <point x="969" y="1465"/>
+ <point x="873" y="1485"/>
+ <point x="735" y="1485" type="curve" smooth="yes"/>
+ <point x="260" y="1485"/>
+ <point x="90" y="1069"/>
+ <point x="90" y="680" type="curve" smooth="yes"/>
+ <point x="90" y="223"/>
+ <point x="297" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="955" y="-25"/>
+ <point x="1155" y="179"/>
+ <point x="1155" y="470" type="curve" smooth="yes"/>
+ <point x="1155" y="729"/>
+ <point x="963" y="925"/>
+ <point x="675" y="925" type="curve" smooth="yes"/>
+ <point x="484" y="925"/>
+ <point x="338" y="810"/>
+ <point x="225" y="655" type="curve"/>
+ <point x="290" y="540" type="line"/>
+ <point x="372" y="643"/>
+ <point x="500" y="710"/>
+ <point x="655" y="710" type="curve" smooth="yes"/>
+ <point x="814" y="710"/>
+ <point x="900" y="601"/>
+ <point x="900" y="455" type="curve" smooth="yes"/>
+ <point x="900" y="329"/>
+ <point x="803" y="210"/>
+ <point x="656" y="210" type="curve" smooth="yes"/>
+ <point x="474" y="210"/>
+ <point x="355" y="386"/>
+ <point x="355" y="645" type="curve" smooth="yes"/>
+ <point x="355" y="1132"/>
+ <point x="528" y="1250"/>
+ <point x="725" y="1250" type="curve" smooth="yes"/>
+ <point x="821" y="1250"/>
+ <point x="923" y="1226"/>
+ <point x="1009" y="1140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..883bd62
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="885" type="line"/>
+ <point x="390" y="645" type="line"/>
+ <point x="480" y="645" type="line" smooth="yes"/>
+ <point x="706" y="645"/>
+ <point x="835" y="548"/>
+ <point x="835" y="425" type="curve" smooth="yes"/>
+ <point x="835" y="291"/>
+ <point x="708" y="210"/>
+ <point x="565" y="210" type="curve" smooth="yes"/>
+ <point x="405" y="210"/>
+ <point x="244" y="282"/>
+ <point x="135" y="405" type="curve"/>
+ <point x="100" y="130" type="line"/>
+ <point x="205" y="32"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="874" y="-25"/>
+ <point x="1120" y="170"/>
+ <point x="1120" y="405" type="curve" smooth="yes"/>
+ <point x="1120" y="672"/>
+ <point x="892" y="756"/>
+ <point x="750" y="780" type="curve"/>
+ <point x="892" y="809"/>
+ <point x="1070" y="957"/>
+ <point x="1070" y="1140" type="curve" smooth="yes"/>
+ <point x="1070" y="1354"/>
+ <point x="868" y="1485"/>
+ <point x="580" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="240" y="1416"/>
+ <point x="160" y="1325" type="curve"/>
+ <point x="195" y="1095" type="line"/>
+ <point x="308" y="1211"/>
+ <point x="436" y="1250"/>
+ <point x="590" y="1250" type="curve" smooth="yes"/>
+ <point x="689" y="1250"/>
+ <point x="791" y="1193"/>
+ <point x="791" y="1102" type="curve" smooth="yes"/>
+ <point x="791" y="994"/>
+ <point x="662" y="885"/>
+ <point x="480" y="885" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..1d73732
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="260" type="line"/>
+ <point x="1010" y="246"/>
+ <point x="942" y="245"/>
+ <point x="745" y="245" type="curve" smooth="yes"/>
+ <point x="480" y="245" type="line"/>
+ <point x="699" y="422"/>
+ <point x="1046" y="739"/>
+ <point x="1046" y="1065" type="curve" smooth="yes"/>
+ <point x="1046" y="1323"/>
+ <point x="850" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="196" y="1402"/>
+ <point x="105" y="1290" type="curve"/>
+ <point x="170" y="1050" type="line"/>
+ <point x="259" y="1158"/>
+ <point x="412" y="1235"/>
+ <point x="535" y="1235" type="curve" smooth="yes"/>
+ <point x="688" y="1235"/>
+ <point x="758" y="1133"/>
+ <point x="758" y="1015" type="curve" smooth="yes"/>
+ <point x="758" y="758"/>
+ <point x="381" y="415"/>
+ <point x="110" y="220" type="curve"/>
+ <point x="110" y="0" type="line"/>
+ <point x="1090" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..01f4532
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="715" type="curve" smooth="yes"/>
+ <point x="850" y="368"/>
+ <point x="762" y="205"/>
+ <point x="600" y="205" type="curve" smooth="yes"/>
+ <point x="432" y="205"/>
+ <point x="350" y="375"/>
+ <point x="350" y="745" type="curve" smooth="yes"/>
+ <point x="350" y="1093"/>
+ <point x="437" y="1255"/>
+ <point x="600" y="1255" type="curve" smooth="yes"/>
+ <point x="772" y="1255"/>
+ <point x="850" y="1086"/>
+ </contour>
+ <contour>
+ <point x="1135" y="740" type="curve" smooth="yes"/>
+ <point x="1135" y="1286"/>
+ <point x="950" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="291" y="1485"/>
+ <point x="65" y="1283"/>
+ <point x="65" y="720" type="curve" smooth="yes"/>
+ <point x="65" y="165"/>
+ <point x="271" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="911" y="-25"/>
+ <point x="1135" y="161"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..f8b49cd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1006" y="1316" type="line"/>
+ <point x="886" y="1374"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="150" y="1203"/>
+ <point x="150" y="1017" type="curve" smooth="yes"/>
+ <point x="150" y="830"/>
+ <point x="275" y="730"/>
+ <point x="540" y="623" type="curve" smooth="yes"/>
+ <point x="802" y="517"/>
+ <point x="851" y="472"/>
+ <point x="851" y="386" type="curve" smooth="yes"/>
+ <point x="851" y="267"/>
+ <point x="744" y="211"/>
+ <point x="586" y="211" type="curve" smooth="yes"/>
+ <point x="440" y="211"/>
+ <point x="297" y="281"/>
+ <point x="195" y="383" type="curve"/>
+ <point x="123" y="124" type="line"/>
+ <point x="216" y="49"/>
+ <point x="388" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="847" y="0"/>
+ <point x="1086" y="147"/>
+ <point x="1086" y="414" type="curve" smooth="yes"/>
+ <point x="1086" y="633"/>
+ <point x="927" y="723"/>
+ <point x="679" y="826" type="curve" smooth="yes"/>
+ <point x="431" y="929"/>
+ <point x="385" y="969"/>
+ <point x="385" y="1040" type="curve" smooth="yes"/>
+ <point x="385" y="1132"/>
+ <point x="466" y="1188"/>
+ <point x="613" y="1188" type="curve" smooth="yes"/>
+ <point x="741" y="1188"/>
+ <point x="876" y="1154"/>
+ <point x="949" y="1077" type="curve"/>
+ </contour>
+ <contour>
+ <point x="548" y="1600" type="line"/>
+ <point x="548" y="788" type="line"/>
+ <point x="518" y="726" type="line"/>
+ <point x="518" y="-220" type="line"/>
+ <point x="688" y="-220" type="line"/>
+ <point x="688" y="668" type="line"/>
+ <point x="718" y="734" type="line"/>
+ <point x="718" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..9eeb2ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="440" type="line"/>
+ <point x="1080" y="440" type="line"/>
+ <point x="1080" y="650" type="line"/>
+ <point x="120" y="650" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="810" type="line"/>
+ <point x="1080" y="810" type="line"/>
+ <point x="1080" y="1020" type="line"/>
+ <point x="120" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..cfdf1a6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="780"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="530" y="500" type="line"/>
+ <point x="536" y="790"/>
+ <point x="531" y="1076"/>
+ <point x="570" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="790"/>
+ <point x="275" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="230" y="150" type="curve" smooth="yes"/>
+ <point x="230" y="46"/>
+ <point x="304" y="-25"/>
+ <point x="405" y="-25" type="curve" smooth="yes"/>
+ <point x="507" y="-25"/>
+ <point x="580" y="46"/>
+ <point x="580" y="150" type="curve" smooth="yes"/>
+ <point x="580" y="252"/>
+ <point x="507" y="325"/>
+ <point x="405" y="325" type="curve" smooth="yes"/>
+ <point x="304" y="325"/>
+ <point x="230" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..b05d598
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="710"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..650e4d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="245" type="line"/>
+ <point x="1090" y="635" type="line"/>
+ <point x="1090" y="825" type="line"/>
+ <point x="130" y="1215" type="line"/>
+ <point x="130" y="985" type="line"/>
+ <point x="810" y="730" type="line"/>
+ <point x="130" y="475" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..83a5f21
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="640"/>
+ <unicode hex="0060"/>
+ <anchor x="500" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="0" y="1600" type="line"/>
+ <point x="400" y="1200" type="line"/>
+ <point x="640" y="1200" type="line"/>
+ <point x="350" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..d79c70a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="880"/>
+ <unicode hex="2010"/>
+ <anchor x="440" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="70" y="525" type="line"/>
+ <point x="810" y="525" type="line"/>
+ <point x="810" y="735" type="line"/>
+ <point x="70" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..b88bdd4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="895"/>
+ <unicode hex="002D"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="525" type="line"/>
+ <point x="815" y="525" type="line"/>
+ <point x="815" y="735" type="line"/>
+ <point x="80" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..916f8cf
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="895"/>
+ <unicode hex="00AD"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ab92cf3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1070" y="475" type="line"/>
+ <point x="390" y="730" type="line"/>
+ <point x="1070" y="985" type="line"/>
+ <point x="1070" y="1215" type="line"/>
+ <point x="110" y="825" type="line"/>
+ <point x="110" y="635" type="line"/>
+ <point x="1070" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..2370b56
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="895" y="-179" type="line"/>
+ <point x="828" y="-160"/>
+ <point x="704" y="-122"/>
+ <point x="685" y="-100" type="curve" smooth="yes"/>
+ <point x="650" y="-60"/>
+ <point x="663" y="411"/>
+ <point x="645" y="445" type="curve" smooth="yes"/>
+ <point x="621" y="491"/>
+ <point x="483" y="580"/>
+ <point x="483" y="615" type="curve" smooth="yes"/>
+ <point x="483" y="650"/>
+ <point x="620" y="740"/>
+ <point x="643" y="785" type="curve" smooth="yes"/>
+ <point x="661" y="820"/>
+ <point x="650" y="1289"/>
+ <point x="685" y="1330" type="curve" smooth="yes"/>
+ <point x="702" y="1351"/>
+ <point x="807" y="1390"/>
+ <point x="870" y="1409" type="curve"/>
+ <point x="820" y="1640" type="line"/>
+ <point x="692" y="1613"/>
+ <point x="502" y="1562"/>
+ <point x="455" y="1515" type="curve" smooth="yes"/>
+ <point x="381" y="1442"/>
+ <point x="392" y="852"/>
+ <point x="370" y="820" type="curve" smooth="yes"/>
+ <point x="340" y="777"/>
+ <point x="170" y="670"/>
+ <point x="170" y="615" type="curve" smooth="yes"/>
+ <point x="170" y="560"/>
+ <point x="340" y="453"/>
+ <point x="370" y="410" type="curve" smooth="yes"/>
+ <point x="392" y="378"/>
+ <point x="380" y="-213"/>
+ <point x="455" y="-285" type="curve" smooth="yes"/>
+ <point x="505" y="-333"/>
+ <point x="709" y="-383"/>
+ <point x="845" y="-410" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..99e1982
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="686" y="-240" type="line"/>
+ <point x="462" y="11"/>
+ <point x="376" y="335"/>
+ <point x="376" y="635" type="curve" smooth="yes"/>
+ <point x="376" y="938"/>
+ <point x="466" y="1261"/>
+ <point x="676" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..dcf019b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="710" y="-410" type="line"/>
+ <point x="710" y="-200" type="line"/>
+ <point x="470" y="-200" type="line"/>
+ <point x="470" y="1390" type="line"/>
+ <point x="710" y="1390" type="line"/>
+ <point x="710" y="1600" type="line"/>
+ <point x="190" y="1600" type="line"/>
+ <point x="190" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..225c4ce
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-350" type="line"/>
+ <point x="1274" y="-350" type="line"/>
+ <point x="1274" y="-140" type="line"/>
+ <point x="0" y="-140" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..cf1b900
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1485"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..9fa1f45
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1485"/>
+ <unicode hex="0041"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..79101d0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1485"/>
+ <unicode hex="00C4"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1312" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..df49e47
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1385"/>
+ <unicode hex="0042"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="1248" type="line"/>
+ <point x="487" y="1250"/>
+ <point x="562" y="1253"/>
+ <point x="631" y="1253" type="curve" smooth="yes"/>
+ <point x="818" y="1253"/>
+ <point x="897" y="1196"/>
+ <point x="897" y="1077" type="curve" smooth="yes"/>
+ <point x="897" y="951"/>
+ <point x="794" y="875"/>
+ <point x="605" y="875" type="curve" smooth="yes"/>
+ <point x="450" y="875" type="line"/>
+ </contour>
+ <contour>
+ <point x="1245" y="430" type="curve" smooth="yes"/>
+ <point x="1245" y="672"/>
+ <point x="1084" y="760"/>
+ <point x="935" y="800" type="curve"/>
+ <point x="1065" y="850"/>
+ <point x="1170" y="947"/>
+ <point x="1170" y="1110" type="curve" smooth="yes"/>
+ <point x="1170" y="1378"/>
+ <point x="937" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="422" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="455" type="line" smooth="yes"/>
+ <point x="165" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="401" y="-10"/>
+ <point x="631" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1245" y="181"/>
+ </contour>
+ <contour>
+ <point x="450" y="658" type="line"/>
+ <point x="643" y="658" type="line" smooth="yes"/>
+ <point x="853" y="658"/>
+ <point x="972" y="587"/>
+ <point x="972" y="450" type="curve" smooth="yes"/>
+ <point x="972" y="269"/>
+ <point x="826" y="215"/>
+ <point x="652" y="215" type="curve" smooth="yes"/>
+ <point x="552" y="215"/>
+ <point x="483" y="218"/>
+ <point x="450" y="220" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..78c5238
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1385"/>
+ <unicode hex="0043"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1215" y="405" type="line"/>
+ <point x="1105" y="293"/>
+ <point x="940" y="220"/>
+ <point x="790" y="220" type="curve" smooth="yes"/>
+ <point x="531" y="220"/>
+ <point x="375" y="413"/>
+ <point x="375" y="735" type="curve" smooth="yes"/>
+ <point x="375" y="1074"/>
+ <point x="557" y="1245"/>
+ <point x="800" y="1245" type="curve" smooth="yes"/>
+ <point x="931" y="1245"/>
+ <point x="1053" y="1205"/>
+ <point x="1180" y="1105" type="curve"/>
+ <point x="1250" y="1345" type="line"/>
+ <point x="1106" y="1449"/>
+ <point x="969" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="90" y="1225"/>
+ <point x="90" y="710" type="curve" smooth="yes"/>
+ <point x="90" y="260"/>
+ <point x="341" y="-25"/>
+ <point x="755" y="-25" type="curve" smooth="yes"/>
+ <point x="926" y="-25"/>
+ <point x="1142" y="42"/>
+ <point x="1265" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..4dd3b9c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1485"/>
+ <unicode hex="0044"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="800" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="455" type="line"/>
+ <point x="164" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="474" y="-10"/>
+ <point x="609" y="-10" type="curve" smooth="yes"/>
+ <point x="919" y="-10"/>
+ <point x="1370" y="145"/>
+ <point x="1370" y="740" type="curve" smooth="yes"/>
+ <point x="1370" y="1374"/>
+ <point x="906" y="1470"/>
+ <point x="630" y="1470" type="curve" smooth="yes"/>
+ <point x="487" y="1470"/>
+ <point x="239" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1241" type="line"/>
+ <point x="492" y="1243"/>
+ <point x="582" y="1246"/>
+ <point x="637" y="1246" type="curve" smooth="yes"/>
+ <point x="897" y="1246"/>
+ <point x="1078" y="1118"/>
+ <point x="1078" y="720" type="curve" smooth="yes"/>
+ <point x="1078" y="357"/>
+ <point x="856" y="221"/>
+ <point x="633" y="221" type="curve" smooth="yes"/>
+ <point x="554" y="221"/>
+ <point x="489" y="227"/>
+ <point x="450" y="231" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..9572dfd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1212"/>
+ <unicode hex="0045"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1004" y="0" name="O"/>
+ <anchor x="1247" y="1200" name="R"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="875" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1072" y="1230" type="line"/>
+ <point x="1072" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1102" y="0" type="line"/>
+ <point x="1102" y="245" type="line"/>
+ <point x="1024" y="231"/>
+ <point x="899" y="230"/>
+ <point x="708" y="230" type="curve" smooth="yes"/>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="650" type="line"/>
+ <point x="997" y="650" type="line"/>
+ <point x="997" y="875" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9f4f14b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1200"/>
+ <unicode hex="0046"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="630" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1090" y="1230" type="line"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1217"/>
+ <point x="165" y="1020" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="450" y="73"/>
+ <point x="450" y="222"/>
+ <point x="450" y="408" type="curve" smooth="yes"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1005" y="635" type="line"/>
+ <point x="1005" y="860" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..8358b8a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1472"/>
+ <unicode hex="0047"/>
+ <anchor x="807" y="0" name="H"/>
+ <anchor x="807" y="-100" name="L"/>
+ <anchor x="807" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1337" y="785" type="line"/>
+ <point x="767" y="785" type="line"/>
+ <point x="767" y="560" type="line"/>
+ <point x="1082" y="560" type="line"/>
+ <point x="1082" y="294" type="line"/>
+ <point x="966" y="236"/>
+ <point x="883" y="220"/>
+ <point x="769" y="220" type="curve" smooth="yes"/>
+ <point x="532" y="220"/>
+ <point x="375" y="420"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="545" y="1245"/>
+ <point x="810" y="1245" type="curve" smooth="yes"/>
+ <point x="953" y="1245"/>
+ <point x="1097" y="1205"/>
+ <point x="1236" y="1107" type="curve"/>
+ <point x="1322" y="1345" type="line"/>
+ <point x="1137" y="1462"/>
+ <point x="989" y="1485"/>
+ <point x="818" y="1485" type="curve" smooth="yes"/>
+ <point x="403" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="377" y="-25"/>
+ <point x="777" y="-25" type="curve" smooth="yes"/>
+ <point x="960" y="-25"/>
+ <point x="1120" y="11"/>
+ <point x="1337" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..2e2e5e6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1515"/>
+ <unicode hex="0048"/>
+ <anchor x="305" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="1460" type="line"/>
+ <point x="1040" y="860" type="line"/>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1227"/>
+ <point x="165" y="1030" type="curve" smooth="yes"/>
+ <point x="165" y="430" type="line" smooth="yes"/>
+ <point x="165" y="233"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="450" y="0"/>
+ <point x="450" y="0" type="curve"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1040" y="635" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1340" y="0"/>
+ <point x="1340" y="0" type="curve"/>
+ <point x="1325" y="80"/>
+ <point x="1325" y="233"/>
+ <point x="1325" y="430" type="curve" smooth="yes"/>
+ <point x="1325" y="1030" type="line" smooth="yes"/>
+ <point x="1325" y="1227"/>
+ <point x="1325" y="1380"/>
+ <point x="1340" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..388486b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1045"/>
+ <unicode hex="0049"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="516" y="-100" name="L"/>
+ <anchor x="712" y="0" name="O"/>
+ <anchor x="1014" y="1200" name="R"/>
+ <anchor x="520" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1460" type="line"/>
+ <point x="130" y="1255" type="line"/>
+ <point x="370" y="1255" type="line"/>
+ <point x="370" y="205" type="line"/>
+ <point x="130" y="205" type="line"/>
+ <point x="130" y="0" type="line"/>
+ <point x="895" y="0" type="line"/>
+ <point x="895" y="205" type="line"/>
+ <point x="655" y="205" type="line"/>
+ <point x="655" y="1255" type="line"/>
+ <point x="895" y="1255" type="line"/>
+ <point x="895" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..8ee9ce3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1030"/>
+ <unicode hex="004A"/>
+ <anchor x="415" y="-100" name="L"/>
+ <anchor x="705" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="555" y="1460" type="line"/>
+ <point x="568" y="1354"/>
+ <point x="570" y="1175"/>
+ <point x="570" y="980" type="curve" smooth="yes"/>
+ <point x="570" y="558" type="line" smooth="yes"/>
+ <point x="570" y="383"/>
+ <point x="540" y="227"/>
+ <point x="365" y="227" type="curve" smooth="yes"/>
+ <point x="264" y="227"/>
+ <point x="153" y="270"/>
+ <point x="79" y="347" type="curve"/>
+ <point x="30" y="90" type="line"/>
+ <point x="109" y="9"/>
+ <point x="258" y="-25"/>
+ <point x="363" y="-25" type="curve" smooth="yes"/>
+ <point x="658" y="-25"/>
+ <point x="855" y="129"/>
+ <point x="855" y="535" type="curve" smooth="yes"/>
+ <point x="855" y="618"/>
+ <point x="855" y="1460"/>
+ <point x="855" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..abb6ff7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1430"/>
+ <unicode hex="004B"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="944" y="1460" type="line"/>
+ <point x="371" y="732" type="line"/>
+ <point x="579" y="676" type="line"/>
+ <point x="1280" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="389" y="731" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ <point x="614" y="829" type="line"/>
+ </contour>
+ <contour>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="450" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..e1c1e2e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1130"/>
+ <unicode hex="004C"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="650" y="1200" name="R"/>
+ <anchor x="620" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1085" y="0" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="1008" y="231"/>
+ <point x="855" y="230"/>
+ <point x="666" y="230" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..8da241e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1855"/>
+ <unicode hex="004D"/>
+ <anchor x="915" y="-100" name="L"/>
+ <anchor x="915" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="275" type="line"/>
+ <point x="575" y="1460" type="line"/>
+ <point x="315" y="1460" type="line"/>
+ <point x="436" y="1170" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1065" y="0" type="line"/>
+ <point x="1397" y="1170" type="line"/>
+ <point x="1517" y="1460" type="line"/>
+ <point x="1260" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="220" y="1460" type="line"/>
+ <point x="220" y="1460"/>
+ <point x="176" y="198"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="420" y="0" type="line"/>
+ <point x="449" y="1205" type="line"/>
+ <point x="485" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1680" y="0" type="line"/>
+ <point x="1651" y="198"/>
+ <point x="1610" y="1460"/>
+ <point x="1610" y="1460" type="curve"/>
+ <point x="1340" y="1460" type="line"/>
+ <point x="1385" y="1205" type="line"/>
+ <point x="1410" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..aa2b5c4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1545"/>
+ <unicode hex="004E"/>
+ <anchor x="1240" y="0" name="H"/>
+ <anchor x="765" y="-100" name="L"/>
+ <anchor x="765" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="223" y="1310" type="line"/>
+ <point x="1095" y="0" type="line"/>
+ <point x="1297" y="150" type="line"/>
+ <point x="425" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1095" y="0" type="line"/>
+ <point x="1355" y="0" type="line"/>
+ <point x="1355" y="1025" type="line" smooth="yes"/>
+ <point x="1355" y="1222"/>
+ <point x="1356" y="1380"/>
+ <point x="1370" y="1460" type="curve"/>
+ <point x="1095" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="425" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..10479ad
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1500"/>
+ <unicode hex="004F"/>
+ <anchor x="740" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="976" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="740" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="940" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="1072" y="-25"/>
+ <point x="1385" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..18e9ee0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1275"/>
+ <unicode hex="0050"/>
+ <anchor x="685" y="-100" name="L"/>
+ <anchor x="685" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="523" type="line"/>
+ <point x="515" y="516"/>
+ <point x="575" y="513"/>
+ <point x="648" y="513" type="curve" smooth="yes"/>
+ <point x="977" y="513"/>
+ <point x="1200" y="702"/>
+ <point x="1200" y="1010" type="curve" smooth="yes"/>
+ <point x="1200" y="1316"/>
+ <point x="981" y="1470"/>
+ <point x="658" y="1470" type="curve" smooth="yes"/>
+ <point x="445" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="237"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="506" y="1243"/>
+ <point x="544" y="1245"/>
+ <point x="622" y="1245" type="curve" smooth="yes"/>
+ <point x="833" y="1245"/>
+ <point x="915" y="1145"/>
+ <point x="915" y="1000" type="curve" smooth="yes"/>
+ <point x="915" y="820"/>
+ <point x="811" y="730"/>
+ <point x="618" y="730" type="curve" smooth="yes"/>
+ <point x="556" y="730"/>
+ <point x="493" y="733"/>
+ <point x="450" y="740" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..433087c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1545"/>
+ <unicode hex="0051"/>
+ <anchor x="747" y="-270" name="L"/>
+ <anchor x="747" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="840" y="-23"/>
+ <point x="889" y="-15" type="curve"/>
+ <point x="958" y="-15"/>
+ <point x="1266" y="-228"/>
+ <point x="1350" y="-228" type="curve" smooth="yes"/>
+ <point x="1424" y="-228"/>
+ <point x="1502" y="-68"/>
+ <point x="1535" y="-15" type="curve"/>
+ <point x="1394" y="1"/>
+ <point x="1277" y="68"/>
+ <point x="1146" y="142" type="curve"/>
+ <point x="1294" y="283"/>
+ <point x="1385" y="471"/>
+ </contour>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="943" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..6103056
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1380"/>
+ <unicode hex="0052"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="660" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="585" type="line"/>
+ <point x="625" y="585" type="line" smooth="yes"/>
+ <point x="910" y="585"/>
+ <point x="1175" y="723"/>
+ <point x="1175" y="1040" type="curve" smooth="yes"/>
+ <point x="1175" y="1329"/>
+ <point x="961" y="1470"/>
+ <point x="650" y="1470" type="curve" smooth="yes"/>
+ <point x="416" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="238"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="503" y="1243"/>
+ <point x="537" y="1245"/>
+ <point x="615" y="1245" type="curve" smooth="yes"/>
+ <point x="792" y="1245"/>
+ <point x="890" y="1186"/>
+ <point x="890" y="1035" type="curve" smooth="yes"/>
+ <point x="890" y="859"/>
+ <point x="780" y="800"/>
+ <point x="605" y="800" type="curve" smooth="yes"/>
+ <point x="450" y="800" type="line"/>
+ </contour>
+ <contour>
+ <point x="556" y="635" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1330" y="0" type="line"/>
+ <point x="1263" y="73"/>
+ <point x="827" y="687"/>
+ <point x="827" y="687" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..486ff77
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1243"/>
+ <unicode hex="0053"/>
+ <anchor x="616" y="0" name="H"/>
+ <anchor x="616" y="-100" name="L"/>
+ <anchor x="616" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="1395" type="line"/>
+ <point x="932" y="1458"/>
+ <point x="810" y="1485"/>
+ <point x="640" y="1485" type="curve" smooth="yes"/>
+ <point x="280" y="1485"/>
+ <point x="130" y="1239"/>
+ <point x="130" y="1060" type="curve" smooth="yes"/>
+ <point x="130" y="882"/>
+ <point x="196" y="754"/>
+ <point x="510" y="655" type="curve" smooth="yes"/>
+ <point x="800" y="563"/>
+ <point x="851" y="504"/>
+ <point x="851" y="420" type="curve" smooth="yes"/>
+ <point x="851" y="293"/>
+ <point x="730" y="220"/>
+ <point x="600" y="220" type="curve" smooth="yes"/>
+ <point x="439" y="220"/>
+ <point x="283" y="270"/>
+ <point x="140" y="385" type="curve"/>
+ <point x="90" y="110" type="line"/>
+ <point x="201" y="31"/>
+ <point x="391" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="895" y="-25"/>
+ <point x="1138" y="169"/>
+ <point x="1138" y="455" type="curve" smooth="yes"/>
+ <point x="1138" y="666"/>
+ <point x="994" y="787"/>
+ <point x="727" y="870" type="curve" smooth="yes"/>
+ <point x="464" y="952"/>
+ <point x="416" y="994"/>
+ <point x="416" y="1080" type="curve" smooth="yes"/>
+ <point x="416" y="1162"/>
+ <point x="506" y="1245"/>
+ <point x="630" y="1245" type="curve" smooth="yes"/>
+ <point x="771" y="1245"/>
+ <point x="873" y="1209"/>
+ <point x="1030" y="1130" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..5f87c10
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1275"/>
+ <unicode hex="0054"/>
+ <anchor x="632" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="632" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1210" type="line"/>
+ <point x="117" y="1227"/>
+ <point x="196" y="1230"/>
+ <point x="276" y="1230" type="curve" smooth="yes"/>
+ <point x="488" y="1230" type="line"/>
+ <point x="488" y="413" type="line" smooth="yes"/>
+ <point x="488" y="226"/>
+ <point x="485" y="76"/>
+ <point x="468" y="0" type="curve"/>
+ <point x="793" y="0" type="line"/>
+ <point x="776" y="76"/>
+ <point x="773" y="226"/>
+ <point x="773" y="413" type="curve" smooth="yes"/>
+ <point x="773" y="1230" type="line"/>
+ <point x="989" y="1230" type="line" smooth="yes"/>
+ <point x="1070" y="1230"/>
+ <point x="1148" y="1227"/>
+ <point x="1220" y="1210" type="curve"/>
+ <point x="1220" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..343e0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1490"/>
+ <unicode hex="0055"/>
+ <anchor x="732" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="950" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1015" y="1460" type="line"/>
+ <point x="1015" y="560" type="line" smooth="yes"/>
+ <point x="1015" y="344"/>
+ <point x="952" y="204"/>
+ <point x="735" y="204" type="curve" smooth="yes"/>
+ <point x="513" y="204"/>
+ <point x="450" y="344"/>
+ <point x="450" y="560" type="curve" smooth="yes"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="164" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="515" type="line" smooth="yes"/>
+ <point x="165" y="190"/>
+ <point x="356" y="-25"/>
+ <point x="735" y="-25" type="curve" smooth="yes"/>
+ <point x="1110" y="-25"/>
+ <point x="1300" y="190"/>
+ <point x="1300" y="515" type="curve" smooth="yes"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1232"/>
+ <point x="1302" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocUIDs</key>
+ <array>
+ <string>00fA</string>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..3468784
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1465"/>
+ <unicode hex="0056"/>
+ <anchor x="730" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="930" y="0" name="O"/>
+ <anchor x="722" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1460" type="line"/>
+ <point x="722" y="260" type="line"/>
+ <point x="330" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="58" y="1378"/>
+ <point x="96" y="1288"/>
+ <point x="165" y="1095" type="curve" smooth="yes"/>
+ <point x="555" y="0" type="line"/>
+ <point x="890" y="0" type="line"/>
+ <point x="1280" y="1095" type="line" smooth="yes"/>
+ <point x="1348" y="1289"/>
+ <point x="1384" y="1378"/>
+ <point x="1420" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..98329a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2135"/>
+ <unicode hex="0057"/>
+ <anchor x="1052" y="-100" name="L"/>
+ <anchor x="1052" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1490" y="0" type="line"/>
+ <point x="1655" y="0" type="line"/>
+ <point x="1965" y="1095" type="line" smooth="yes"/>
+ <point x="2020" y="1289"/>
+ <point x="2048" y="1378"/>
+ <point x="2080" y="1460" type="curve"/>
+ <point x="1770" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="995" y="1305" type="line"/>
+ <point x="1340" y="0" type="line"/>
+ <point x="1510" y="0" type="line"/>
+ <point x="1530" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="600" y="0" type="line"/>
+ <point x="765" y="0" type="line"/>
+ <point x="1105" y="1305" type="line"/>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="580" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="30" y="1460" type="line"/>
+ <point x="61" y="1381"/>
+ <point x="92" y="1286"/>
+ <point x="145" y="1095" type="curve" smooth="yes"/>
+ <point x="450" y="0" type="line"/>
+ <point x="620" y="0" type="line"/>
+ <point x="640" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..17126dd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1365"/>
+ <unicode hex="0058"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="0" type="line"/>
+ <point x="1310" y="0" type="line"/>
+ <point x="1249" y="82"/>
+ <point x="1211" y="125"/>
+ <point x="1083" y="336" type="curve" smooth="yes"/>
+ <point x="400" y="1460" type="line"/>
+ <point x="75" y="1460" type="line"/>
+ <point x="139" y="1376"/>
+ <point x="189" y="1317"/>
+ <point x="315" y="1110" type="curve"/>
+ </contour>
+ <contour>
+ <point x="605" y="947" type="line"/>
+ <point x="255" y="340" type="line" smooth="yes"/>
+ <point x="133" y="128"/>
+ <point x="93" y="86"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="700" y="609" type="line"/>
+ </contour>
+ <contour>
+ <point x="750" y="609" type="line"/>
+ <point x="1040" y="1110" type="line" smooth="yes"/>
+ <point x="1153" y="1306"/>
+ <point x="1211" y="1383"/>
+ <point x="1275" y="1460" type="curve"/>
+ <point x="950" y="1460" type="line"/>
+ <point x="655" y="947" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..a7a345d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1364"/>
+ <unicode hex="0059"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="560" type="line"/>
+ <point x="782" y="675" type="line"/>
+ <point x="357" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="137" y="1311"/>
+ <point x="203" y="1197"/>
+ <point x="280" y="1065" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="770" y="560" type="line"/>
+ <point x="1069" y="1065" type="line" smooth="yes"/>
+ <point x="1145" y="1195"/>
+ <point x="1201" y="1291"/>
+ <point x="1319" y="1460" type="curve"/>
+ <point x="997" y="1460" type="line"/>
+ <point x="577" y="675" type="line"/>
+ </contour>
+ <contour>
+ <point x="530" y="695" type="line"/>
+ <point x="530" y="435" type="line" smooth="yes"/>
+ <point x="530" y="238"/>
+ <point x="530" y="80"/>
+ <point x="515" y="0" type="curve"/>
+ <point x="830" y="0" type="line"/>
+ <point x="815" y="80"/>
+ <point x="815" y="238"/>
+ <point x="815" y="435" type="curve" smooth="yes"/>
+ <point x="815" y="695" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..7885750
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1205"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1078" y="112"/>
+ <point x="1050" y="226"/>
+ <point x="1050" y="370" type="curve"/>
+ <point x="1050" y="760" type="line"/>
+ <point x="1050" y="919"/>
+ <point x="877" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="446" y="1040"/>
+ <point x="330" y="994"/>
+ <point x="216" y="950" type="curve"/>
+ <point x="210" y="868"/>
+ <point x="207" y="735"/>
+ <point x="206" y="691" type="curve"/>
+ <point x="323" y="773"/>
+ <point x="424" y="816"/>
+ <point x="530" y="816" type="curve" smooth="yes"/>
+ <point x="680" y="816"/>
+ <point x="770" y="785"/>
+ <point x="770" y="710" type="curve" smooth="yes"/>
+ <point x="770" y="660" type="line"/>
+ <point x="729" y="659"/>
+ <point x="569" y="649"/>
+ <point x="500" y="642" type="curve" smooth="yes"/>
+ <point x="191" y="612"/>
+ <point x="100" y="438"/>
+ <point x="100" y="285" type="curve" smooth="yes"/>
+ <point x="100" y="121"/>
+ <point x="245" y="-25"/>
+ <point x="445" y="-25" type="curve" smooth="yes"/>
+ <point x="562" y="-25"/>
+ <point x="688" y="23"/>
+ <point x="800" y="135" type="curve"/>
+ <point x="814" y="79"/>
+ <point x="838" y="28"/>
+ <point x="850" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="355" type="line"/>
+ <point x="674" y="225"/>
+ <point x="600" y="205"/>
+ <point x="518" y="205" type="curve" smooth="yes"/>
+ <point x="436" y="205"/>
+ <point x="380" y="256"/>
+ <point x="380" y="320" type="curve" smooth="yes"/>
+ <point x="380" y="386"/>
+ <point x="422" y="442"/>
+ <point x="560" y="457" type="curve" smooth="yes"/>
+ <point x="611" y="463"/>
+ <point x="730" y="474"/>
+ <point x="770" y="475" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f1c66a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E1"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="550" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..218d694
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E2"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="602" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..bb0ea2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E4"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..3153364
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E0"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="650" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..3b8da5a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E5"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="612" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..b3a8515
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E3"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..6cc6671
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1215"/>
+ <unicode hex="0062"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1215" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1488"/>
+ <point x="135" y="1273"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="936"/>
+ <point x="135" y="228"/>
+ <point x="135" y="65" type="curve"/>
+ <point x="286" y="26"/>
+ <point x="457" y="-25"/>
+ <point x="650" y="-25" type="curve" smooth="yes"/>
+ <point x="939" y="-25"/>
+ <point x="1125" y="197"/>
+ <point x="1125" y="540" type="curve" smooth="yes"/>
+ <point x="1125" y="832"/>
+ <point x="986" y="1040"/>
+ <point x="789" y="1040" type="curve" smooth="yes"/>
+ <point x="626" y="1040"/>
+ <point x="505" y="956"/>
+ <point x="415" y="845" type="curve"/>
+ <point x="415" y="934"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="415" y="585" type="line"/>
+ <point x="471" y="709"/>
+ <point x="580" y="795"/>
+ <point x="683" y="795" type="curve" smooth="yes"/>
+ <point x="793" y="795"/>
+ <point x="855" y="684"/>
+ <point x="855" y="505" type="curve" smooth="yes"/>
+ <point x="855" y="317"/>
+ <point x="750" y="190"/>
+ <point x="605" y="190" type="curve" smooth="yes"/>
+ <point x="538" y="190"/>
+ <point x="492" y="204"/>
+ <point x="415" y="240" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..19a8a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1022"/>
+ <unicode hex="0063"/>
+ <anchor x="555" y="0" name="H"/>
+ <anchor x="575" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="575" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="922" y="969" type="line"/>
+ <point x="849" y="1007"/>
+ <point x="744" y="1040"/>
+ <point x="612" y="1040" type="curve" smooth="yes"/>
+ <point x="295" y="1040"/>
+ <point x="90" y="802"/>
+ <point x="90" y="490" type="curve" smooth="yes"/>
+ <point x="90" y="161"/>
+ <point x="309" y="-25"/>
+ <point x="578" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="831" y="8"/>
+ <point x="932" y="70" type="curve"/>
+ <point x="902" y="314" type="line"/>
+ <point x="815" y="245"/>
+ <point x="737" y="205"/>
+ <point x="617" y="205" type="curve" smooth="yes"/>
+ <point x="467" y="205"/>
+ <point x="370" y="324"/>
+ <point x="370" y="500" type="curve" smooth="yes"/>
+ <point x="370" y="694"/>
+ <point x="478" y="810"/>
+ <point x="617" y="810" type="curve" smooth="yes"/>
+ <point x="720" y="810"/>
+ <point x="788" y="779"/>
+ <point x="878" y="717" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fc1cc76
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="595" y="0" name="H"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1600" type="line"/>
+ <point x="810" y="1600" type="line"/>
+ <point x="829" y="1516"/>
+ <point x="835" y="1395"/>
+ <point x="835" y="1235" type="curve" smooth="yes"/>
+ <point x="835" y="955" type="line"/>
+ <point x="763" y="999"/>
+ <point x="669" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="319" y="1040"/>
+ <point x="100" y="814"/>
+ <point x="100" y="460" type="curve" smooth="yes"/>
+ <point x="100" y="167"/>
+ <point x="268" y="-25"/>
+ <point x="515" y="-25" type="curve" smooth="yes"/>
+ <point x="654" y="-25"/>
+ <point x="770" y="47"/>
+ <point x="860" y="175" type="curve"/>
+ <point x="877" y="105"/>
+ <point x="900" y="32"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1147" y="112"/>
+ <point x="1115" y="278"/>
+ <point x="1115" y="530" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="835" y="400" type="line"/>
+ <point x="787" y="300"/>
+ <point x="676" y="200"/>
+ <point x="570" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="380" y="300"/>
+ <point x="380" y="490" type="curve" smooth="yes"/>
+ <point x="380" y="685"/>
+ <point x="485" y="800"/>
+ <point x="590" y="800" type="curve" smooth="yes"/>
+ <point x="683" y="800"/>
+ <point x="743" y="783"/>
+ <point x="835" y="738" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..5c67455
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1110"/>
+ <unicode hex="0065"/>
+ <anchor x="569" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="900" y="0" name="O"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="537" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1010" y="450" type="line"/>
+ <point x="1010" y="469"/>
+ <point x="1009" y="513"/>
+ <point x="1009" y="532" type="curve" smooth="yes"/>
+ <point x="1009" y="782"/>
+ <point x="924" y="1040"/>
+ <point x="589" y="1040" type="curve" smooth="yes"/>
+ <point x="281" y="1040"/>
+ <point x="90" y="826"/>
+ <point x="90" y="495" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="324" y="-25"/>
+ <point x="589" y="-25" type="curve" smooth="yes"/>
+ <point x="745" y="-25"/>
+ <point x="871" y="2"/>
+ <point x="1015" y="75" type="curve"/>
+ <point x="994" y="306" type="line"/>
+ <point x="870" y="232"/>
+ <point x="745" y="205"/>
+ <point x="614" y="205" type="curve" smooth="yes"/>
+ <point x="448" y="205"/>
+ <point x="362" y="293"/>
+ <point x="362" y="505" type="curve" smooth="yes"/>
+ <point x="362" y="739"/>
+ <point x="431" y="830"/>
+ <point x="575" y="830" type="curve" smooth="yes"/>
+ <point x="693" y="830"/>
+ <point x="755" y="770"/>
+ <point x="755" y="630" type="curve"/>
+ <point x="242" y="630" type="line"/>
+ <point x="242" y="450" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..8a5996d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="800"/>
+ <unicode hex="0066"/>
+ <anchor x="380" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="600" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="30" y="805" type="line"/>
+ <point x="230" y="805" type="line"/>
+ <point x="230" y="0" type="line"/>
+ <point x="540" y="0" type="line"/>
+ <point x="518" y="105"/>
+ <point x="510" y="300"/>
+ <point x="510" y="494" type="curve" smooth="yes"/>
+ <point x="510" y="805" type="line"/>
+ <point x="765" y="805" type="line"/>
+ <point x="765" y="1005" type="line"/>
+ <point x="510" y="1005" type="line"/>
+ <point x="510" y="1159" type="line" smooth="yes"/>
+ <point x="510" y="1322"/>
+ <point x="552" y="1387"/>
+ <point x="648" y="1387" type="curve" smooth="yes"/>
+ <point x="697" y="1387"/>
+ <point x="765" y="1362"/>
+ <point x="808" y="1322" type="curve"/>
+ <point x="865" y="1550" type="line"/>
+ <point x="806" y="1588"/>
+ <point x="699" y="1620"/>
+ <point x="625" y="1620" type="curve" smooth="yes"/>
+ <point x="378" y="1620"/>
+ <point x="230" y="1470"/>
+ <point x="230" y="1170" type="curve" smooth="yes"/>
+ <point x="230" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..871e4e9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1170"/>
+ <unicode hex="0067"/>
+ <anchor x="597" y="-465" name="H"/>
+ <anchor x="597" y="-535" name="L"/>
+ <anchor x="1187" y="1000" name="R"/>
+ <anchor x="567" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="352" y="395" type="line"/>
+ <point x="256" y="357"/>
+ <point x="202" y="275"/>
+ <point x="202" y="215" type="curve" smooth="yes"/>
+ <point x="202" y="113"/>
+ <point x="280" y="12"/>
+ <point x="547" y="-23" type="curve" smooth="yes"/>
+ <point x="797" y="-50"/>
+ <point x="870" y="-99"/>
+ <point x="870" y="-170" type="curve" smooth="yes"/>
+ <point x="870" y="-229"/>
+ <point x="748" y="-302"/>
+ <point x="602" y="-302" type="curve" smooth="yes"/>
+ <point x="418" y="-302"/>
+ <point x="330" y="-235"/>
+ <point x="330" y="-180" type="curve" smooth="yes"/>
+ <point x="330" y="-121"/>
+ <point x="357" y="-56"/>
+ <point x="562" y="20" type="curve"/>
+ <point x="554" y="49"/>
+ <point x="322" y="75"/>
+ <point x="322" y="75" type="curve"/>
+ <point x="138" y="2"/>
+ <point x="50" y="-89"/>
+ <point x="50" y="-200" type="curve" smooth="yes"/>
+ <point x="50" y="-409"/>
+ <point x="341" y="-505"/>
+ <point x="587" y="-505" type="curve" smooth="yes"/>
+ <point x="843" y="-505"/>
+ <point x="1150" y="-375"/>
+ <point x="1150" y="-160" type="curve" smooth="yes"/>
+ <point x="1150" y="13"/>
+ <point x="1049" y="125"/>
+ <point x="752" y="165" type="curve" smooth="yes"/>
+ <point x="497" y="191"/>
+ <point x="433" y="216"/>
+ <point x="433" y="255" type="curve" smooth="yes"/>
+ <point x="433" y="285"/>
+ <point x="472" y="322"/>
+ <point x="588" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1102" y="1040" type="line"/>
+ <point x="1003" y="1033"/>
+ <point x="871" y="997"/>
+ <point x="782" y="940" type="curve"/>
+ <point x="847" y="770" type="line"/>
+ <point x="939" y="808"/>
+ <point x="1019" y="823"/>
+ <point x="1092" y="825" type="curve"/>
+ </contour>
+ <contour>
+ <point x="122" y="670" type="curve" smooth="yes"/>
+ <point x="122" y="455"/>
+ <point x="316" y="305"/>
+ <point x="567" y="305" type="curve" smooth="yes"/>
+ <point x="820" y="305"/>
+ <point x="1012" y="465"/>
+ <point x="1012" y="680" type="curve" smooth="yes"/>
+ <point x="1012" y="884"/>
+ <point x="820" y="1040"/>
+ <point x="567" y="1040" type="curve" smooth="yes"/>
+ <point x="316" y="1040"/>
+ <point x="122" y="874"/>
+ </contour>
+ <contour>
+ <point x="377" y="680" type="curve" smooth="yes"/>
+ <point x="377" y="770"/>
+ <point x="457" y="847"/>
+ <point x="567" y="847" type="curve" smooth="yes"/>
+ <point x="678" y="847"/>
+ <point x="757" y="770"/>
+ <point x="757" y="680" type="curve" smooth="yes"/>
+ <point x="757" y="578"/>
+ <point x="678" y="501"/>
+ <point x="567" y="501" type="curve" smooth="yes"/>
+ <point x="457" y="501"/>
+ <point x="377" y="578"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..15fc451
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1235"/>
+ <unicode hex="0068"/>
+ <anchor x="280" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="580" type="line"/>
+ <point x="450" y="683"/>
+ <point x="560" y="795"/>
+ <point x="675" y="795" type="curve" smooth="yes"/>
+ <point x="782" y="795"/>
+ <point x="830" y="744"/>
+ <point x="830" y="550" type="curve" smooth="yes"/>
+ <point x="830" y="413"/>
+ <point x="830" y="0"/>
+ <point x="830" y="0" type="curve"/>
+ <point x="1110" y="0" type="line"/>
+ <point x="1110" y="0"/>
+ <point x="1110" y="459"/>
+ <point x="1110" y="625" type="curve" smooth="yes"/>
+ <point x="1110" y="900"/>
+ <point x="1008" y="1040"/>
+ <point x="805" y="1040" type="curve" smooth="yes"/>
+ <point x="662" y="1040"/>
+ <point x="513" y="976"/>
+ <point x="415" y="850" type="curve"/>
+ <point x="415" y="894"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="935"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ <point x="415" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..05022d4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="640"/>
+ <unicode hex="0069"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="320" y="-100" name="L"/>
+ <anchor x="580" y="0" name="O"/>
+ <anchor x="640" y="1000" name="R"/>
+ <anchor x="320" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="1020" type="line"/>
+ <point x="178" y="915"/>
+ <point x="180" y="725"/>
+ <point x="180" y="530" type="curve" smooth="yes"/>
+ <point x="180" y="336"/>
+ <point x="180" y="0"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="107"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ <point x="460" y="558"/>
+ <point x="460" y="1020"/>
+ <point x="460" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="145" y="1385" type="curve" smooth="yes"/>
+ <point x="145" y="1281"/>
+ <point x="219" y="1210"/>
+ <point x="320" y="1210" type="curve" smooth="yes"/>
+ <point x="422" y="1210"/>
+ <point x="495" y="1281"/>
+ <point x="495" y="1385" type="curve" smooth="yes"/>
+ <point x="495" y="1487"/>
+ <point x="422" y="1560"/>
+ <point x="320" y="1560" type="curve" smooth="yes"/>
+ <point x="219" y="1560"/>
+ <point x="145" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..6e044af
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="670"/>
+ <unicode hex="006A"/>
+ <anchor x="140" y="-500" name="L"/>
+ <anchor x="355" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="185" y="1385" type="curve" smooth="yes"/>
+ <point x="185" y="1281"/>
+ <point x="259" y="1210"/>
+ <point x="360" y="1210" type="curve" smooth="yes"/>
+ <point x="462" y="1210"/>
+ <point x="535" y="1281"/>
+ <point x="535" y="1385" type="curve" smooth="yes"/>
+ <point x="535" y="1487"/>
+ <point x="462" y="1560"/>
+ <point x="360" y="1560" type="curve" smooth="yes"/>
+ <point x="259" y="1560"/>
+ <point x="185" y="1487"/>
+ </contour>
+ <contour>
+ <point x="500" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="20" type="line"/>
+ <point x="220" y="-150"/>
+ <point x="165" y="-232"/>
+ <point x="48" y="-232" type="curve" smooth="yes"/>
+ <point x="-20" y="-232"/>
+ <point x="-101" y="-195"/>
+ <point x="-145" y="-152" type="curve"/>
+ <point x="-190" y="-389" type="line"/>
+ <point x="-148" y="-421"/>
+ <point x="-37" y="-470"/>
+ <point x="56" y="-470" type="curve" smooth="yes"/>
+ <point x="306" y="-470"/>
+ <point x="500" y="-348"/>
+ <point x="500" y="25" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..529f7dd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1138"/>
+ <unicode hex="006B"/>
+ <anchor x="940" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="595" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="0" type="line"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="934"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="723" y="1020" type="line"/>
+ <point x="353" y="570" type="line"/>
+ <point x="572" y="528" type="line"/>
+ <point x="1098" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="570" type="line"/>
+ <point x="761" y="0" type="line"/>
+ <point x="1128" y="0" type="line"/>
+ <point x="540" y="664" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..0b21294
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="640"/>
+ <unicode hex="006C"/>
+ <anchor x="335" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="660" y="1000" name="R"/>
+ <anchor x="320" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="1600" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="173" y="1485"/>
+ <point x="180" y="1324"/>
+ <point x="180" y="1130" type="curve" smooth="yes"/>
+ <point x="180" y="0" type="line"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="109"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..eace489
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1760"/>
+ <unicode hex="006D"/>
+ <anchor x="890" y="0" name="H"/>
+ <anchor x="890" y="-100" name="L"/>
+ <anchor x="890" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="115" y="1020" type="line"/>
+ <point x="136" y="951"/>
+ <point x="165" y="811"/>
+ <point x="165" y="615" type="curve" smooth="yes"/>
+ <point x="165" y="0" type="line"/>
+ <point x="445" y="0" type="line"/>
+ <point x="445" y="640" type="line"/>
+ <point x="484" y="731"/>
+ <point x="560" y="795"/>
+ <point x="635" y="795" type="curve" smooth="yes"/>
+ <point x="723" y="795"/>
+ <point x="750" y="759"/>
+ <point x="750" y="570" type="curve" smooth="yes"/>
+ <point x="750" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1030" y="660" type="line"/>
+ <point x="1073" y="742"/>
+ <point x="1147" y="795"/>
+ <point x="1220" y="795" type="curve" smooth="yes"/>
+ <point x="1310" y="795"/>
+ <point x="1335" y="751"/>
+ <point x="1335" y="550" type="curve" smooth="yes"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1615" y="0" type="line"/>
+ <point x="1615" y="660" type="line" smooth="yes"/>
+ <point x="1615" y="907"/>
+ <point x="1548" y="1040"/>
+ <point x="1345" y="1040" type="curve" smooth="yes"/>
+ <point x="1240" y="1040"/>
+ <point x="1131" y="1007"/>
+ <point x="1006" y="872" type="curve"/>
+ <point x="973" y="960"/>
+ <point x="891" y="1040"/>
+ <point x="760" y="1040" type="curve" smooth="yes"/>
+ <point x="644" y="1040"/>
+ <point x="544" y="1008"/>
+ <point x="422" y="875" type="curve"/>
+ <point x="412" y="920"/>
+ <point x="397" y="981"/>
+ <point x="375" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..f7abb6f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1245"/>
+ <unicode hex="006E"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1120" y="0"/>
+ <point x="1120" y="459"/>
+ <point x="1120" y="625" type="curve" smooth="yes"/>
+ <point x="1120" y="900"/>
+ <point x="998" y="1040"/>
+ <point x="795" y="1040" type="curve" smooth="yes"/>
+ <point x="654" y="1040"/>
+ <point x="537" y="980"/>
+ <point x="410" y="835" type="curve"/>
+ <point x="403" y="881"/>
+ <point x="385" y="980"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="420"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="580" type="line"/>
+ <point x="460" y="683"/>
+ <point x="570" y="795"/>
+ <point x="685" y="795" type="curve" smooth="yes"/>
+ <point x="792" y="795"/>
+ <point x="840" y="734"/>
+ <point x="840" y="550" type="curve" smooth="yes"/>
+ <point x="840" y="413"/>
+ <point x="840" y="0"/>
+ <point x="840" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..063c297
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1160"/>
+ <unicode hex="006F"/>
+ <anchor x="578" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="790" y="0" name="O"/>
+ <anchor x="1160" y="1000" name="R"/>
+ <anchor x="580" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="90" y="507" type="curve" smooth="yes"/>
+ <point x="90" y="163"/>
+ <point x="288" y="-25"/>
+ <point x="570" y="-25" type="curve" smooth="yes"/>
+ <point x="840" y="-25"/>
+ <point x="1070" y="163"/>
+ <point x="1070" y="507" type="curve" smooth="yes"/>
+ <point x="1070" y="851"/>
+ <point x="873" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="1040"/>
+ <point x="90" y="851"/>
+ </contour>
+ <contour>
+ <point x="370" y="507" type="curve" smooth="yes"/>
+ <point x="370" y="699"/>
+ <point x="451" y="815"/>
+ <point x="580" y="815" type="curve" smooth="yes"/>
+ <point x="717" y="815"/>
+ <point x="790" y="699"/>
+ <point x="790" y="507" type="curve" smooth="yes"/>
+ <point x="790" y="316"/>
+ <point x="709" y="200"/>
+ <point x="580" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="370" y="316"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..4fe224b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1235"/>
+ <unicode hex="0070"/>
+ <anchor x="290" y="-435" name="H"/>
+ <anchor x="640" y="-500" name="L"/>
+ <anchor x="1235" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="-490" type="line"/>
+ <point x="433" y="-405"/>
+ <point x="425" y="-310"/>
+ <point x="425" y="-150" type="curve" smooth="yes"/>
+ <point x="425" y="-71"/>
+ <point x="425" y="-41"/>
+ <point x="425" y="65" type="curve"/>
+ <point x="518" y="10"/>
+ <point x="594" y="-25"/>
+ <point x="699" y="-25" type="curve" smooth="yes"/>
+ <point x="945" y="-25"/>
+ <point x="1145" y="193"/>
+ <point x="1145" y="535" type="curve" smooth="yes"/>
+ <point x="1145" y="828"/>
+ <point x="996" y="1040"/>
+ <point x="773" y="1040" type="curve" smooth="yes"/>
+ <point x="628" y="1040"/>
+ <point x="502" y="962"/>
+ <point x="410" y="850" type="curve"/>
+ <point x="401" y="932"/>
+ <point x="385" y="990"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="140" y="907"/>
+ <point x="145" y="734"/>
+ <point x="145" y="485" type="curve" smooth="yes"/>
+ <point x="145" y="291"/>
+ <point x="145" y="-345"/>
+ <point x="145" y="-490" type="curve"/>
+ </contour>
+ <contour>
+ <point x="633" y="206" type="curve" smooth="yes"/>
+ <point x="564" y="206"/>
+ <point x="527" y="225"/>
+ <point x="425" y="300" type="curve"/>
+ <point x="425" y="390"/>
+ <point x="425" y="507"/>
+ <point x="425" y="585" type="curve"/>
+ <point x="482" y="726"/>
+ <point x="583" y="802"/>
+ <point x="672" y="802" type="curve" smooth="yes"/>
+ <point x="793" y="802"/>
+ <point x="865" y="686"/>
+ <point x="865" y="505" type="curve" smooth="yes"/>
+ <point x="865" y="320"/>
+ <point x="755" y="206"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9727ad7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1210"/>
+ <unicode hex="0071"/>
+ <anchor x="600" y="-500" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="790" y="-490" type="line"/>
+ <point x="1095" y="-490" type="line"/>
+ <point x="1078" y="-405"/>
+ <point x="1070" y="-310"/>
+ <point x="1070" y="-150" type="curve" smooth="yes"/>
+ <point x="1070" y="-26"/>
+ <point x="1070" y="965"/>
+ <point x="1070" y="965" type="curve"/>
+ <point x="934" y="1001"/>
+ <point x="773" y="1040"/>
+ <point x="620" y="1040" type="curve" smooth="yes"/>
+ <point x="255" y="1040"/>
+ <point x="100" y="742"/>
+ <point x="100" y="435" type="curve" smooth="yes"/>
+ <point x="100" y="117"/>
+ <point x="316" y="-25"/>
+ <point x="500" y="-25" type="curve" smooth="yes"/>
+ <point x="593" y="-25"/>
+ <point x="686" y="14"/>
+ <point x="790" y="120" type="curve"/>
+ </contour>
+ <contour>
+ <point x="790" y="368" type="line"/>
+ <point x="727" y="258"/>
+ <point x="650" y="203"/>
+ <point x="580" y="203" type="curve" smooth="yes"/>
+ <point x="475" y="203"/>
+ <point x="380" y="287"/>
+ <point x="380" y="485" type="curve" smooth="yes"/>
+ <point x="380" y="641"/>
+ <point x="456" y="802"/>
+ <point x="655" y="802" type="curve" smooth="yes"/>
+ <point x="696" y="802"/>
+ <point x="749" y="789"/>
+ <point x="790" y="770" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8a81116
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="995"/>
+ <unicode hex="0072"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="275" y="-100" name="L"/>
+ <anchor x="550" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="530" type="line"/>
+ <point x="460" y="654"/>
+ <point x="570" y="781"/>
+ <point x="637" y="781" type="curve" smooth="yes"/>
+ <point x="722" y="781"/>
+ <point x="755" y="721"/>
+ <point x="762" y="630" type="curve"/>
+ <point x="985" y="665" type="line"/>
+ <point x="985" y="868"/>
+ <point x="913" y="1040"/>
+ <point x="725" y="1040" type="curve" smooth="yes"/>
+ <point x="634" y="1040"/>
+ <point x="507" y="964"/>
+ <point x="410" y="825" type="curve"/>
+ <point x="403" y="873"/>
+ <point x="385" y="978"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..06b1a9a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1035"/>
+ <unicode hex="0073"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="530" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="960" type="line"/>
+ <point x="827" y="998"/>
+ <point x="708" y="1040"/>
+ <point x="545" y="1040" type="curve" smooth="yes"/>
+ <point x="202" y="1040"/>
+ <point x="110" y="818"/>
+ <point x="110" y="720" type="curve" smooth="yes"/>
+ <point x="110" y="594"/>
+ <point x="171" y="491"/>
+ <point x="455" y="432" type="curve" smooth="yes"/>
+ <point x="646" y="390"/>
+ <point x="690" y="348"/>
+ <point x="690" y="290" type="curve" smooth="yes"/>
+ <point x="690" y="243"/>
+ <point x="624" y="199"/>
+ <point x="530" y="199" type="curve" smooth="yes"/>
+ <point x="413" y="199"/>
+ <point x="254" y="253"/>
+ <point x="155" y="334" type="curve"/>
+ <point x="100" y="90" type="line"/>
+ <point x="187" y="28"/>
+ <point x="346" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="768" y="-25"/>
+ <point x="960" y="123"/>
+ <point x="960" y="315" type="curve" smooth="yes"/>
+ <point x="960" y="504"/>
+ <point x="788" y="583"/>
+ <point x="580" y="625" type="curve" smooth="yes"/>
+ <point x="405" y="659"/>
+ <point x="380" y="681"/>
+ <point x="380" y="730" type="curve" smooth="yes"/>
+ <point x="380" y="770"/>
+ <point x="418" y="816"/>
+ <point x="535" y="816" type="curve" smooth="yes"/>
+ <point x="674" y="816"/>
+ <point x="791" y="760"/>
+ <point x="866" y="721" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..d4123c7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="885"/>
+ <unicode hex="0074"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="885" y="1000" name="R"/>
+ <anchor x="360" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="220" y="270" type="line"/>
+ <point x="220" y="39"/>
+ <point x="374" y="-25"/>
+ <point x="563" y="-25" type="curve" smooth="yes"/>
+ <point x="635" y="-25"/>
+ <point x="725" y="-3"/>
+ <point x="820" y="57" type="curve"/>
+ <point x="820" y="281" type="line"/>
+ <point x="741" y="232"/>
+ <point x="678" y="206"/>
+ <point x="627" y="206" type="curve" smooth="yes"/>
+ <point x="537" y="206"/>
+ <point x="500" y="235"/>
+ <point x="500" y="462" type="curve" smooth="yes"/>
+ <point x="500" y="1320" type="line"/>
+ <point x="220" y="1320" type="line"/>
+ </contour>
+ <contour>
+ <point x="805" y="805" type="line"/>
+ <point x="805" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ <point x="30" y="805" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5b8d434
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1245"/>
+ <unicode hex="0075"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="1258" y="1000" name="R"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1160" y="0" type="line"/>
+ <point x="1118" y="112"/>
+ <point x="1095" y="256"/>
+ <point x="1095" y="450" type="curve" smooth="yes"/>
+ <point x="1095" y="646"/>
+ <point x="1095" y="1020"/>
+ <point x="1095" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="813" y="898"/>
+ <point x="815" y="832"/>
+ <point x="815" y="700" type="curve" smooth="yes"/>
+ <point x="815" y="418" type="line"/>
+ <point x="774" y="326"/>
+ <point x="651" y="206"/>
+ <point x="560" y="206" type="curve" smooth="yes"/>
+ <point x="458" y="206"/>
+ <point x="425" y="284"/>
+ <point x="425" y="465" type="curve" smooth="yes"/>
+ <point x="425" y="603"/>
+ <point x="425" y="1020"/>
+ <point x="425" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="143" y="900"/>
+ <point x="145" y="827"/>
+ <point x="145" y="700" type="curve" smooth="yes"/>
+ <point x="145" y="681"/>
+ <point x="145" y="424"/>
+ <point x="145" y="405" type="curve" smooth="yes"/>
+ <point x="145" y="120"/>
+ <point x="250" y="-25"/>
+ <point x="458" y="-25" type="curve" smooth="yes"/>
+ <point x="595" y="-25"/>
+ <point x="722" y="48"/>
+ <point x="840" y="185" type="curve"/>
+ <point x="850" y="116"/>
+ <point x="876" y="43"/>
+ <point x="895" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..daf1468
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1104"/>
+ <unicode hex="0076"/>
+ <anchor x="565" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="786" y="1020" type="line"/>
+ <point x="556" y="290" type="line"/>
+ <point x="322" y="1020" type="line"/>
+ <point x="10" y="1020" type="line"/>
+ <point x="65" y="905"/>
+ <point x="133" y="746"/>
+ <point x="165" y="665" type="curve" smooth="yes"/>
+ <point x="227" y="510"/>
+ <point x="430" y="0"/>
+ <point x="430" y="0" type="curve"/>
+ <point x="674" y="0" type="line"/>
+ <point x="674" y="0"/>
+ <point x="886" y="536"/>
+ <point x="939" y="665" type="curve" smooth="yes"/>
+ <point x="972" y="744"/>
+ <point x="1037" y="905"/>
+ <point x="1094" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1ca1ec4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1570"/>
+ <unicode hex="0077"/>
+ <anchor x="785" y="-100" name="L"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="665" y="1020" type="line"/>
+ <point x="480" y="285" type="line"/>
+ <point x="323" y="1020" type="line"/>
+ <point x="35" y="1020" type="line"/>
+ <point x="82" y="867"/>
+ <point x="110" y="771"/>
+ <point x="140" y="665" type="curve" smooth="yes"/>
+ <point x="325" y="0" type="line"/>
+ <point x="615" y="0" type="line"/>
+ <point x="785" y="695" type="line"/>
+ <point x="955" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1430" y="665" type="line" smooth="yes"/>
+ <point x="1464" y="785"/>
+ <point x="1488" y="868"/>
+ <point x="1535" y="1020" type="curve"/>
+ <point x="1247" y="1020" type="line"/>
+ <point x="1090" y="285" type="line"/>
+ <point x="905" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..971c129
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1185"/>
+ <unicode hex="0078"/>
+ <anchor x="960" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="815" y="0" type="line"/>
+ <point x="1145" y="0" type="line"/>
+ <point x="1037" y="129"/>
+ <point x="989" y="190"/>
+ <point x="930" y="270" type="curve" smooth="yes"/>
+ <point x="380" y="1020" type="line"/>
+ <point x="50" y="1020" type="line"/>
+ <point x="158" y="887"/>
+ <point x="192" y="842"/>
+ <point x="260" y="750" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="499" y="616" type="line"/>
+ <point x="245" y="270" type="line" smooth="yes"/>
+ <point x="195" y="201"/>
+ <point x="150" y="143"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="584" y="359" type="line"/>
+ </contour>
+ <contour>
+ <point x="675" y="405" type="line"/>
+ <point x="925" y="750" type="line" smooth="yes"/>
+ <point x="980" y="826"/>
+ <point x="1027" y="886"/>
+ <point x="1130" y="1020" type="curve"/>
+ <point x="825" y="1020" type="line"/>
+ <point x="595" y="668" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..ea8d25e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1100"/>
+ <unicode hex="0079"/>
+ <anchor x="845" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="665" type="line" smooth="yes"/>
+ <point x="978" y="758"/>
+ <point x="1021" y="865"/>
+ <point x="1090" y="1020" type="curve"/>
+ <point x="777" y="1020" type="line"/>
+ <point x="777" y="1020"/>
+ <point x="646" y="549"/>
+ <point x="573" y="293" type="curve"/>
+ <point x="333" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="97" y="864"/>
+ <point x="144" y="757"/>
+ <point x="180" y="665" type="curve" smooth="yes"/>
+ <point x="445" y="-18" type="line"/>
+ <point x="366" y="-209"/>
+ <point x="304" y="-242"/>
+ <point x="245" y="-242" type="curve" smooth="yes"/>
+ <point x="179" y="-242"/>
+ <point x="102" y="-202"/>
+ <point x="60" y="-167" type="curve"/>
+ <point x="-10" y="-385" type="line"/>
+ <point x="63" y="-439"/>
+ <point x="154" y="-470"/>
+ <point x="245" y="-470" type="curve" smooth="yes"/>
+ <point x="427" y="-470"/>
+ <point x="565" y="-387"/>
+ <point x="705" y="0" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..7dc67c0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="895"/>
+ <unicode hex="2011"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..54b82cb
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="412" y="1360" type="line"/>
+ <point x="52" y="100" type="line"/>
+ <point x="272" y="100" type="line"/>
+ <point x="632" y="1360" type="line"/>
+ </contour>
+ <contour>
+ <point x="10" y="425" type="line"/>
+ <point x="1101" y="425" type="line"/>
+ <point x="1101" y="635" type="line"/>
+ <point x="10" y="635" type="line"/>
+ </contour>
+ <contour>
+ <point x="69" y="850" type="line"/>
+ <point x="1160" y="850" type="line"/>
+ <point x="1160" y="1060" type="line"/>
+ <point x="69" y="1060" type="line"/>
+ </contour>
+ <contour>
+ <point x="887" y="1360" type="line"/>
+ <point x="527" y="100" type="line"/>
+ <point x="747" y="100" type="line"/>
+ <point x="1107" y="1360" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..5017543
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1565"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="499" y="-25" type="line"/>
+ <point x="1279" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="511" y="1076" type="curve" smooth="yes"/>
+ <point x="511" y="892"/>
+ <point x="470" y="815"/>
+ <point x="394" y="815" type="curve" smooth="yes"/>
+ <point x="315" y="815"/>
+ <point x="279" y="891"/>
+ <point x="279" y="1091" type="curve" smooth="yes"/>
+ <point x="279" y="1275"/>
+ <point x="317" y="1350"/>
+ <point x="394" y="1350" type="curve" smooth="yes"/>
+ <point x="475" y="1350"/>
+ <point x="511" y="1276"/>
+ </contour>
+ <contour>
+ <point x="721" y="1089" type="curve" smooth="yes"/>
+ <point x="721" y="1362"/>
+ <point x="584" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="215" y="1480"/>
+ <point x="69" y="1360"/>
+ <point x="69" y="1078" type="curve" smooth="yes"/>
+ <point x="69" y="796"/>
+ <point x="205" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="575" y="685"/>
+ <point x="721" y="794"/>
+ </contour>
+ <contour>
+ <point x="1286" y="366" type="curve" smooth="yes"/>
+ <point x="1286" y="182"/>
+ <point x="1245" y="105"/>
+ <point x="1169" y="105" type="curve" smooth="yes"/>
+ <point x="1090" y="105"/>
+ <point x="1054" y="181"/>
+ <point x="1054" y="381" type="curve" smooth="yes"/>
+ <point x="1054" y="565"/>
+ <point x="1092" y="640"/>
+ <point x="1169" y="640" type="curve" smooth="yes"/>
+ <point x="1250" y="640"/>
+ <point x="1286" y="566"/>
+ </contour>
+ <contour>
+ <point x="1496" y="379" type="curve" smooth="yes"/>
+ <point x="1496" y="652"/>
+ <point x="1359" y="770"/>
+ <point x="1174" y="770" type="curve" smooth="yes"/>
+ <point x="990" y="770"/>
+ <point x="844" y="650"/>
+ <point x="844" y="368" type="curve" smooth="yes"/>
+ <point x="844" y="86"/>
+ <point x="980" y="-25"/>
+ <point x="1165" y="-25" type="curve" smooth="yes"/>
+ <point x="1350" y="-25"/>
+ <point x="1496" y="84"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..a1a4c93
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="495" y="1180" type="line"/>
+ <point x="495" y="285" type="line"/>
+ <point x="705" y="285" type="line"/>
+ <point x="705" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="630" type="line"/>
+ <point x="1045" y="630" type="line"/>
+ <point x="1045" y="840" type="line"/>
+ <point x="155" y="840" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..c9bbb28
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1090"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="640" y="500" type="line"/>
+ <point x="640" y="671"/>
+ <point x="668" y="805"/>
+ <point x="767" y="956" type="curve" smooth="yes"/>
+ <point x="837" y="1063"/>
+ <point x="900" y="1117"/>
+ <point x="900" y="1220" type="curve" smooth="yes"/>
+ <point x="900" y="1402"/>
+ <point x="757" y="1540"/>
+ <point x="500" y="1540" type="curve" smooth="yes"/>
+ <point x="355" y="1540"/>
+ <point x="206" y="1470"/>
+ <point x="140" y="1407" type="curve"/>
+ <point x="185" y="1168" type="line"/>
+ <point x="261" y="1247"/>
+ <point x="372" y="1295"/>
+ <point x="472" y="1295" type="curve" smooth="yes"/>
+ <point x="569" y="1295"/>
+ <point x="615" y="1249"/>
+ <point x="615" y="1190" type="curve" smooth="yes"/>
+ <point x="615" y="1139"/>
+ <point x="565" y="1096"/>
+ <point x="495" y="980" type="curve" smooth="yes"/>
+ <point x="434" y="879"/>
+ <point x="375" y="710"/>
+ <point x="375" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="335" y="150" type="curve" smooth="yes"/>
+ <point x="335" y="46"/>
+ <point x="409" y="-25"/>
+ <point x="510" y="-25" type="curve" smooth="yes"/>
+ <point x="612" y="-25"/>
+ <point x="685" y="46"/>
+ <point x="685" y="150" type="curve" smooth="yes"/>
+ <point x="685" y="252"/>
+ <point x="612" y="325"/>
+ <point x="510" y="325" type="curve" smooth="yes"/>
+ <point x="409" y="325"/>
+ <point x="335" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..794a655
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1085"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="450" y="1045" type="line"/>
+ <point x="455" y="1186"/>
+ <point x="456" y="1339"/>
+ <point x="485" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="271" y="1186"/>
+ <point x="275" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="810" y="1045" type="line"/>
+ <point x="815" y="1186"/>
+ <point x="816" y="1339"/>
+ <point x="845" y="1585" type="curve"/>
+ <point x="600" y="1585" type="line"/>
+ <point x="631" y="1339"/>
+ <point x="631" y="1186"/>
+ <point x="635" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..799c999
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ <point x="1070" y="-245" type="line"/>
+ <point x="240" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..48383fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="180" y="-410" type="line"/>
+ <point x="316" y="-383"/>
+ <point x="520" y="-333"/>
+ <point x="570" y="-285" type="curve" smooth="yes"/>
+ <point x="645" y="-213"/>
+ <point x="633" y="378"/>
+ <point x="655" y="410" type="curve" smooth="yes"/>
+ <point x="685" y="453"/>
+ <point x="855" y="560"/>
+ <point x="855" y="615" type="curve" smooth="yes"/>
+ <point x="855" y="670"/>
+ <point x="685" y="777"/>
+ <point x="655" y="820" type="curve" smooth="yes"/>
+ <point x="633" y="852"/>
+ <point x="644" y="1442"/>
+ <point x="570" y="1515" type="curve" smooth="yes"/>
+ <point x="523" y="1562"/>
+ <point x="333" y="1613"/>
+ <point x="205" y="1640" type="curve"/>
+ <point x="155" y="1409" type="line"/>
+ <point x="218" y="1390"/>
+ <point x="323" y="1351"/>
+ <point x="340" y="1330" type="curve" smooth="yes"/>
+ <point x="375" y="1289"/>
+ <point x="364" y="820"/>
+ <point x="382" y="785" type="curve" smooth="yes"/>
+ <point x="405" y="740"/>
+ <point x="542" y="650"/>
+ <point x="542" y="615" type="curve" smooth="yes"/>
+ <point x="542" y="580"/>
+ <point x="404" y="491"/>
+ <point x="380" y="445" type="curve" smooth="yes"/>
+ <point x="362" y="411"/>
+ <point x="375" y="-60"/>
+ <point x="340" y="-100" type="curve" smooth="yes"/>
+ <point x="321" y="-122"/>
+ <point x="197" y="-160"/>
+ <point x="130" y="-179" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..ae49fca
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="185" y="1455" type="line"/>
+ <point x="395" y="1261"/>
+ <point x="485" y="938"/>
+ <point x="485" y="635" type="curve" smooth="yes"/>
+ <point x="485" y="335"/>
+ <point x="399" y="11"/>
+ <point x="175" y="-240" type="curve"/>
+ <point x="326" y="-410" type="line"/>
+ <point x="601" y="-125"/>
+ <point x="746" y="218"/>
+ <point x="746" y="625" type="curve" smooth="yes"/>
+ <point x="746" y="1062"/>
+ <point x="571" y="1444"/>
+ <point x="306" y="1640" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..325e575
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="660" y="-410" type="line"/>
+ <point x="660" y="1600" type="line"/>
+ <point x="140" y="1600" type="line"/>
+ <point x="140" y="1390" type="line"/>
+ <point x="380" y="1390" type="line"/>
+ <point x="380" y="-200" type="line"/>
+ <point x="140" y="-200" type="line"/>
+ <point x="140" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..ae95657
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="710"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..1e33c05
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="240" y="-245" type="line"/>
+ <point x="1070" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..ec9fc73
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="165" y="345" type="line"/>
+ <point x="170" y="394"/>
+ <point x="202" y="435"/>
+ <point x="280" y="435" type="curve" smooth="yes"/>
+ <point x="435" y="435"/>
+ <point x="615" y="330"/>
+ <point x="825" y="330" type="curve" smooth="yes"/>
+ <point x="984" y="330"/>
+ <point x="1080" y="512"/>
+ <point x="1080" y="640" type="curve"/>
+ <point x="935" y="640" type="line"/>
+ <point x="928" y="594"/>
+ <point x="898" y="540"/>
+ <point x="815" y="540" type="curve" smooth="yes"/>
+ <point x="599" y="540"/>
+ <point x="461" y="645"/>
+ <point x="260" y="645" type="curve" smooth="yes"/>
+ <point x="104" y="645"/>
+ <point x="20" y="467"/>
+ <point x="20" y="345" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..d7caa84
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="240" y="1600" type="line"/>
+ <point x="240" y="-390" type="line"/>
+ <point x="450" y="-390" type="line"/>
+ <point x="450" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist b/tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/lib.plist b/tests/reference/ufo/psfsetassocuids.ufo/lib.plist
new file mode 100644
index 0000000..4fe2e05
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/lib.plist
@@ -0,0 +1,535 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist b/tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.lg b/tests/reference/ufo/psfsetglyphorder.lg
new file mode 100644
index 0000000..d2af751
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.lg
@@ -0,0 +1,158 @@
+2021-06-29 14:42:22 Progress: Running: psfsetglyphorder tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/glyph_data.csv -l local/testresults/ufo/psfsetglyphorder.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/glyph_data.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:22 Info: Types: Old - int, New - NoneType
+2021-06-29 14:42:22 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:22 Info: Types: Old - float, New - int
+2021-06-29 14:42:22 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmEAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmIAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmOAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmUAcute
+2021-06-29 14:42:22 Info: No glyph in font for Bullet
+2021-06-29 14:42:22 Info: No glyph in font for AcuteAccent
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapEAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapAAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapIAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapOAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapUAcute
+2021-06-29 14:42:22 Info: No glyph in font for ModCircumAccent
+2021-06-29 14:42:22 Info: No glyph in font for DblAcuteAccent
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmYAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapYAcute
+2021-06-29 14:42:22 Info: No glyph in font for SupOne
+2021-06-29 14:42:22 Info: No glyph in font for SupThree
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneHalf
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneQuarter
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracThreeQuarters
+2021-06-29 14:42:22 Info: No glyph in font for BulletOperator
+2021-06-29 14:42:22 Info: No entry in input file for font glyph .notdef
+2021-06-29 14:42:22 Info: No entry in input file for font glyph .null
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Ampersand
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Apos
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Asterisk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph AtSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Colon
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombCircum
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombDiaer
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombGrave
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombRingAbv
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombTilde
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Comma
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitEight
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitFive
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitFour
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitNine
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitOne
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitSeven
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitSix
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitThree
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitTwo
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitZero
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DollarSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DottedCirc
+2021-06-29 14:42:22 Info: No entry in input file for font glyph EqSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph ExclamationMrk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph FullStop
+2021-06-29 14:42:22 Info: No entry in input file for font glyph GTSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph GraveAccent
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Hyphen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Hyphen_Soft
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LTSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LftCurlyBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LftParen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LftSqrBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LowLine
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapA
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapADiaer
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapB
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapC
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapD
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapE
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapF
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapG
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapH
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapI
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapJ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapK
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapL
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapM
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapN
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapO
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapP
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapQ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapR
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapS
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapT
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapU
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapV
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapW
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapX
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapY
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmA
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmACircum
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmADiaer
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmAGrave
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmARingAbv
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmATilde
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmB
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmC
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmD
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmE
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmF
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmG
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmH
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmI
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmJ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmK
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmL
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmM
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmN
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmO
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmP
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmQ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmR
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmS
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmT
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmU
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmV
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmW
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmX
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmY
+2021-06-29 14:42:22 Info: No entry in input file for font glyph NonBreakingHyphen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph NumSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph PercentSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph PlusSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph QstnMrk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph QuotMrk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph RtCurlyBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph RtParen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph RtSqrBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Semicolon
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Solidus
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Space
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Tilde
+2021-06-29 14:42:22 Info: No entry in input file for font glyph VertLine
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetglyphorder.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist b/tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist
new file mode 100644
index 0000000..44ce162
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:07</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Testing</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>1</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist b/tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/lib.plist b/tests/reference/ufo/psfsetglyphorder.ufo/lib.plist
new file mode 100644
index 0000000..65224e2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/lib.plist
@@ -0,0 +1,451 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>nonmarkingreturn</string>
+ <string>HyphenMinus</string>
+ <string>ReverseSolidus</string>
+ <string>CircumAccent</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmEAcute</string>
+ <string>LtnSmIAcute</string>
+ <string>LtnSmOAcute</string>
+ <string>LtnSmUAcute</string>
+ <string>Bullet</string>
+ <string>AcuteAccent</string>
+ <string>LtnCapEAcute</string>
+ <string>LtnCapAAcute</string>
+ <string>LtnCapIAcute</string>
+ <string>LtnCapOAcute</string>
+ <string>LtnCapUAcute</string>
+ <string>ModCircumAccent</string>
+ <string>DblAcuteAccent</string>
+ <string>LtnSmYAcute</string>
+ <string>LtnCapYAcute</string>
+ <string>SupOne</string>
+ <string>SupThree</string>
+ <string>VulgFracOneHalf</string>
+ <string>VulgFracOneQuarter</string>
+ <string>VulgFracThreeQuarters</string>
+ <string>BulletOperator</string>
+ <string>CombAcute</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist b/tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.lg b/tests/reference/ufo/psfsetkeys.lg
new file mode 100644
index 0000000..9013f01
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.lg
@@ -0,0 +1,27 @@
+2021-06-29 14:42:22 Progress: Running: psfsetkeys tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -k org.sil.newkey -v newvalue -l local/testresults/ufo/psfsetkeys.log -p loglevel=i -p checkfix=fix
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: macintoshFONDName removed from fontinfo. Old value: My Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: postscriptFamilyBlues removed from fontinfo. Old value: []
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeHheaAscender updated Old value: 2200, new value: 2100
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes made: 7, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: Adding keys to fontinfo
+2021-06-29 14:42:22 Info: org.sil.newkey added, value: newvalue
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetkeys.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist b/tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist
new file mode 100644
index 0000000..6d494b6
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:52</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>org.sil.newkey</key>
+ <string>newvalue</string>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-BoldItalic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold italic</string>
+ <key>styleName</key>
+ <string>Bold Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f3fb1c7
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1333"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1146" y="594" type="line"/>
+ <point x="1040" y="429"/>
+ <point x="712" y="198"/>
+ <point x="537" y="198" type="curve" smooth="yes"/>
+ <point x="437" y="198"/>
+ <point x="363" y="257"/>
+ <point x="363" y="345" type="curve" smooth="yes"/>
+ <point x="363" y="490"/>
+ <point x="474" y="535"/>
+ <point x="695" y="693" type="curve" smooth="yes"/>
+ <point x="940" y="868"/>
+ <point x="1160" y="1032"/>
+ <point x="1160" y="1213" type="curve" smooth="yes"/>
+ <point x="1160" y="1361"/>
+ <point x="1026" y="1470"/>
+ <point x="849" y="1470" type="curve" smooth="yes"/>
+ <point x="637" y="1470"/>
+ <point x="414" y="1364"/>
+ <point x="414" y="1124" type="curve" smooth="yes"/>
+ <point x="414" y="968"/>
+ <point x="552" y="751"/>
+ <point x="661" y="535" type="curve" smooth="yes"/>
+ <point x="842" y="177"/>
+ <point x="969" y="-25"/>
+ <point x="1021" y="-25" type="curve" smooth="yes"/>
+ <point x="1056" y="-25"/>
+ <point x="1205" y="57"/>
+ <point x="1250" y="89" type="curve"/>
+ <point x="1165" y="129"/>
+ <point x="1073" y="302"/>
+ <point x="890" y="673" type="curve" smooth="yes"/>
+ <point x="788" y="881"/>
+ <point x="651" y="1063"/>
+ <point x="651" y="1163" type="curve" smooth="yes"/>
+ <point x="651" y="1245"/>
+ <point x="729" y="1307"/>
+ <point x="803" y="1307" type="curve" smooth="yes"/>
+ <point x="873" y="1307"/>
+ <point x="926" y="1250"/>
+ <point x="926" y="1184" type="curve" smooth="yes"/>
+ <point x="926" y="1081"/>
+ <point x="821" y="997"/>
+ <point x="600" y="832" type="curve" smooth="yes"/>
+ <point x="392" y="677"/>
+ <point x="108" y="540"/>
+ <point x="108" y="268" type="curve" smooth="yes"/>
+ <point x="108" y="98"/>
+ <point x="229" y="-25"/>
+ <point x="466" y="-25" type="curve" smooth="yes"/>
+ <point x="749" y="-25"/>
+ <point x="1120" y="261"/>
+ <point x="1237" y="421" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..68b000e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="598" y="1035" type="line"/>
+ <point x="637" y="1174"/>
+ <point x="676" y="1326"/>
+ <point x="766" y="1569" type="curve"/>
+ <point x="521" y="1569" type="line"/>
+ <point x="491" y="1326"/>
+ <point x="453" y="1174"/>
+ <point x="423" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..a36131c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1020"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="1135" y="1478" type="line"/>
+ <point x="1039" y="1412"/>
+ <point x="956" y="1353"/>
+ <point x="856" y="1295" type="curve"/>
+ <point x="885" y="1391"/>
+ <point x="915" y="1471"/>
+ <point x="958" y="1584" type="curve"/>
+ <point x="759" y="1584" type="line"/>
+ <point x="753" y="1482"/>
+ <point x="748" y="1398"/>
+ <point x="730" y="1295" type="curve"/>
+ <point x="658" y="1346"/>
+ <point x="599" y="1394"/>
+ <point x="532" y="1461" type="curve"/>
+ <point x="388" y="1293" type="line"/>
+ <point x="484" y="1258"/>
+ <point x="575" y="1222"/>
+ <point x="647" y="1184" type="curve"/>
+ <point x="552" y="1141"/>
+ <point x="459" y="1109"/>
+ <point x="341" y="1066" type="curve"/>
+ <point x="398" y="888" type="line"/>
+ <point x="494" y="958"/>
+ <point x="575" y="1016"/>
+ <point x="674" y="1076" type="curve"/>
+ <point x="641" y="973"/>
+ <point x="610" y="887"/>
+ <point x="566" y="785" type="curve"/>
+ <point x="767" y="785" type="line"/>
+ <point x="773" y="897"/>
+ <point x="785" y="977"/>
+ <point x="800" y="1073" type="curve"/>
+ <point x="875" y="1017"/>
+ <point x="929" y="971"/>
+ <point x="995" y="905" type="curve"/>
+ <point x="1144" y="1078" type="line"/>
+ <point x="1045" y="1116"/>
+ <point x="967" y="1143"/>
+ <point x="886" y="1184" type="curve"/>
+ <point x="984" y="1229"/>
+ <point x="1075" y="1264"/>
+ <point x="1190" y="1308" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..e2233cf
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1693"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="10" type="line"/>
+ <point x="1008" y="-34"/>
+ <point x="933" y="-59"/>
+ <point x="840" y="-59" type="curve" smooth="yes"/>
+ <point x="540" y="-59"/>
+ <point x="362" y="143"/>
+ <point x="362" y="434" type="curve" smooth="yes"/>
+ <point x="362" y="498"/>
+ <point x="371" y="567"/>
+ <point x="389" y="639" type="curve" smooth="yes"/>
+ <point x="480" y="1003"/>
+ <point x="783" y="1228"/>
+ <point x="1121" y="1228" type="curve" smooth="yes"/>
+ <point x="1424" y="1228"/>
+ <point x="1581" y="1069"/>
+ <point x="1581" y="813" type="curve" smooth="yes"/>
+ <point x="1581" y="753"/>
+ <point x="1572" y="688"/>
+ <point x="1555" y="619" type="curve" smooth="yes"/>
+ <point x="1506" y="418"/>
+ <point x="1400" y="331"/>
+ <point x="1340" y="331" type="curve" smooth="yes"/>
+ <point x="1307" y="331"/>
+ <point x="1287" y="362"/>
+ <point x="1287" y="432" type="curve" smooth="yes"/>
+ <point x="1287" y="482"/>
+ <point x="1297" y="551"/>
+ <point x="1320" y="643" type="curve" smooth="yes"/>
+ <point x="1401" y="970" type="line"/>
+ <point x="1323" y="1005"/>
+ <point x="1182" y="1030"/>
+ <point x="1101" y="1030" type="curve" smooth="yes"/>
+ <point x="937" y="1030"/>
+ <point x="822" y="974"/>
+ <point x="710" y="862" type="curve" smooth="yes"/>
+ <point x="637" y="789"/>
+ <point x="569" y="677"/>
+ <point x="539" y="556" type="curve" smooth="yes"/>
+ <point x="529" y="518"/>
+ <point x="525" y="481"/>
+ <point x="525" y="447" type="curve" smooth="yes"/>
+ <point x="525" y="279"/>
+ <point x="629" y="161"/>
+ <point x="740" y="161" type="curve" smooth="yes"/>
+ <point x="867" y="161"/>
+ <point x="1034" y="328"/>
+ <point x="1117" y="450" type="curve"/>
+ <point x="1112" y="422"/>
+ <point x="1110" y="394"/>
+ <point x="1110" y="367" type="curve" smooth="yes"/>
+ <point x="1110" y="252"/>
+ <point x="1157" y="155"/>
+ <point x="1291" y="155" type="curve" smooth="yes"/>
+ <point x="1454" y="155"/>
+ <point x="1674" y="332"/>
+ <point x="1752" y="646" type="curve" smooth="yes"/>
+ <point x="1768" y="710"/>
+ <point x="1775" y="771"/>
+ <point x="1775" y="829" type="curve" smooth="yes"/>
+ <point x="1775" y="1169"/>
+ <point x="1520" y="1411"/>
+ <point x="1156" y="1411" type="curve" smooth="yes"/>
+ <point x="731" y="1411"/>
+ <point x="322" y="1180"/>
+ <point x="183" y="624" type="curve" smooth="yes"/>
+ <point x="163" y="544"/>
+ <point x="154" y="469"/>
+ <point x="154" y="398" type="curve" smooth="yes"/>
+ <point x="154" y="-1"/>
+ <point x="448" y="-243"/>
+ <point x="789" y="-243" type="curve" smooth="yes"/>
+ <point x="924" y="-243"/>
+ <point x="1076" y="-206"/>
+ <point x="1193" y="-137" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1135" y="703" type="line"/>
+ <point x="1069" y="566"/>
+ <point x="899" y="346"/>
+ <point x="809" y="346" type="curve" smooth="yes"/>
+ <point x="757" y="346"/>
+ <point x="726" y="386"/>
+ <point x="726" y="463" type="curve" smooth="yes"/>
+ <point x="726" y="493"/>
+ <point x="731" y="528"/>
+ <point x="741" y="569" type="curve" smooth="yes"/>
+ <point x="760" y="645"/>
+ <point x="803" y="731"/>
+ <point x="853" y="778" type="curve" smooth="yes"/>
+ <point x="901" y="824"/>
+ <point x="957" y="846"/>
+ <point x="1025" y="846" type="curve" smooth="yes"/>
+ <point x="1099" y="846"/>
+ <point x="1133" y="828"/>
+ <point x="1162" y="812" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..b60b998
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="860"/>
+ <unicode hex="005E"/>
+ <anchor x="788" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1056" y="1188" type="line"/>
+ <point x="845" y="1584" type="line"/>
+ <point x="545" y="1584" type="line"/>
+ <point x="177" y="1188" type="line"/>
+ <point x="417" y="1188" type="line"/>
+ <point x="674" y="1416" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..37f30d8
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="690"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..f3ea065
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-251" y="1635" name="U"/>
+ <anchor x="-325" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-165" y="1584" type="line"/>
+ <point x="-523" y="1188" type="line"/>
+ <point x="-283" y="1188" type="line"/>
+ <point x="204" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..9dc18ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-239" y="1635" name="U"/>
+ <anchor x="-330" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="88" y="1188" type="line"/>
+ <point x="-123" y="1584" type="line"/>
+ <point x="-423" y="1584" type="line"/>
+ <point x="-791" y="1188" type="line"/>
+ <point x="-551" y="1188" type="line"/>
+ <point x="-294" y="1416" type="line"/>
+ <point x="-151" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..490587d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-243" y="1585" name="U"/>
+ <anchor x="-365" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-233" y="1338" type="curve" smooth="yes"/>
+ <point x="-233" y="1256"/>
+ <point x="-172" y="1198"/>
+ <point x="-86" y="1198" type="curve" smooth="yes"/>
+ <point x="32" y="1198"/>
+ <point x="126" y="1294"/>
+ <point x="126" y="1404" type="curve" smooth="yes"/>
+ <point x="126" y="1484"/>
+ <point x="66" y="1544"/>
+ <point x="-21" y="1544" type="curve" smooth="yes"/>
+ <point x="-139" y="1544"/>
+ <point x="-233" y="1447"/>
+ </contour>
+ <contour>
+ <point x="-723" y="1338" type="curve" smooth="yes"/>
+ <point x="-723" y="1256"/>
+ <point x="-662" y="1198"/>
+ <point x="-576" y="1198" type="curve" smooth="yes"/>
+ <point x="-457" y="1198"/>
+ <point x="-363" y="1293"/>
+ <point x="-363" y="1404" type="curve" smooth="yes"/>
+ <point x="-363" y="1484"/>
+ <point x="-423" y="1544"/>
+ <point x="-510" y="1544" type="curve" smooth="yes"/>
+ <point x="-628" y="1544"/>
+ <point x="-723" y="1448"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..49617c2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-241" y="1635" name="U"/>
+ <anchor x="-415" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-725" y="1584" type="line"/>
+ <point x="-403" y="1188" type="line"/>
+ <point x="-173" y="1188" type="line"/>
+ <point x="-395" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..27f9832
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-357" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-358" y="1292" type="curve" smooth="yes"/>
+ <point x="-406" y="1292"/>
+ <point x="-442" y="1330"/>
+ <point x="-442" y="1375" type="curve" smooth="yes"/>
+ <point x="-442" y="1440"/>
+ <point x="-385" y="1480"/>
+ <point x="-331" y="1480" type="curve" smooth="yes"/>
+ <point x="-283" y="1480"/>
+ <point x="-247" y="1443"/>
+ <point x="-247" y="1398" type="curve" smooth="yes"/>
+ <point x="-247" y="1335"/>
+ <point x="-301" y="1292"/>
+ </contour>
+ <contour>
+ <point x="-598" y="1348" type="curve" smooth="yes"/>
+ <point x="-598" y="1238"/>
+ <point x="-504" y="1148"/>
+ <point x="-384" y="1148" type="curve" smooth="yes"/>
+ <point x="-223" y="1148"/>
+ <point x="-92" y="1271"/>
+ <point x="-92" y="1424" type="curve" smooth="yes"/>
+ <point x="-92" y="1534"/>
+ <point x="-186" y="1624"/>
+ <point x="-306" y="1624" type="curve" smooth="yes"/>
+ <point x="-467" y="1624"/>
+ <point x="-598" y="1501"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..1aa1b62
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-355" y="1490" name="U"/>
+ <anchor x="-390" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-687" y="1178" type="line"/>
+ <point x="-673" y="1232"/>
+ <point x="-628" y="1271"/>
+ <point x="-584" y="1271" type="curve" smooth="yes"/>
+ <point x="-546" y="1271"/>
+ <point x="-498" y="1247"/>
+ <point x="-437" y="1217" type="curve" smooth="yes"/>
+ <point x="-375" y="1187"/>
+ <point x="-327" y="1168"/>
+ <point x="-265" y="1168" type="curve" smooth="yes"/>
+ <point x="-129" y="1168"/>
+ <point x="-13" y="1294"/>
+ <point x="30" y="1465" type="curve"/>
+ <point x="-125" y="1465" type="line"/>
+ <point x="-138" y="1415"/>
+ <point x="-190" y="1373"/>
+ <point x="-235" y="1373" type="curve" smooth="yes"/>
+ <point x="-272" y="1373"/>
+ <point x="-306" y="1399"/>
+ <point x="-366" y="1423" type="curve" smooth="yes"/>
+ <point x="-438" y="1452"/>
+ <point x="-498" y="1475"/>
+ <point x="-563" y="1475" type="curve" smooth="yes"/>
+ <point x="-695" y="1475"/>
+ <point x="-802" y="1336"/>
+ <point x="-842" y="1178" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..4105316
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="645"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..9272dc9
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="543" y="-25" type="curve" smooth="yes"/>
+ <point x="860" y="-25"/>
+ <point x="1182" y="176"/>
+ <point x="1182" y="498" type="curve" smooth="yes"/>
+ <point x="1182" y="642"/>
+ <point x="1090" y="742"/>
+ <point x="1011" y="787" type="curve"/>
+ <point x="1159" y="866"/>
+ <point x="1279" y="994"/>
+ <point x="1279" y="1163" type="curve" smooth="yes"/>
+ <point x="1279" y="1342"/>
+ <point x="1123" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="632" y="1470"/>
+ <point x="349" y="1310"/>
+ <point x="349" y="1028" type="curve" smooth="yes"/>
+ <point x="349" y="904"/>
+ <point x="412" y="821"/>
+ <point x="466" y="787" type="curve"/>
+ <point x="270" y="703"/>
+ <point x="108" y="563"/>
+ <point x="108" y="341" type="curve" smooth="yes"/>
+ <point x="108" y="123"/>
+ <point x="301" y="-25"/>
+ </contour>
+ <contour>
+ <point x="760" y="886" type="curve" smooth="yes"/>
+ <point x="651" y="886"/>
+ <point x="593" y="939"/>
+ <point x="593" y="1038" type="curve" smooth="yes"/>
+ <point x="593" y="1175"/>
+ <point x="721" y="1277"/>
+ <point x="858" y="1277" type="curve" smooth="yes"/>
+ <point x="976" y="1277"/>
+ <point x="1028" y="1221"/>
+ <point x="1028" y="1127" type="curve" smooth="yes"/>
+ <point x="1028" y="993"/>
+ <point x="898" y="886"/>
+ </contour>
+ <contour>
+ <point x="595" y="183" type="curve" smooth="yes"/>
+ <point x="458" y="183"/>
+ <point x="375" y="267"/>
+ <point x="375" y="384" type="curve" smooth="yes"/>
+ <point x="375" y="549"/>
+ <point x="549" y="673"/>
+ <point x="707" y="673" type="curve" smooth="yes"/>
+ <point x="833" y="673"/>
+ <point x="920" y="602"/>
+ <point x="920" y="477" type="curve" smooth="yes"/>
+ <point x="920" y="317"/>
+ <point x="759" y="183"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..1c4dd99
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1330" y="1445" type="line"/>
+ <point x="475" y="1445" type="line"/>
+ <point x="274" y="639" type="line"/>
+ <point x="410" y="686"/>
+ <point x="519" y="703"/>
+ <point x="625" y="703" type="curve" smooth="yes"/>
+ <point x="763" y="703"/>
+ <point x="867" y="630"/>
+ <point x="867" y="507" type="curve" smooth="yes"/>
+ <point x="867" y="318"/>
+ <point x="680" y="213"/>
+ <point x="503" y="213" type="curve" smooth="yes"/>
+ <point x="363" y="213"/>
+ <point x="255" y="260"/>
+ <point x="168" y="356" type="curve"/>
+ <point x="59" y="79" type="line"/>
+ <point x="165" y="2"/>
+ <point x="308" y="-25"/>
+ <point x="483" y="-25" type="curve" smooth="yes"/>
+ <point x="841" y="-25"/>
+ <point x="1155" y="204"/>
+ <point x="1155" y="564" type="curve" smooth="yes"/>
+ <point x="1155" y="774"/>
+ <point x="1007" y="921"/>
+ <point x="774" y="921" type="curve" smooth="yes"/>
+ <point x="712" y="921"/>
+ <point x="632" y="902"/>
+ <point x="595" y="886" type="curve"/>
+ <point x="674" y="1203" type="line"/>
+ <point x="1004" y="1203" type="line" smooth="yes"/>
+ <point x="1088" y="1203"/>
+ <point x="1193" y="1199"/>
+ <point x="1264" y="1183" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..617709f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1180" y="342" type="line"/>
+ <point x="1235" y="564" type="line"/>
+ <point x="1075" y="564" type="line"/>
+ <point x="1295" y="1445" type="line"/>
+ <point x="945" y="1445" type="line"/>
+ <point x="120" y="564" type="line"/>
+ <point x="65" y="342" type="line"/>
+ <point x="755" y="342" type="line"/>
+ <point x="670" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1020" y="342" type="line"/>
+ </contour>
+ <contour>
+ <point x="954" y="1143" type="line"/>
+ <point x="810" y="564" type="line"/>
+ <point x="385" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..85e36a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="119" y="84" type="line"/>
+ <point x="199" y="25"/>
+ <point x="327" y="-25"/>
+ <point x="455" y="-25" type="curve" smooth="yes"/>
+ <point x="979" y="-25"/>
+ <point x="1289" y="533"/>
+ <point x="1289" y="979" type="curve" smooth="yes"/>
+ <point x="1289" y="1248"/>
+ <point x="1164" y="1470"/>
+ <point x="833" y="1470" type="curve" smooth="yes"/>
+ <point x="554" y="1470"/>
+ <point x="255" y="1239"/>
+ <point x="255" y="932" type="curve" smooth="yes"/>
+ <point x="255" y="736"/>
+ <point x="399" y="570"/>
+ <point x="644" y="570" type="curve" smooth="yes"/>
+ <point x="833" y="570"/>
+ <point x="1027" y="700"/>
+ <point x="1164" y="859" type="curve"/>
+ <point x="1123" y="981" type="line"/>
+ <point x="1021" y="868"/>
+ <point x="863" y="782"/>
+ <point x="728" y="782" type="curve" smooth="yes"/>
+ <point x="589" y="782"/>
+ <point x="519" y="845"/>
+ <point x="519" y="955" type="curve" smooth="yes"/>
+ <point x="519" y="1133"/>
+ <point x="653" y="1237"/>
+ <point x="801" y="1237" type="curve" smooth="yes"/>
+ <point x="951" y="1237"/>
+ <point x="1029" y="1136"/>
+ <point x="1029" y="965" type="curve" smooth="yes"/>
+ <point x="1029" y="476"/>
+ <point x="710" y="208"/>
+ <point x="513" y="208" type="curve" smooth="yes"/>
+ <point x="417" y="208"/>
+ <point x="301" y="252"/>
+ <point x="237" y="337" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..df3633d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="490" y="233" type="line"/>
+ <point x="183" y="233" type="line"/>
+ <point x="125" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="1073" y="233" type="line"/>
+ <point x="765" y="233" type="line"/>
+ <point x="1067" y="1445" type="line"/>
+ <point x="792" y="1445" type="line"/>
+ <point x="432" y="1265" type="line"/>
+ <point x="403" y="1008" type="line"/>
+ <point x="720" y="1158" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..23ac13b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="480" y="0" type="line"/>
+ <point x="722" y="454"/>
+ <point x="1004" y="846"/>
+ <point x="1400" y="1247" type="curve"/>
+ <point x="1450" y="1445" type="line"/>
+ <point x="390" y="1445" type="line"/>
+ <point x="324" y="1178" type="line"/>
+ <point x="404" y="1194"/>
+ <point x="521" y="1198"/>
+ <point x="709" y="1198" type="curve" smooth="yes"/>
+ <point x="1039" y="1198" type="line"/>
+ <point x="689" y="829"/>
+ <point x="488" y="560"/>
+ <point x="175" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..5fad278
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1347" y="1371" type="line"/>
+ <point x="1260" y="1440"/>
+ <point x="1149" y="1470"/>
+ <point x="1011" y="1470" type="curve" smooth="yes"/>
+ <point x="493" y="1470"/>
+ <point x="181" y="971"/>
+ <point x="181" y="500" type="curve" smooth="yes"/>
+ <point x="181" y="188"/>
+ <point x="368" y="-25"/>
+ <point x="635" y="-25" type="curve" smooth="yes"/>
+ <point x="954" y="-25"/>
+ <point x="1207" y="192"/>
+ <point x="1207" y="498" type="curve" smooth="yes"/>
+ <point x="1207" y="714"/>
+ <point x="1058" y="916"/>
+ <point x="813" y="916" type="curve" smooth="yes"/>
+ <point x="622" y="916"/>
+ <point x="477" y="802"/>
+ <point x="326" y="648" type="curve"/>
+ <point x="363" y="525" type="line"/>
+ <point x="470" y="637"/>
+ <point x="595" y="703"/>
+ <point x="750" y="703" type="curve" smooth="yes"/>
+ <point x="882" y="703"/>
+ <point x="954" y="586"/>
+ <point x="954" y="466" type="curve" smooth="yes"/>
+ <point x="954" y="325"/>
+ <point x="828" y="208"/>
+ <point x="677" y="208" type="curve" smooth="yes"/>
+ <point x="526" y="208"/>
+ <point x="447" y="350"/>
+ <point x="447" y="533" type="curve" smooth="yes"/>
+ <point x="447" y="978"/>
+ <point x="738" y="1237"/>
+ <point x="953" y="1237" type="curve" smooth="yes"/>
+ <point x="1049" y="1237"/>
+ <point x="1155" y="1204"/>
+ <point x="1220" y="1119" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..5be951b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="548" y="876" type="line"/>
+ <point x="489" y="639" type="line"/>
+ <point x="579" y="639" type="line" smooth="yes"/>
+ <point x="778" y="639"/>
+ <point x="880" y="555"/>
+ <point x="880" y="452" type="curve" smooth="yes"/>
+ <point x="880" y="295"/>
+ <point x="726" y="208"/>
+ <point x="576" y="208" type="curve" smooth="yes"/>
+ <point x="386" y="208"/>
+ <point x="253" y="279"/>
+ <point x="174" y="401" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="162" y="32"/>
+ <point x="321" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="867" y="-25"/>
+ <point x="1163" y="169"/>
+ <point x="1163" y="471" type="curve" smooth="yes"/>
+ <point x="1163" y="644"/>
+ <point x="999" y="751"/>
+ <point x="882" y="772" type="curve"/>
+ <point x="1076" y="817"/>
+ <point x="1296" y="963"/>
+ <point x="1296" y="1172" type="curve" smooth="yes"/>
+ <point x="1296" y="1348"/>
+ <point x="1112" y="1470"/>
+ <point x="856" y="1470" type="curve" smooth="yes"/>
+ <point x="689" y="1470"/>
+ <point x="529" y="1402"/>
+ <point x="427" y="1312" type="curve"/>
+ <point x="405" y="1084" type="line"/>
+ <point x="546" y="1199"/>
+ <point x="664" y="1237"/>
+ <point x="818" y="1237" type="curve" smooth="yes"/>
+ <point x="928" y="1237"/>
+ <point x="1001" y="1178"/>
+ <point x="1001" y="1100" type="curve" smooth="yes"/>
+ <point x="1001" y="975"/>
+ <point x="819" y="876"/>
+ <point x="638" y="876" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..001d438
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1094" y="257" type="line"/>
+ <point x="1010" y="244"/>
+ <point x="942" y="243"/>
+ <point x="745" y="243" type="curve" smooth="yes"/>
+ <point x="480" y="243" type="line"/>
+ <point x="875" y="492"/>
+ <point x="1255" y="786"/>
+ <point x="1255" y="1125" type="curve" smooth="yes"/>
+ <point x="1255" y="1324"/>
+ <point x="1106" y="1470"/>
+ <point x="846" y="1470" type="curve" smooth="yes"/>
+ <point x="667" y="1470"/>
+ <point x="472" y="1388"/>
+ <point x="363" y="1277" type="curve"/>
+ <point x="374" y="1039" type="line"/>
+ <point x="489" y="1146"/>
+ <point x="646" y="1223"/>
+ <point x="762" y="1223" type="curve" smooth="yes"/>
+ <point x="890" y="1223"/>
+ <point x="949" y="1138"/>
+ <point x="949" y="1040" type="curve" smooth="yes"/>
+ <point x="949" y="805"/>
+ <point x="500" y="440"/>
+ <point x="104" y="218" type="curve"/>
+ <point x="50" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..895a8e4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="959" y="683" type="curve" smooth="yes"/>
+ <point x="873" y="339"/>
+ <point x="762" y="203"/>
+ <point x="600" y="203" type="curve" smooth="yes"/>
+ <point x="469" y="203"/>
+ <point x="432" y="294"/>
+ <point x="432" y="454" type="curve" smooth="yes"/>
+ <point x="432" y="537"/>
+ <point x="447" y="630"/>
+ <point x="478" y="755" type="curve" smooth="yes"/>
+ <point x="564" y="1099"/>
+ <point x="676" y="1242"/>
+ <point x="839" y="1242" type="curve" smooth="yes"/>
+ <point x="971" y="1242"/>
+ <point x="1010" y="1140"/>
+ <point x="1010" y="992" type="curve" smooth="yes"/>
+ <point x="1010" y="907"/>
+ <point x="991" y="811"/>
+ </contour>
+ <contour>
+ <point x="1246" y="689" type="curve" smooth="yes"/>
+ <point x="1281" y="828"/>
+ <point x="1298" y="927"/>
+ <point x="1298" y="1028" type="curve" smooth="yes"/>
+ <point x="1298" y="1317"/>
+ <point x="1158" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="587" y="1470"/>
+ <point x="329" y="1302"/>
+ <point x="190" y="745" type="curve" smooth="yes"/>
+ <point x="157" y="611"/>
+ <point x="141" y="516"/>
+ <point x="141" y="420" type="curve" smooth="yes"/>
+ <point x="141" y="131"/>
+ <point x="292" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="854" y="-25"/>
+ <point x="1103" y="115"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..0b8bdfc
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="879" y="1584" type="line"/>
+ <point x="679" y="780" type="line"/>
+ <point x="634" y="719" type="line"/>
+ <point x="400" y="-218" type="line"/>
+ <point x="576" y="-218" type="line"/>
+ <point x="795" y="661" type="line"/>
+ <point x="842" y="727" type="line"/>
+ <point x="1055" y="1584" type="line"/>
+ </contour>
+ <contour>
+ <point x="1250" y="1303" type="line"/>
+ <point x="1145" y="1355"/>
+ <point x="1026" y="1375"/>
+ <point x="885" y="1375" type="curve" smooth="yes"/>
+ <point x="537" y="1375"/>
+ <point x="345" y="1216"/>
+ <point x="345" y="984" type="curve" smooth="yes"/>
+ <point x="345" y="841"/>
+ <point x="441" y="726"/>
+ <point x="638" y="622" type="curve" smooth="yes"/>
+ <point x="832" y="519"/>
+ <point x="881" y="451"/>
+ <point x="881" y="381" type="curve" smooth="yes"/>
+ <point x="881" y="274"/>
+ <point x="817" y="209"/>
+ <point x="613" y="209" type="curve" smooth="yes"/>
+ <point x="462" y="209"/>
+ <point x="336" y="298"/>
+ <point x="259" y="389" type="curve"/>
+ <point x="133" y="143" type="line"/>
+ <point x="243" y="56"/>
+ <point x="378" y="0"/>
+ <point x="566" y="0" type="curve" smooth="yes"/>
+ <point x="879" y="0"/>
+ <point x="1120" y="142"/>
+ <point x="1120" y="396" type="curve" smooth="yes"/>
+ <point x="1120" y="562"/>
+ <point x="1028" y="682"/>
+ <point x="817" y="803" type="curve" smooth="yes"/>
+ <point x="635" y="908"/>
+ <point x="592" y="958"/>
+ <point x="592" y="1016" type="curve" smooth="yes"/>
+ <point x="592" y="1113"/>
+ <point x="649" y="1176"/>
+ <point x="826" y="1176" type="curve" smooth="yes"/>
+ <point x="954" y="1176"/>
+ <point x="1048" y="1135"/>
+ <point x="1134" y="1066" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..f7581b6
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="645" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..0461eab
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="168" y="436" type="line"/>
+ <point x="1128" y="436" type="line"/>
+ <point x="1180" y="643" type="line"/>
+ <point x="220" y="643" type="line"/>
+ </contour>
+ <contour>
+ <point x="259" y="802" type="line"/>
+ <point x="1219" y="802" type="line"/>
+ <point x="1271" y="1010" type="line"/>
+ <point x="311" y="1010" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..167f45e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="760"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="593" y="495" type="line"/>
+ <point x="670" y="782"/>
+ <point x="736" y="1065"/>
+ <point x="882" y="1495" type="curve"/>
+ <point x="547" y="1495" type="line"/>
+ <point x="478" y="1065"/>
+ <point x="402" y="782"/>
+ <point x="338" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="201" y="116" type="curve" smooth="yes"/>
+ <point x="201" y="35"/>
+ <point x="262" y="-25"/>
+ <point x="348" y="-25" type="curve" smooth="yes"/>
+ <point x="466" y="-25"/>
+ <point x="561" y="71"/>
+ <point x="561" y="181" type="curve" smooth="yes"/>
+ <point x="561" y="261"/>
+ <point x="502" y="322"/>
+ <point x="415" y="322" type="curve" smooth="yes"/>
+ <point x="298" y="322"/>
+ <point x="201" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..cfedcd4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="690"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..6dab866
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="243" type="line"/>
+ <point x="1186" y="629" type="line"/>
+ <point x="1233" y="817" type="line"/>
+ <point x="369" y="1203" type="line"/>
+ <point x="313" y="975" type="line"/>
+ <point x="930" y="733" type="line"/>
+ <point x="187" y="470" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..f745b6a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="620"/>
+ <unicode hex="0060"/>
+ <anchor x="848" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="265" y="1584" type="line"/>
+ <point x="587" y="1188" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ <point x="595" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..810f855
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="655" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="139" y="520" type="line"/>
+ <point x="879" y="520" type="line"/>
+ <point x="931" y="728" type="line"/>
+ <point x="191" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..d8ce949
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="875"/>
+ <unicode hex="002D"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="149" y="520" type="line"/>
+ <point x="884" y="520" type="line"/>
+ <point x="936" y="728" type="line"/>
+ <point x="201" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..2f651fa
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="875"/>
+ <unicode hex="00AD"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..b2883d3
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1127" y="470" type="line"/>
+ <point x="510" y="713" type="line"/>
+ <point x="1253" y="975" type="line"/>
+ <point x="1309" y="1203" type="line"/>
+ <point x="253" y="817" type="line"/>
+ <point x="206" y="629" type="line"/>
+ <point x="1070" y="243" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..c92f889
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="790" y="-177" type="line"/>
+ <point x="717" y="-149"/>
+ <point x="597" y="-129"/>
+ <point x="597" y="-79" type="curve" smooth="yes"/>
+ <point x="597" y="16"/>
+ <point x="695" y="378"/>
+ <point x="695" y="435" type="curve" smooth="yes"/>
+ <point x="695" y="476"/>
+ <point x="574" y="568"/>
+ <point x="574" y="605" type="curve" smooth="yes"/>
+ <point x="574" y="644"/>
+ <point x="742" y="733"/>
+ <point x="776" y="777" type="curve" smooth="yes"/>
+ <point x="803" y="812"/>
+ <point x="908" y="1276"/>
+ <point x="953" y="1317" type="curve" smooth="yes"/>
+ <point x="975" y="1337"/>
+ <point x="1090" y="1376"/>
+ <point x="1157" y="1395" type="curve"/>
+ <point x="1165" y="1624" type="line"/>
+ <point x="1031" y="1597"/>
+ <point x="827" y="1546"/>
+ <point x="768" y="1500" type="curve" smooth="yes"/>
+ <point x="677" y="1428"/>
+ <point x="542" y="843"/>
+ <point x="512" y="812" type="curve" smooth="yes"/>
+ <point x="472" y="770"/>
+ <point x="260" y="659"/>
+ <point x="260" y="601" type="curve" smooth="yes"/>
+ <point x="260" y="540"/>
+ <point x="412" y="434"/>
+ <point x="412" y="399" type="curve" smooth="yes"/>
+ <point x="412" y="337"/>
+ <point x="311" y="-52"/>
+ <point x="311" y="-216" type="curve" smooth="yes"/>
+ <point x="311" y="-248"/>
+ <point x="315" y="-271"/>
+ <point x="324" y="-282" type="curve" smooth="yes"/>
+ <point x="362" y="-330"/>
+ <point x="554" y="-379"/>
+ <point x="683" y="-406" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..42e4531
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="899" y="1624" type="line"/>
+ <point x="586" y="1430"/>
+ <point x="317" y="1081"/>
+ <point x="209" y="649" type="curve" smooth="yes"/>
+ <point x="177" y="521"/>
+ <point x="161" y="397"/>
+ <point x="161" y="277" type="curve" smooth="yes"/>
+ <point x="161" y="20"/>
+ <point x="234" y="-214"/>
+ <point x="373" y="-406" type="curve"/>
+ <point x="565" y="-198" type="line"/>
+ <point x="479" y="-42"/>
+ <point x="436" y="130"/>
+ <point x="436" y="315" type="curve" smooth="yes"/>
+ <point x="436" y="422"/>
+ <point x="450" y="534"/>
+ <point x="479" y="649" type="curve" smooth="yes"/>
+ <point x="559" y="972"/>
+ <point x="715" y="1216"/>
+ <point x="966" y="1411" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..db76a2d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="553" y="-406" type="line"/>
+ <point x="605" y="-198" type="line"/>
+ <point x="365" y="-198" type="line"/>
+ <point x="753" y="1376" type="line"/>
+ <point x="993" y="1376" type="line"/>
+ <point x="1044" y="1584" type="line"/>
+ <point x="524" y="1584" type="line"/>
+ <point x="33" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..de8a991
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-146" y="-347" type="line"/>
+ <point x="1127" y="-347" type="line"/>
+ <point x="1179" y="-139" type="line"/>
+ <point x="-94" y="-139" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..592502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1465"/>
+ <unicode hex="0041"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1338" y="0" type="line"/>
+ <point x="1322" y="79"/>
+ <point x="1312" y="166"/>
+ <point x="1295" y="351" type="curve" smooth="yes"/>
+ <point x="1198" y="1445" type="line"/>
+ <point x="842" y="1445" type="line"/>
+ <point x="199" y="351" type="line" smooth="yes"/>
+ <point x="89" y="164"/>
+ <point x="37" y="80"/>
+ <point x="-18" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="487" y="351" type="line"/>
+ <point x="1031" y="351" type="line"/>
+ </contour>
+ <contour>
+ <point x="973" y="1216" type="line"/>
+ <point x="1016" y="564" type="line"/>
+ <point x="606" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..17600b4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1465"/>
+ <unicode hex="00C4"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1176" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1419" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..2b14150
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1367"/>
+ <unicode hex="0042"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="698" y="1236" type="line"/>
+ <point x="735" y="1237"/>
+ <point x="791" y="1240"/>
+ <point x="860" y="1240" type="curve" smooth="yes"/>
+ <point x="1021" y="1240"/>
+ <point x="1101" y="1179"/>
+ <point x="1101" y="1087" type="curve" smooth="yes"/>
+ <point x="1101" y="932"/>
+ <point x="962" y="866"/>
+ <point x="770" y="866" type="curve" smooth="yes"/>
+ <point x="605" y="866" type="line"/>
+ </contour>
+ <contour>
+ <point x="217" y="450" type="line"/>
+ <point x="168" y="254"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="161" y="-3"/>
+ <point x="368" y="-10"/>
+ <point x="598" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1298" y="206"/>
+ <point x="1298" y="508" type="curve" smooth="yes"/>
+ <point x="1298" y="673"/>
+ <point x="1188" y="759"/>
+ <point x="1072" y="792" type="curve"/>
+ <point x="1254" y="848"/>
+ <point x="1388" y="956"/>
+ <point x="1388" y="1155" type="curve" smooth="yes"/>
+ <point x="1388" y="1359"/>
+ <point x="1181" y="1455"/>
+ <point x="897" y="1455" type="curve" smooth="yes"/>
+ <point x="704" y="1455"/>
+ <point x="549" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="399" y="1182"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="552" y="651" type="line"/>
+ <point x="745" y="651" type="line" smooth="yes"/>
+ <point x="927" y="651"/>
+ <point x="1019" y="577"/>
+ <point x="1019" y="468" type="curve" smooth="yes"/>
+ <point x="1019" y="295"/>
+ <point x="879" y="213"/>
+ <point x="675" y="213" type="curve" smooth="yes"/>
+ <point x="575" y="213"/>
+ <point x="476" y="216"/>
+ <point x="444" y="218" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..569eba9
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1357"/>
+ <unicode hex="0043"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1286" y="391" type="line"/>
+ <point x="1149" y="280"/>
+ <point x="966" y="218"/>
+ <point x="816" y="218" type="curve" smooth="yes"/>
+ <point x="594" y="218"/>
+ <point x="472" y="349"/>
+ <point x="472" y="588" type="curve" smooth="yes"/>
+ <point x="472" y="922"/>
+ <point x="690" y="1230"/>
+ <point x="1039" y="1230" type="curve" smooth="yes"/>
+ <point x="1170" y="1230"/>
+ <point x="1298" y="1188"/>
+ <point x="1385" y="1093" type="curve"/>
+ <point x="1515" y="1331" type="line"/>
+ <point x="1408" y="1418"/>
+ <point x="1247" y="1470"/>
+ <point x="1073" y="1470" type="curve" smooth="yes"/>
+ <point x="545" y="1470"/>
+ <point x="191" y="1032"/>
+ <point x="191" y="544" type="curve" smooth="yes"/>
+ <point x="191" y="210"/>
+ <point x="404" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="921" y="-25"/>
+ <point x="1124" y="27"/>
+ <point x="1271" y="124" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..093d346
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1465"/>
+ <unicode hex="0044"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="1122" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="217" y="450" type="line" smooth="yes"/>
+ <point x="167" y="251"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="431" y="-10"/>
+ <point x="566" y="-10" type="curve" smooth="yes"/>
+ <point x="1036" y="-10"/>
+ <point x="1361" y="195"/>
+ <point x="1471" y="648" type="curve" smooth="yes"/>
+ <point x="1494" y="742"/>
+ <point x="1505" y="827"/>
+ <point x="1505" y="902" type="curve" smooth="yes"/>
+ <point x="1505" y="1325"/>
+ <point x="1172" y="1455"/>
+ <point x="912" y="1455" type="curve" smooth="yes"/>
+ <point x="769" y="1455"/>
+ <point x="540" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1371"/>
+ <point x="404" y="1205"/>
+ <point x="359" y="1024" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1229" type="line"/>
+ <point x="738" y="1231"/>
+ <point x="809" y="1234"/>
+ <point x="864" y="1234" type="curve" smooth="yes"/>
+ <point x="1077" y="1234"/>
+ <point x="1212" y="1104"/>
+ <point x="1212" y="871" type="curve" smooth="yes"/>
+ <point x="1212" y="805"/>
+ <point x="1201" y="731"/>
+ <point x="1181" y="647" type="curve" smooth="yes"/>
+ <point x="1108" y="346"/>
+ <point x="930" y="219"/>
+ <point x="647" y="219" type="curve" smooth="yes"/>
+ <point x="568" y="219"/>
+ <point x="485" y="225"/>
+ <point x="447" y="229" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8e7a0a1
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1192"/>
+ <unicode hex="0045"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="944" y="0" name="O"/>
+ <anchor x="1487" y="1200" name="R"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="605" y="866" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1315" y="1217" type="line"/>
+ <point x="1372" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1042" y="0" type="line"/>
+ <point x="1102" y="243" type="line"/>
+ <point x="1021" y="229"/>
+ <point x="895" y="228"/>
+ <point x="704" y="228" type="curve" smooth="yes"/>
+ <point x="446" y="228" type="line"/>
+ <point x="550" y="644" type="line"/>
+ <point x="1097" y="644" type="line"/>
+ <point x="1152" y="866" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..df3370c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1180"/>
+ <unicode hex="0046"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="952" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="602" y="851" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1333" y="1217" type="line"/>
+ <point x="1390" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="405" y="1205"/>
+ <point x="356" y="1010" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="407" y="72"/>
+ <point x="444" y="220"/>
+ <point x="490" y="404" type="curve" smooth="yes"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1101" y="629" type="line"/>
+ <point x="1157" y="851" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..7d36953
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1452"/>
+ <unicode hex="0047"/>
+ <anchor x="747" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="1129" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="767" type="line"/>
+ <point x="910" y="767" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="1170" y="544" type="line"/>
+ <point x="1104" y="271" type="line"/>
+ <point x="1015" y="231"/>
+ <point x="916" y="218"/>
+ <point x="805" y="218" type="curve" smooth="yes"/>
+ <point x="593" y="218"/>
+ <point x="475" y="352"/>
+ <point x="475" y="567" type="curve" smooth="yes"/>
+ <point x="475" y="633"/>
+ <point x="484" y="708"/>
+ <point x="505" y="789" type="curve" smooth="yes"/>
+ <point x="581" y="1079"/>
+ <point x="802" y="1230"/>
+ <point x="1067" y="1230" type="curve" smooth="yes"/>
+ <point x="1220" y="1230"/>
+ <point x="1334" y="1193"/>
+ <point x="1449" y="1096" type="curve"/>
+ <point x="1594" y="1332" type="line"/>
+ <point x="1447" y="1437"/>
+ <point x="1275" y="1470"/>
+ <point x="1094" y="1470" type="curve" smooth="yes"/>
+ <point x="709" y="1470"/>
+ <point x="345" y="1257"/>
+ <point x="227" y="783" type="curve" smooth="yes"/>
+ <point x="205" y="694"/>
+ <point x="194" y="611"/>
+ <point x="194" y="534" type="curve" smooth="yes"/>
+ <point x="194" y="176"/>
+ <point x="419" y="-25"/>
+ <point x="768" y="-25" type="curve" smooth="yes"/>
+ <point x="940" y="-25"/>
+ <point x="1105" y="10"/>
+ <point x="1325" y="133" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..a49f5fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1495"/>
+ <unicode hex="0048"/>
+ <anchor x="245" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="1445" type="line"/>
+ <point x="1192" y="851" type="line"/>
+ <point x="602" y="851" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="408" y="1215"/>
+ <point x="359" y="1020" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="162" y="231"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="390" y="0"/>
+ <point x="390" y="0" type="curve"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1136" y="629" type="line"/>
+ <point x="980" y="0" type="line"/>
+ <point x="980" y="0"/>
+ <point x="1280" y="0"/>
+ <point x="1280" y="0" type="curve"/>
+ <point x="1284" y="79"/>
+ <point x="1322" y="231"/>
+ <point x="1371" y="426" type="curve" smooth="yes"/>
+ <point x="1519" y="1020" type="line" smooth="yes"/>
+ <point x="1567" y="1215"/>
+ <point x="1605" y="1366"/>
+ <point x="1640" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..fc059de
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1025"/>
+ <unicode hex="0049"/>
+ <anchor x="460" y="0" name="H"/>
+ <anchor x="431" y="-100" name="L"/>
+ <anchor x="652" y="0" name="O"/>
+ <anchor x="1254" y="1200" name="R"/>
+ <anchor x="842" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="430" y="1445" type="line"/>
+ <point x="379" y="1242" type="line"/>
+ <point x="619" y="1242" type="line"/>
+ <point x="360" y="203" type="line"/>
+ <point x="120" y="203" type="line"/>
+ <point x="70" y="0" type="line"/>
+ <point x="835" y="0" type="line"/>
+ <point x="885" y="203" type="line"/>
+ <point x="645" y="203" type="line"/>
+ <point x="904" y="1242" type="line"/>
+ <point x="1144" y="1242" type="line"/>
+ <point x="1195" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..6a3a604
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1010"/>
+ <unicode hex="004A"/>
+ <anchor x="330" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="855" y="1445" type="line"/>
+ <point x="842" y="1340"/>
+ <point x="799" y="1163"/>
+ <point x="751" y="970" type="curve" smooth="yes"/>
+ <point x="647" y="552" type="line" smooth="yes"/>
+ <point x="602" y="370"/>
+ <point x="516" y="225"/>
+ <point x="341" y="225" type="curve" smooth="yes"/>
+ <point x="260" y="225"/>
+ <point x="159" y="267"/>
+ <point x="104" y="344" type="curve"/>
+ <point x="-8" y="89" type="line"/>
+ <point x="51" y="19"/>
+ <point x="191" y="-25"/>
+ <point x="326" y="-25" type="curve" smooth="yes"/>
+ <point x="611" y="-25"/>
+ <point x="826" y="128"/>
+ <point x="927" y="530" type="curve" smooth="yes"/>
+ <point x="947" y="612"/>
+ <point x="1155" y="1445"/>
+ <point x="1155" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..44d4d68
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1410"/>
+ <unicode hex="004B"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="390" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1445" type="line"/>
+ <point x="461" y="697" type="line"/>
+ <point x="634" y="738" type="line"/>
+ <point x="758" y="724" type="line"/>
+ <point x="1580" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="509" y="724" type="line"/>
+ <point x="950" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="738" y="801" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..f8d6959
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1110"/>
+ <unicode hex="004C"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="890" y="1200" name="R"/>
+ <anchor x="942" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="446" y="228" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1085" y="243" type="line"/>
+ <point x="1005" y="229"/>
+ <point x="851" y="228"/>
+ <point x="662" y="228" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..67d1463
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1835"/>
+ <unicode hex="004D"/>
+ <anchor x="830" y="-100" name="L"/>
+ <anchor x="1237" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="919" y="272" type="line"/>
+ <point x="865" y="1445" type="line"/>
+ <point x="615" y="1445" type="line"/>
+ <point x="664" y="1158" type="line"/>
+ <point x="710" y="0" type="line"/>
+ <point x="1005" y="0" type="line"/>
+ <point x="1625" y="1158" type="line"/>
+ <point x="1817" y="1445" type="line"/>
+ <point x="1550" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="520" y="1445" type="line"/>
+ <point x="520" y="1445"/>
+ <point x="164" y="196"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="360" y="0" type="line"/>
+ <point x="686" y="1193" type="line"/>
+ <point x="785" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1630" y="0" type="line"/>
+ <point x="1649" y="196"/>
+ <point x="1910" y="1445"/>
+ <point x="1910" y="1445" type="curve"/>
+ <point x="1640" y="1445" type="line"/>
+ <point x="1622" y="1193" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..838490a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1525"/>
+ <unicode hex="004E"/>
+ <anchor x="1180" y="0" name="H"/>
+ <anchor x="680" y="-100" name="L"/>
+ <anchor x="1087" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="506" y="1297" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="1253" y="148" type="line"/>
+ <point x="725" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1035" y="0" type="line"/>
+ <point x="1305" y="0" type="line"/>
+ <point x="1558" y="1015" type="line" smooth="yes"/>
+ <point x="1606" y="1210"/>
+ <point x="1646" y="1366"/>
+ <point x="1680" y="1445" type="curve"/>
+ <point x="1395" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="725" y="1445" type="line"/>
+ <point x="440" y="1445" type="line"/>
+ <point x="434" y="1366"/>
+ <point x="396" y="1210"/>
+ <point x="348" y="1015" type="curve" smooth="yes"/>
+ <point x="202" y="431" type="line" smooth="yes"/>
+ <point x="153" y="236"/>
+ <point x="113" y="79"/>
+ <point x="80" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..4410e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1480"/>
+ <unicode hex="004F"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="916" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1062" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="754" y="218" type="curve" smooth="yes"/>
+ <point x="580" y="218"/>
+ <point x="471" y="345"/>
+ <point x="471" y="568" type="curve" smooth="yes"/>
+ <point x="471" y="922"/>
+ <point x="664" y="1228"/>
+ <point x="966" y="1228" type="curve" smooth="yes"/>
+ <point x="1134" y="1228"/>
+ <point x="1237" y="1106"/>
+ <point x="1237" y="891" type="curve" smooth="yes"/>
+ <point x="1237" y="540"/>
+ <point x="1060" y="218"/>
+ </contour>
+ <contour>
+ <point x="1519" y="911" type="curve" smooth="yes"/>
+ <point x="1519" y="1249"/>
+ <point x="1350" y="1470"/>
+ <point x="1026" y="1470" type="curve" smooth="yes"/>
+ <point x="510" y="1470"/>
+ <point x="191" y="1010"/>
+ <point x="191" y="539" type="curve" smooth="yes"/>
+ <point x="191" y="199"/>
+ <point x="401" y="-25"/>
+ <point x="693" y="-25" type="curve" smooth="yes"/>
+ <point x="1121" y="-25"/>
+ <point x="1519" y="337"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..b0d40c0
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1255"/>
+ <unicode hex="0050"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="970" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="519" y="518" type="line"/>
+ <point x="582" y="511"/>
+ <point x="661" y="508"/>
+ <point x="734" y="508" type="curve" smooth="yes"/>
+ <point x="1118" y="508"/>
+ <point x="1393" y="718"/>
+ <point x="1393" y="1076" type="curve" smooth="yes"/>
+ <point x="1393" y="1306"/>
+ <point x="1215" y="1455"/>
+ <point x="940" y="1455" type="curve" smooth="yes"/>
+ <point x="727" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="164" y="237"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="235"/>
+ <point x="497" y="431" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="752" y="1231"/>
+ <point x="781" y="1233"/>
+ <point x="849" y="1233" type="curve" smooth="yes"/>
+ <point x="1020" y="1233"/>
+ <point x="1103" y="1135"/>
+ <point x="1103" y="1020" type="curve" smooth="yes"/>
+ <point x="1103" y="827"/>
+ <point x="965" y="723"/>
+ <point x="758" y="723" type="curve" smooth="yes"/>
+ <point x="696" y="723"/>
+ <point x="614" y="726"/>
+ <point x="572" y="733" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..7013e5f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1488"/>
+ <unicode hex="0051"/>
+ <anchor x="619" y="-270" name="L"/>
+ <anchor x="1069" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1527" y="922" type="curve" smooth="yes"/>
+ <point x="1527" y="1259"/>
+ <point x="1324" y="1470"/>
+ <point x="1029" y="1470" type="curve" smooth="yes"/>
+ <point x="663" y="1470"/>
+ <point x="339" y="1229"/>
+ <point x="221" y="755" type="curve" smooth="yes"/>
+ <point x="201" y="673"/>
+ <point x="191" y="597"/>
+ <point x="191" y="526" type="curve" smooth="yes"/>
+ <point x="191" y="185"/>
+ <point x="410" y="-25"/>
+ <point x="696" y="-25" type="curve" smooth="yes"/>
+ <point x="743" y="-25"/>
+ <point x="787" y="-23"/>
+ <point x="838" y="-15" type="curve"/>
+ <point x="907" y="-15"/>
+ <point x="1162" y="-221"/>
+ <point x="1246" y="-221" type="curve" smooth="yes"/>
+ <point x="1310" y="-221"/>
+ <point x="1422" y="-74"/>
+ <point x="1468" y="-22" type="curve"/>
+ <point x="1331" y="-6"/>
+ <point x="1227" y="60"/>
+ <point x="1115" y="134" type="curve"/>
+ <point x="1312" y="242"/>
+ <point x="1527" y="566"/>
+ </contour>
+ <contour>
+ <point x="757" y="218" type="curve" smooth="yes"/>
+ <point x="563" y="218"/>
+ <point x="471" y="355"/>
+ <point x="471" y="558" type="curve" smooth="yes"/>
+ <point x="471" y="912"/>
+ <point x="677" y="1228"/>
+ <point x="969" y="1228" type="curve" smooth="yes"/>
+ <point x="1147" y="1228"/>
+ <point x="1246" y="1106"/>
+ <point x="1246" y="891" type="curve" smooth="yes"/>
+ <point x="1246" y="560"/>
+ <point x="1053" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..9133fd2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1360"/>
+ <unicode hex="0052"/>
+ <anchor x="630" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="982" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="534" y="579" type="line"/>
+ <point x="749" y="579" type="line" smooth="yes"/>
+ <point x="1071" y="579"/>
+ <point x="1378" y="761"/>
+ <point x="1378" y="1117" type="curve" smooth="yes"/>
+ <point x="1378" y="1332"/>
+ <point x="1199" y="1455"/>
+ <point x="932" y="1455" type="curve" smooth="yes"/>
+ <point x="698" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line"/>
+ <point x="164" y="236"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="236"/>
+ <point x="497" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="749" y="1231"/>
+ <point x="764" y="1233"/>
+ <point x="842" y="1233" type="curve" smooth="yes"/>
+ <point x="995" y="1233"/>
+ <point x="1089" y="1167"/>
+ <point x="1089" y="1060" type="curve" smooth="yes"/>
+ <point x="1089" y="899"/>
+ <point x="956" y="792"/>
+ <point x="782" y="792" type="curve" smooth="yes"/>
+ <point x="587" y="792" type="line"/>
+ </contour>
+ <contour>
+ <point x="652" y="629" type="line"/>
+ <point x="915" y="0" type="line"/>
+ <point x="1270" y="0" type="line"/>
+ <point x="1220" y="72"/>
+ <point x="962" y="623"/>
+ <point x="936" y="680" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..79fe933
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1223"/>
+ <unicode hex="0053"/>
+ <anchor x="556" y="0" name="H"/>
+ <anchor x="531" y="-100" name="L"/>
+ <anchor x="938" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1339" y="1361" type="line"/>
+ <point x="1232" y="1430"/>
+ <point x="1086" y="1470"/>
+ <point x="916" y="1470" type="curve" smooth="yes"/>
+ <point x="600" y="1470"/>
+ <point x="332" y="1333"/>
+ <point x="332" y="1053" type="curve" smooth="yes"/>
+ <point x="332" y="889"/>
+ <point x="413" y="800"/>
+ <point x="621" y="658" type="curve" smooth="yes"/>
+ <point x="829" y="516"/>
+ <point x="885" y="448"/>
+ <point x="885" y="374" type="curve" smooth="yes"/>
+ <point x="885" y="276"/>
+ <point x="772" y="218"/>
+ <point x="624" y="218" type="curve" smooth="yes"/>
+ <point x="463" y="218"/>
+ <point x="270" y="340"/>
+ <point x="184" y="461" type="curve"/>
+ <point x="67" y="189" type="line"/>
+ <point x="147" y="91"/>
+ <point x="394" y="-25"/>
+ <point x="573" y="-25" type="curve" smooth="yes"/>
+ <point x="923" y="-25"/>
+ <point x="1182" y="124"/>
+ <point x="1182" y="419" type="curve" smooth="yes"/>
+ <point x="1182" y="584"/>
+ <point x="1077" y="682"/>
+ <point x="881" y="831" type="curve" smooth="yes"/>
+ <point x="728" y="947"/>
+ <point x="628" y="1010"/>
+ <point x="628" y="1082" type="curve" smooth="yes"/>
+ <point x="628" y="1198"/>
+ <point x="790" y="1230"/>
+ <point x="877" y="1230" type="curve" smooth="yes"/>
+ <point x="1018" y="1230"/>
+ <point x="1119" y="1189"/>
+ <point x="1228" y="1099" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..b7aa4cd
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1255"/>
+ <unicode hex="0054"/>
+ <anchor x="572" y="0" name="H"/>
+ <anchor x="547" y="-100" name="L"/>
+ <anchor x="954" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="1445" type="line"/>
+ <point x="283" y="1198" type="line"/>
+ <point x="359" y="1215"/>
+ <point x="439" y="1218"/>
+ <point x="519" y="1218" type="curve" smooth="yes"/>
+ <point x="731" y="1218" type="line"/>
+ <point x="529" y="409" type="line" smooth="yes"/>
+ <point x="483" y="224"/>
+ <point x="443" y="75"/>
+ <point x="408" y="0" type="curve"/>
+ <point x="733" y="0" type="line"/>
+ <point x="734" y="75"/>
+ <point x="768" y="224"/>
+ <point x="814" y="409" type="curve" smooth="yes"/>
+ <point x="1016" y="1218" type="line"/>
+ <point x="1232" y="1218" type="line" smooth="yes"/>
+ <point x="1313" y="1218"/>
+ <point x="1390" y="1215"/>
+ <point x="1458" y="1198" type="curve"/>
+ <point x="1520" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..a01a283
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1470"/>
+ <unicode hex="0055"/>
+ <anchor x="672" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="890" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1315" y="1445" type="line"/>
+ <point x="1093" y="554" type="line" smooth="yes"/>
+ <point x="1040" y="341"/>
+ <point x="952" y="202"/>
+ <point x="735" y="202" type="curve" smooth="yes"/>
+ <point x="572" y="202"/>
+ <point x="515" y="305"/>
+ <point x="515" y="435" type="curve" smooth="yes"/>
+ <point x="515" y="482"/>
+ <point x="523" y="533"/>
+ <point x="535" y="583" type="curve" smooth="yes"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="249" y="570" type="line" smooth="yes"/>
+ <point x="235" y="512"/>
+ <point x="228" y="457"/>
+ <point x="228" y="404" type="curve" smooth="yes"/>
+ <point x="228" y="155"/>
+ <point x="385" y="-25"/>
+ <point x="698" y="-25" type="curve" smooth="yes"/>
+ <point x="1063" y="-25"/>
+ <point x="1275" y="148"/>
+ <point x="1356" y="470" type="curve" smooth="yes"/>
+ <point x="1493" y="1015" type="line" smooth="yes"/>
+ <point x="1544" y="1220"/>
+ <point x="1582" y="1366"/>
+ <point x="1615" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..07a71af
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1445"/>
+ <unicode hex="0056"/>
+ <anchor x="670" y="0" name="H"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="870" y="0" name="O"/>
+ <anchor x="1044" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1405" y="1445" type="line"/>
+ <point x="721" y="257" type="line"/>
+ <point x="620" y="1445" type="line"/>
+ <point x="325" y="1445" type="line"/>
+ <point x="339" y="1364"/>
+ <point x="354" y="1275"/>
+ <point x="375" y="1084" type="curve" smooth="yes"/>
+ <point x="495" y="0" type="line"/>
+ <point x="830" y="0" type="line"/>
+ <point x="1490" y="1084" type="line" smooth="yes"/>
+ <point x="1606" y="1276"/>
+ <point x="1664" y="1364"/>
+ <point x="1720" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..f0e3607
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2115"/>
+ <unicode hex="0057"/>
+ <anchor x="967" y="-100" name="L"/>
+ <anchor x="1374" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1430" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="2165" y="1084" type="line" smooth="yes"/>
+ <point x="2266" y="1277"/>
+ <point x="2318" y="1364"/>
+ <point x="2370" y="1445" type="curve"/>
+ <point x="2050" y="1445" type="line"/>
+ <point x="1432" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1220" y="1445" type="line"/>
+ <point x="1257" y="1292" type="line"/>
+ <point x="1280" y="0" type="line"/>
+ <point x="1450" y="0" type="line"/>
+ <point x="1492" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="540" y="0" type="line"/>
+ <point x="705" y="0" type="line"/>
+ <point x="1367" y="1292" type="line"/>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1210" y="1445" type="line"/>
+ <point x="542" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="630" y="1445" type="line"/>
+ <point x="330" y="1445" type="line"/>
+ <point x="341" y="1367"/>
+ <point x="349" y="1273"/>
+ <point x="355" y="1084" type="curve" smooth="yes"/>
+ <point x="390" y="0" type="line"/>
+ <point x="560" y="0" type="line"/>
+ <point x="602" y="129" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..633303c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1345"/>
+ <unicode hex="0058"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="930" y="0" type="line"/>
+ <point x="1240" y="0" type="line"/>
+ <point x="1199" y="81"/>
+ <point x="1172" y="125"/>
+ <point x="1096" y="333" type="curve" smooth="yes"/>
+ <point x="690" y="1445" type="line"/>
+ <point x="375" y="1445" type="line"/>
+ <point x="418" y="1362"/>
+ <point x="454" y="1304"/>
+ <point x="529" y="1099" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="768" y="938" type="line"/>
+ <point x="269" y="337" type="line" smooth="yes"/>
+ <point x="94" y="126"/>
+ <point x="44" y="85"/>
+ <point x="-40" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="790" y="603" type="line"/>
+ </contour>
+ <contour>
+ <point x="830" y="603" type="line"/>
+ <point x="1251" y="1099" type="line" smooth="yes"/>
+ <point x="1423" y="1302"/>
+ <point x="1492" y="1369"/>
+ <point x="1575" y="1445" type="curve"/>
+ <point x="1240" y="1445" type="line"/>
+ <point x="808" y="938" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..49af854
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1344"/>
+ <unicode hex="0059"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="325" y="1445" type="line"/>
+ <point x="400" y="1298"/>
+ <point x="438" y="1185"/>
+ <point x="482" y="1054" type="curve" smooth="yes"/>
+ <point x="653" y="554" type="line"/>
+ <point x="868" y="668" type="line"/>
+ <point x="637" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1282" y="1445" type="line"/>
+ <point x="668" y="668" type="line"/>
+ <point x="848" y="554" type="line"/>
+ <point x="1271" y="1054" type="line" smooth="yes"/>
+ <point x="1379" y="1183"/>
+ <point x="1459" y="1278"/>
+ <point x="1619" y="1445" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="0" type="line"/>
+ <point x="774" y="79"/>
+ <point x="813" y="236"/>
+ <point x="862" y="431" type="curve" smooth="yes"/>
+ <point x="926" y="688" type="line"/>
+ <point x="641" y="688" type="line"/>
+ <point x="577" y="431" type="line" smooth="yes"/>
+ <point x="528" y="236"/>
+ <point x="488" y="79"/>
+ <point x="455" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..0208140
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1185"/>
+ <unicode hex="0061"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="825" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1054" y="44"/>
+ <point x="1051" y="87"/>
+ <point x="1051" y="133" type="curve" smooth="yes"/>
+ <point x="1051" y="204"/>
+ <point x="1059" y="280"/>
+ <point x="1081" y="366" type="curve"/>
+ <point x="1128" y="557"/>
+ <point x="1156" y="665"/>
+ <point x="1170" y="722" type="curve"/>
+ <point x="1174" y="738"/>
+ <point x="1176" y="754"/>
+ <point x="1176" y="770" type="curve" smooth="yes"/>
+ <point x="1176" y="909"/>
+ <point x="1026" y="1030"/>
+ <point x="791" y="1030" type="curve" smooth="yes"/>
+ <point x="632" y="1030"/>
+ <point x="514" y="994"/>
+ <point x="389" y="940" type="curve"/>
+ <point x="363" y="859"/>
+ <point x="327" y="728"/>
+ <point x="315" y="684" type="curve"/>
+ <point x="452" y="765"/>
+ <point x="565" y="808"/>
+ <point x="673" y="808" type="curve" smooth="yes"/>
+ <point x="809" y="808"/>
+ <point x="885" y="760"/>
+ <point x="885" y="709" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="700"/>
+ <point x="883" y="696" type="curve" smooth="yes"/>
+ <point x="872" y="653" type="line"/>
+ <point x="831" y="652"/>
+ <point x="669" y="643"/>
+ <point x="598" y="636" type="curve" smooth="yes"/>
+ <point x="367" y="614"/>
+ <point x="109" y="474"/>
+ <point x="109" y="236" type="curve" smooth="yes"/>
+ <point x="109" y="97"/>
+ <point x="215" y="-25"/>
+ <point x="388" y="-25" type="curve" smooth="yes"/>
+ <point x="505" y="-25"/>
+ <point x="633" y="23"/>
+ <point x="773" y="134" type="curve"/>
+ <point x="773" y="78"/>
+ <point x="784" y="28"/>
+ <point x="790" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="797" y="351" type="line"/>
+ <point x="669" y="223"/>
+ <point x="590" y="203"/>
+ <point x="508" y="203" type="curve" smooth="yes"/>
+ <point x="438" y="203"/>
+ <point x="398" y="246"/>
+ <point x="398" y="299" type="curve" smooth="yes"/>
+ <point x="398" y="308"/>
+ <point x="399" y="317"/>
+ <point x="401" y="326" type="curve" smooth="yes"/>
+ <point x="417" y="391"/>
+ <point x="471" y="438"/>
+ <point x="612" y="452" type="curve" smooth="yes"/>
+ <point x="665" y="458"/>
+ <point x="786" y="469"/>
+ <point x="827" y="470" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..a91e18b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E1"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="899" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..c17afb1
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E2"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="916" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1155"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..af45db4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E4"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="947" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..2374c69
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E0"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="999" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..f8a7dcc
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E5"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="961" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..4a46027
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E3"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="860" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1215"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..92bd16b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1229"/>
+ <unicode hex="0062"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1405" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="482" y="432" type="line"/>
+ <point x="576" y="610"/>
+ <point x="726" y="787"/>
+ <point x="829" y="787" type="curve" smooth="yes"/>
+ <point x="911" y="787"/>
+ <point x="946" y="705"/>
+ <point x="946" y="590" type="curve" smooth="yes"/>
+ <point x="946" y="465"/>
+ <point x="897" y="350"/>
+ <point x="823" y="275" type="curve" smooth="yes"/>
+ <point x="769" y="221"/>
+ <point x="703" y="188"/>
+ <point x="631" y="188" type="curve" smooth="yes"/>
+ <point x="564" y="188"/>
+ <point x="502" y="202"/>
+ <point x="434" y="238" type="curve"/>
+ </contour>
+ <contour>
+ <point x="445" y="1585" type="line"/>
+ <point x="445" y="1439"/>
+ <point x="404" y="1242"/>
+ <point x="367" y="1095" type="curve" smooth="yes"/>
+ <point x="110" y="64" type="line"/>
+ <point x="252" y="16"/>
+ <point x="400" y="-25"/>
+ <point x="593" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="845" y="19"/>
+ <point x="942" y="91" type="curve" smooth="yes"/>
+ <point x="1122" y="224"/>
+ <point x="1229" y="453"/>
+ <point x="1229" y="672" type="curve" smooth="yes"/>
+ <point x="1229" y="906"/>
+ <point x="1138" y="1030"/>
+ <point x="985" y="1030" type="curve" smooth="yes"/>
+ <point x="822" y="1030"/>
+ <point x="684" y="906"/>
+ <point x="562" y="756" type="curve"/>
+ <point x="646" y="1095" type="line" smooth="yes"/>
+ <point x="686" y="1255"/>
+ <point x="725" y="1474"/>
+ <point x="725" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..62c096c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1019"/>
+ <unicode hex="0063"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="490" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="790" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1099" y="959" type="line"/>
+ <point x="1035" y="997"/>
+ <point x="928" y="1030"/>
+ <point x="796" y="1030" type="curve" smooth="yes"/>
+ <point x="446" y="1030"/>
+ <point x="150" y="774"/>
+ <point x="150" y="386" type="curve" smooth="yes"/>
+ <point x="150" y="137"/>
+ <point x="341" y="-25"/>
+ <point x="569" y="-25" type="curve" smooth="yes"/>
+ <point x="718" y="-25"/>
+ <point x="835" y="11"/>
+ <point x="927" y="69" type="curve"/>
+ <point x="937" y="311" type="line"/>
+ <point x="840" y="238"/>
+ <point x="755" y="203"/>
+ <point x="625" y="203" type="curve" smooth="yes"/>
+ <point x="494" y="203"/>
+ <point x="417" y="302"/>
+ <point x="417" y="416" type="curve" smooth="yes"/>
+ <point x="417" y="661"/>
+ <point x="588" y="802"/>
+ <point x="754" y="802" type="curve" smooth="yes"/>
+ <point x="857" y="802"/>
+ <point x="918" y="781"/>
+ <point x="993" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fa38d37
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="535" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1475" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="913" y="558" type="line"/>
+ <point x="861" y="438"/>
+ <point x="666" y="200"/>
+ <point x="560" y="200" type="curve" smooth="yes"/>
+ <point x="470" y="200"/>
+ <point x="427" y="263"/>
+ <point x="427" y="367" type="curve" smooth="yes"/>
+ <point x="427" y="480"/>
+ <point x="469" y="626"/>
+ <point x="554" y="714" type="curve" smooth="yes"/>
+ <point x="599" y="761"/>
+ <point x="657" y="792"/>
+ <point x="727" y="792" type="curve" smooth="yes"/>
+ <point x="820" y="792"/>
+ <point x="876" y="775"/>
+ <point x="957" y="731" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1144" y="1585" type="line"/>
+ <point x="1144" y="1471"/>
+ <point x="1116" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1020" y="935" type="line"/>
+ <point x="949" y="989"/>
+ <point x="845" y="1030"/>
+ <point x="756" y="1030" type="curve" smooth="yes"/>
+ <point x="630" y="1030"/>
+ <point x="518" y="987"/>
+ <point x="426" y="917" type="curve" smooth="yes"/>
+ <point x="250" y="784"/>
+ <point x="145" y="553"/>
+ <point x="145" y="341" type="curve" smooth="yes"/>
+ <point x="145" y="130"/>
+ <point x="258" y="-25"/>
+ <point x="448" y="-25" type="curve" smooth="yes"/>
+ <point x="597" y="-25"/>
+ <point x="785" y="145"/>
+ <point x="867" y="267" type="curve"/>
+ <point x="855" y="181"/>
+ <point x="855" y="72"/>
+ <point x="855" y="0" type="curve"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1126" y="23"/>
+ <point x="1125" y="63"/>
+ <point x="1125" y="100" type="curve" smooth="yes"/>
+ <point x="1125" y="200"/>
+ <point x="1142" y="340"/>
+ <point x="1185" y="520" type="curve" smooth="yes"/>
+ <point x="1345" y="1190" type="line" smooth="yes"/>
+ <point x="1387" y="1366"/>
+ <point x="1415" y="1490"/>
+ <point x="1415" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..49f5856
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1087"/>
+ <unicode hex="0065"/>
+ <anchor x="509" y="0" name="H"/>
+ <anchor x="555" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="752" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1013" y="303" type="line"/>
+ <point x="871" y="230"/>
+ <point x="739" y="198"/>
+ <point x="608" y="198" type="curve" smooth="yes"/>
+ <point x="459" y="198"/>
+ <point x="401" y="297"/>
+ <point x="401" y="428" type="curve" smooth="yes"/>
+ <point x="401" y="683"/>
+ <point x="552" y="822"/>
+ <point x="713" y="822" type="curve" smooth="yes"/>
+ <point x="811" y="822"/>
+ <point x="869" y="782"/>
+ <point x="869" y="720" type="curve" smooth="yes"/>
+ <point x="869" y="635"/>
+ <point x="777" y="580"/>
+ <point x="533" y="580" type="curve" smooth="yes"/>
+ <point x="461" y="580"/>
+ <point x="385" y="589"/>
+ <point x="283" y="610" type="curve"/>
+ <point x="283" y="437" type="line"/>
+ <point x="353" y="422"/>
+ <point x="487" y="413"/>
+ <point x="569" y="413" type="curve" smooth="yes"/>
+ <point x="935" y="413"/>
+ <point x="1125" y="583"/>
+ <point x="1125" y="774" type="curve" smooth="yes"/>
+ <point x="1125" y="922"/>
+ <point x="993" y="1030"/>
+ <point x="769" y="1030" type="curve" smooth="yes"/>
+ <point x="435" y="1030"/>
+ <point x="148" y="775"/>
+ <point x="148" y="388" type="curve" smooth="yes"/>
+ <point x="148" y="135"/>
+ <point x="332" y="-25"/>
+ <point x="556" y="-25" type="curve" smooth="yes"/>
+ <point x="712" y="-25"/>
+ <point x="835" y="2"/>
+ <point x="997" y="74" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..fd86bf3
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="859"/>
+ <unicode hex="0066"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="948" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="797" type="line"/>
+ <point x="915" y="797" type="line"/>
+ <point x="965" y="995" type="line"/>
+ <point x="230" y="995" type="line"/>
+ </contour>
+ <contour>
+ <point x="1189" y="1534" type="line"/>
+ <point x="1139" y="1572"/>
+ <point x="1040" y="1604"/>
+ <point x="966" y="1604" type="curve" smooth="yes"/>
+ <point x="719" y="1604"/>
+ <point x="535" y="1455"/>
+ <point x="460" y="1158" type="curve" smooth="yes"/>
+ <point x="416" y="983"/>
+ <point x="253" y="334"/>
+ <point x="232" y="0" type="curve"/>
+ <point x="542" y="0" type="line"/>
+ <point x="536" y="28"/>
+ <point x="533" y="66"/>
+ <point x="533" y="110" type="curve" smooth="yes"/>
+ <point x="533" y="213"/>
+ <point x="550" y="356"/>
+ <point x="581" y="489" type="curve" smooth="yes"/>
+ <point x="649" y="784"/>
+ <point x="682" y="926"/>
+ <point x="735" y="1147" type="curve" smooth="yes"/>
+ <point x="774" y="1309"/>
+ <point x="836" y="1373"/>
+ <point x="932" y="1373" type="curve" smooth="yes"/>
+ <point x="981" y="1373"/>
+ <point x="1043" y="1348"/>
+ <point x="1076" y="1309" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..c651c04
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1120"/>
+ <unicode hex="0067"/>
+ <anchor x="420" y="-465" name="H"/>
+ <anchor x="403" y="-535" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="782" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1027" y="-117" type="curve" smooth="yes"/>
+ <point x="1027" y="8"/>
+ <point x="938" y="114"/>
+ <point x="702" y="163" type="curve" smooth="yes"/>
+ <point x="473" y="210"/>
+ <point x="402" y="217"/>
+ <point x="402" y="249" type="curve" smooth="yes"/>
+ <point x="402" y="279"/>
+ <point x="493" y="321"/>
+ <point x="584" y="346" type="curve"/>
+ <point x="359" y="391" type="line"/>
+ <point x="263" y="354"/>
+ <point x="161" y="283"/>
+ <point x="161" y="188" type="curve" smooth="yes"/>
+ <point x="161" y="101"/>
+ <point x="230" y="4"/>
+ <point x="451" y="-23" type="curve" smooth="yes"/>
+ <point x="669" y="-50"/>
+ <point x="740" y="-97"/>
+ <point x="740" y="-157" type="curve" smooth="yes"/>
+ <point x="740" y="-245"/>
+ <point x="591" y="-299"/>
+ <point x="457" y="-299" type="curve" smooth="yes"/>
+ <point x="286" y="-299"/>
+ <point x="197" y="-233"/>
+ <point x="197" y="-180" type="curve" smooth="yes"/>
+ <point x="197" y="-74"/>
+ <point x="405" y="-4"/>
+ <point x="476" y="20" type="curve"/>
+ <point x="476" y="49"/>
+ <point x="250" y="74"/>
+ <point x="250" y="74" type="curve"/>
+ <point x="103" y="20"/>
+ <point x="-91" y="-65"/>
+ <point x="-91" y="-233" type="curve" smooth="yes"/>
+ <point x="-91" y="-409"/>
+ <point x="166" y="-500"/>
+ <point x="392" y="-500" type="curve" smooth="yes"/>
+ <point x="690" y="-500"/>
+ <point x="1027" y="-380"/>
+ </contour>
+ <contour>
+ <point x="1268" y="1030" type="line"/>
+ <point x="1168" y="1023"/>
+ <point x="1027" y="987"/>
+ <point x="924" y="931" type="curve"/>
+ <point x="946" y="762" type="line"/>
+ <point x="1048" y="800"/>
+ <point x="1132" y="815"/>
+ <point x="1205" y="817" type="curve"/>
+ </contour>
+ <contour>
+ <point x="198" y="627" type="curve" smooth="yes"/>
+ <point x="198" y="450"/>
+ <point x="353" y="302"/>
+ <point x="572" y="302" type="curve" smooth="yes"/>
+ <point x="824" y="302"/>
+ <point x="1087" y="444"/>
+ <point x="1087" y="702" type="curve" smooth="yes"/>
+ <point x="1087" y="874"/>
+ <point x="955" y="1030"/>
+ <point x="703" y="1030" type="curve" smooth="yes"/>
+ <point x="454" y="1030"/>
+ <point x="198" y="881"/>
+ </contour>
+ <contour>
+ <point x="663" y="829" type="curve" smooth="yes"/>
+ <point x="761" y="829"/>
+ <point x="842" y="762"/>
+ <point x="842" y="675" type="curve" smooth="yes"/>
+ <point x="842" y="559"/>
+ <point x="733" y="496"/>
+ <point x="620" y="496" type="curve" smooth="yes"/>
+ <point x="524" y="496"/>
+ <point x="450" y="569"/>
+ <point x="450" y="653" type="curve" smooth="yes"/>
+ <point x="450" y="769"/>
+ <point x="560" y="829"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..7160c61
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1273"/>
+ <unicode hex="0068"/>
+ <anchor x="220" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="968" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1140" y="0" type="line"/>
+ <point x="1135" y="29"/>
+ <point x="1129" y="60"/>
+ <point x="1129" y="90" type="curve" smooth="yes"/>
+ <point x="1129" y="135"/>
+ <point x="1134" y="170"/>
+ <point x="1141" y="215" type="curve" smooth="yes"/>
+ <point x="1171" y="400"/>
+ <point x="1253" y="590"/>
+ <point x="1253" y="725" type="curve" smooth="yes"/>
+ <point x="1253" y="900"/>
+ <point x="1183" y="1030"/>
+ <point x="990" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="694" y="902"/>
+ <point x="566" y="740" type="curve"/>
+ <point x="656" y="1095" type="line" smooth="yes"/>
+ <point x="696" y="1255"/>
+ <point x="735" y="1474"/>
+ <point x="735" y="1585" type="curve"/>
+ <point x="455" y="1585" type="line"/>
+ <point x="455" y="1439"/>
+ <point x="413" y="1242"/>
+ <point x="377" y="1095" type="curve" smooth="yes"/>
+ <point x="105" y="0" type="line"/>
+ <point x="385" y="0" type="line"/>
+ <point x="485" y="400" type="line"/>
+ <point x="580" y="596"/>
+ <point x="745" y="787"/>
+ <point x="850" y="787" type="curve" smooth="yes"/>
+ <point x="937" y="787"/>
+ <point x="953" y="722"/>
+ <point x="953" y="625" type="curve" smooth="yes"/>
+ <point x="953" y="529"/>
+ <point x="889" y="374"/>
+ <point x="863" y="213" type="curve" smooth="yes"/>
+ <point x="857" y="174"/>
+ <point x="853" y="134"/>
+ <point x="853" y="95" type="curve" smooth="yes"/>
+ <point x="853" y="63"/>
+ <point x="854" y="31"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..c19769e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="625"/>
+ <unicode hex="0069"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="520" y="0" name="O"/>
+ <anchor x="830" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1010" type="line"/>
+ <point x="341" y="877"/>
+ <point x="290" y="698"/>
+ <point x="252" y="547" type="curve" smooth="yes"/>
+ <point x="213" y="390" type="line" smooth="yes"/>
+ <point x="193" y="309"/>
+ <point x="170" y="191"/>
+ <point x="170" y="88" type="curve" smooth="yes"/>
+ <point x="170" y="57"/>
+ <point x="172" y="27"/>
+ <point x="177" y="0" type="curve"/>
+ <point x="472" y="0" type="line"/>
+ <point x="463" y="39"/>
+ <point x="459" y="82"/>
+ <point x="459" y="126" type="curve" smooth="yes"/>
+ <point x="459" y="217"/>
+ <point x="475" y="310"/>
+ <point x="486" y="358" type="curve" smooth="yes"/>
+ <point x="531" y="546" type="line" smooth="yes"/>
+ <point x="572" y="719"/>
+ <point x="621" y="875"/>
+ <point x="625" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="404" y="1341" type="curve" smooth="yes"/>
+ <point x="404" y="1259"/>
+ <point x="462" y="1197"/>
+ <point x="548" y="1197" type="curve" smooth="yes"/>
+ <point x="668" y="1197"/>
+ <point x="759" y="1292"/>
+ <point x="759" y="1403" type="curve" smooth="yes"/>
+ <point x="759" y="1483"/>
+ <point x="701" y="1544"/>
+ <point x="614" y="1544" type="curve" smooth="yes"/>
+ <point x="496" y="1544"/>
+ <point x="404" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..a454f7a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="695"/>
+ <unicode hex="006A"/>
+ <anchor x="-45" y="-500" name="L"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1010" type="line"/>
+ <point x="361" y="866"/>
+ <point x="284" y="395"/>
+ <point x="205" y="87" type="curve" smooth="yes"/>
+ <point x="148" y="-136"/>
+ <point x="54" y="-221"/>
+ <point x="-56" y="-221" type="curve" smooth="yes"/>
+ <point x="-137" y="-221"/>
+ <point x="-217" y="-187"/>
+ <point x="-252" y="-150" type="curve"/>
+ <point x="-355" y="-385" type="line"/>
+ <point x="-321" y="-417"/>
+ <point x="-172" y="-465"/>
+ <point x="-79" y="-465" type="curve" smooth="yes"/>
+ <point x="170" y="-465"/>
+ <point x="388" y="-295"/>
+ <point x="481" y="75" type="curve" smooth="yes"/>
+ <point x="501" y="157"/>
+ <point x="646" y="882"/>
+ <point x="646" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="395" y="1341" type="curve" smooth="yes"/>
+ <point x="395" y="1259"/>
+ <point x="453" y="1197"/>
+ <point x="539" y="1197" type="curve" smooth="yes"/>
+ <point x="659" y="1197"/>
+ <point x="750" y="1292"/>
+ <point x="750" y="1403" type="curve" smooth="yes"/>
+ <point x="750" y="1483"/>
+ <point x="692" y="1544"/>
+ <point x="605" y="1544" type="curve" smooth="yes"/>
+ <point x="487" y="1544"/>
+ <point x="395" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..ed9d720
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1209"/>
+ <unicode hex="006B"/>
+ <anchor x="880" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="943" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="964" y="1010" type="line"/>
+ <point x="920" y="864"/>
+ <point x="682" y="702"/>
+ <point x="483" y="576" type="curve"/>
+ <point x="676" y="518" type="line"/>
+ <point x="915" y="662"/>
+ <point x="1289" y="867"/>
+ <point x="1289" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1168" y="0" type="line"/>
+ <point x="992" y="302"/>
+ <point x="856" y="620"/>
+ <point x="633" y="620" type="curve"/>
+ <point x="442" y="529" type="line"/>
+ <point x="606" y="529"/>
+ <point x="722" y="252"/>
+ <point x="831" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="394" y="0" type="line"/>
+ <point x="669" y="1105" type="line" smooth="yes"/>
+ <point x="713" y="1280"/>
+ <point x="744" y="1497"/>
+ <point x="744" y="1585" type="curve"/>
+ <point x="462" y="1585" type="line"/>
+ <point x="462" y="1471"/>
+ <point x="431" y="1274"/>
+ <point x="393" y="1122" type="curve" smooth="yes"/>
+ <point x="345" y="928"/>
+ <point x="115" y="0"/>
+ <point x="115" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..3ecb48c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="641"/>
+ <unicode hex="006C"/>
+ <anchor x="275" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="850" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="461" y="1585" type="line"/>
+ <point x="461" y="1439"/>
+ <point x="420" y="1242"/>
+ <point x="383" y="1095" type="curve" smooth="yes"/>
+ <point x="232" y="488" type="line" smooth="yes"/>
+ <point x="208" y="394"/>
+ <point x="175" y="269"/>
+ <point x="175" y="116" type="curve" smooth="yes"/>
+ <point x="175" y="89"/>
+ <point x="178" y="30"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="470" y="0" type="line"/>
+ <point x="464" y="39"/>
+ <point x="461" y="80"/>
+ <point x="461" y="121" type="curve" smooth="yes"/>
+ <point x="461" y="277"/>
+ <point x="498" y="434"/>
+ <point x="518" y="515" type="curve" smooth="yes"/>
+ <point x="662" y="1095" type="line" smooth="yes"/>
+ <point x="702" y="1255"/>
+ <point x="741" y="1474"/>
+ <point x="741" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..6f5967a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1770"/>
+ <unicode hex="006D"/>
+ <anchor x="830" y="0" name="H"/>
+ <anchor x="805" y="-100" name="L"/>
+ <anchor x="1105" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1609" y="0" type="line"/>
+ <point x="1604" y="29"/>
+ <point x="1602" y="60"/>
+ <point x="1602" y="90" type="curve" smooth="yes"/>
+ <point x="1602" y="136"/>
+ <point x="1606" y="181"/>
+ <point x="1613" y="228" type="curve" smooth="yes"/>
+ <point x="1628" y="333"/>
+ <point x="1747" y="670"/>
+ <point x="1747" y="822" type="curve" smooth="yes"/>
+ <point x="1747" y="958"/>
+ <point x="1681" y="1030"/>
+ <point x="1547" y="1030" type="curve" smooth="yes"/>
+ <point x="1391" y="1030"/>
+ <point x="1227" y="876"/>
+ <point x="1120" y="705" type="curve"/>
+ <point x="1125" y="738"/>
+ <point x="1127" y="769"/>
+ <point x="1127" y="798" type="curve" smooth="yes"/>
+ <point x="1127" y="944"/>
+ <point x="1067" y="1030"/>
+ <point x="941" y="1030" type="curve" smooth="yes"/>
+ <point x="815" y="1030"/>
+ <point x="664" y="911"/>
+ <point x="537" y="715" type="curve"/>
+ <point x="553" y="840"/>
+ <point x="556" y="911"/>
+ <point x="556" y="955" type="curve" smooth="yes"/>
+ <point x="556" y="981"/>
+ <point x="554" y="998"/>
+ <point x="551" y="1010" type="curve"/>
+ <point x="291" y="1010" type="line"/>
+ <point x="293" y="999"/>
+ <point x="294" y="975"/>
+ <point x="294" y="942" type="curve" smooth="yes"/>
+ <point x="294" y="855"/>
+ <point x="286" y="710"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="390" y="0" type="line"/>
+ <point x="479" y="370" type="line"/>
+ <point x="541" y="552"/>
+ <point x="711" y="787"/>
+ <point x="791" y="787" type="curve" smooth="yes"/>
+ <point x="843" y="787"/>
+ <point x="857" y="741"/>
+ <point x="857" y="688" type="curve" smooth="yes"/>
+ <point x="857" y="625"/>
+ <point x="832" y="535"/>
+ <point x="819" y="483" type="curve" smooth="yes"/>
+ <point x="695" y="0" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1067" y="370" type="line"/>
+ <point x="1139" y="556"/>
+ <point x="1300" y="787"/>
+ <point x="1381" y="787" type="curve" smooth="yes"/>
+ <point x="1434" y="787"/>
+ <point x="1450" y="762"/>
+ <point x="1450" y="706" type="curve" smooth="yes"/>
+ <point x="1450" y="592"/>
+ <point x="1350" y="331"/>
+ <point x="1330" y="205" type="curve" smooth="yes"/>
+ <point x="1324" y="168"/>
+ <point x="1321" y="132"/>
+ <point x="1321" y="95" type="curve" smooth="yes"/>
+ <point x="1321" y="63"/>
+ <point x="1323" y="31"/>
+ <point x="1329" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..009224e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1281"/>
+ <unicode hex="006E"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="835" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="0" type="line"/>
+ <point x="1140" y="29"/>
+ <point x="1138" y="60"/>
+ <point x="1138" y="90" type="curve" smooth="yes"/>
+ <point x="1138" y="136"/>
+ <point x="1141" y="182"/>
+ <point x="1149" y="228" type="curve" smooth="yes"/>
+ <point x="1173" y="366"/>
+ <point x="1258" y="591"/>
+ <point x="1258" y="725" type="curve" smooth="yes"/>
+ <point x="1258" y="890"/>
+ <point x="1188" y="1030"/>
+ <point x="995" y="1030" type="curve" smooth="yes"/>
+ <point x="844" y="1030"/>
+ <point x="685" y="903"/>
+ <point x="546" y="715" type="curve"/>
+ <point x="555" y="771"/>
+ <point x="569" y="875"/>
+ <point x="569" y="933" type="curve" smooth="yes"/>
+ <point x="569" y="962"/>
+ <point x="568" y="988"/>
+ <point x="565" y="1010" type="curve"/>
+ <point x="290" y="1010" type="line"/>
+ <point x="290" y="962" type="line" smooth="yes"/>
+ <point x="290" y="859"/>
+ <point x="280" y="685"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="388" y="0" type="line"/>
+ <point x="490" y="405" type="line"/>
+ <point x="569" y="569"/>
+ <point x="740" y="787"/>
+ <point x="835" y="787" type="curve" smooth="yes"/>
+ <point x="922" y="787"/>
+ <point x="958" y="732"/>
+ <point x="958" y="625" type="curve" smooth="yes"/>
+ <point x="958" y="527"/>
+ <point x="891" y="369"/>
+ <point x="866" y="205" type="curve" smooth="yes"/>
+ <point x="860" y="168"/>
+ <point x="857" y="132"/>
+ <point x="857" y="95" type="curve" smooth="yes"/>
+ <point x="857" y="63"/>
+ <point x="859" y="31"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..d21fb58
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1139"/>
+ <unicode hex="006F"/>
+ <anchor x="518" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="730" y="0" name="O"/>
+ <anchor x="1350" y="1000" name="R"/>
+ <anchor x="795" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="370" type="curve" smooth="yes"/>
+ <point x="140" y="128"/>
+ <point x="289" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="906" y="-25"/>
+ <point x="1144" y="295"/>
+ <point x="1144" y="641" type="curve" smooth="yes"/>
+ <point x="1144" y="880"/>
+ <point x="1003" y="1030"/>
+ <point x="773" y="1030" type="curve" smooth="yes"/>
+ <point x="390" y="1030"/>
+ <point x="140" y="718"/>
+ </contour>
+ <contour>
+ <point x="718" y="807" type="curve" smooth="yes"/>
+ <point x="826" y="807"/>
+ <point x="879" y="737"/>
+ <point x="879" y="612" type="curve" smooth="yes"/>
+ <point x="879" y="413"/>
+ <point x="764" y="198"/>
+ <point x="566" y="198" type="curve" smooth="yes"/>
+ <point x="464" y="198"/>
+ <point x="404" y="264"/>
+ <point x="404" y="385" type="curve" smooth="yes"/>
+ <point x="404" y="570"/>
+ <point x="512" y="807"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..55c6e8b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1272"/>
+ <unicode hex="0070"/>
+ <anchor x="121" y="-435" name="H"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1425" y="1000" name="R"/>
+ <anchor x="855" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="523" y="500" type="line"/>
+ <point x="605" y="650"/>
+ <point x="765" y="794"/>
+ <point x="854" y="794" type="curve" smooth="yes"/>
+ <point x="932" y="794"/>
+ <point x="975" y="719"/>
+ <point x="975" y="609" type="curve" smooth="yes"/>
+ <point x="975" y="478"/>
+ <point x="924" y="334"/>
+ <point x="823" y="258" type="curve" smooth="yes"/>
+ <point x="778" y="224"/>
+ <point x="723" y="204"/>
+ <point x="658" y="204" type="curve" smooth="yes"/>
+ <point x="589" y="204"/>
+ <point x="517" y="243"/>
+ <point x="473" y="297" type="curve"/>
+ </contour>
+ <contour>
+ <point x="300" y="1010" type="line"/>
+ <point x="300" y="962" type="line" smooth="yes"/>
+ <point x="300" y="859"/>
+ <point x="290" y="685"/>
+ <point x="271" y="609" type="curve" smooth="yes"/>
+ <point x="75" y="-180" type="line" smooth="yes"/>
+ <point x="49" y="-286"/>
+ <point x="25" y="-403"/>
+ <point x="25" y="-485" type="curve"/>
+ <point x="314" y="-485" type="line"/>
+ <point x="314" y="-393"/>
+ <point x="328" y="-287"/>
+ <point x="362" y="-149" type="curve" smooth="yes"/>
+ <point x="415" y="64" type="line"/>
+ <point x="495" y="10"/>
+ <point x="562" y="-25"/>
+ <point x="667" y="-25" type="curve" smooth="yes"/>
+ <point x="750" y="-25"/>
+ <point x="833" y="-2"/>
+ <point x="909" y="40" type="curve" smooth="yes"/>
+ <point x="1112" y="152"/>
+ <point x="1267" y="398"/>
+ <point x="1267" y="685" type="curve" smooth="yes"/>
+ <point x="1267" y="884"/>
+ <point x="1176" y="1030"/>
+ <point x="1004" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="677" y="901"/>
+ <point x="565" y="752" type="curve"/>
+ <point x="574" y="808"/>
+ <point x="579" y="875"/>
+ <point x="579" y="933" type="curve" smooth="yes"/>
+ <point x="579" y="962"/>
+ <point x="578" y="988"/>
+ <point x="575" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..d3068d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1206"/>
+ <unicode hex="0071"/>
+ <anchor x="415" y="-500" name="L"/>
+ <anchor x="1400" y="1000" name="R"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="889" y="583" type="line"/>
+ <point x="832" y="467"/>
+ <point x="615" y="211"/>
+ <point x="520" y="211" type="curve" smooth="yes"/>
+ <point x="457" y="211"/>
+ <point x="429" y="263"/>
+ <point x="429" y="362" type="curve" smooth="yes"/>
+ <point x="429" y="484"/>
+ <point x="469" y="616"/>
+ <point x="551" y="702" type="curve" smooth="yes"/>
+ <point x="605" y="758"/>
+ <point x="676" y="794"/>
+ <point x="765" y="794" type="curve" smooth="yes"/>
+ <point x="806" y="794"/>
+ <point x="897" y="781"/>
+ <point x="933" y="762" type="curve"/>
+ </contour>
+ <contour>
+ <point x="936" y="-485" type="line"/>
+ <point x="936" y="-396"/>
+ <point x="951" y="-299"/>
+ <point x="978" y="-190" type="curve" smooth="yes"/>
+ <point x="1261" y="955" type="line"/>
+ <point x="1134" y="991"/>
+ <point x="972" y="1030"/>
+ <point x="819" y="1030" type="curve" smooth="yes"/>
+ <point x="678" y="1030"/>
+ <point x="516" y="969"/>
+ <point x="403" y="874" type="curve" smooth="yes"/>
+ <point x="244" y="739"/>
+ <point x="145" y="535"/>
+ <point x="145" y="331" type="curve" smooth="yes"/>
+ <point x="145" y="105"/>
+ <point x="275" y="-25"/>
+ <point x="391" y="-25" type="curve" smooth="yes"/>
+ <point x="529" y="-25"/>
+ <point x="729" y="134"/>
+ <point x="838" y="300" type="curve"/>
+ <point x="706" y="-185" type="line" smooth="yes"/>
+ <point x="675" y="-299"/>
+ <point x="661" y="-419"/>
+ <point x="661" y="-485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..48a3cc8
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="1021"/>
+ <unicode hex="0072"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="765" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="0" type="line"/>
+ <point x="494" y="420" type="line"/>
+ <point x="555" y="557"/>
+ <point x="727" y="773"/>
+ <point x="810" y="773" type="curve" smooth="yes"/>
+ <point x="864" y="773"/>
+ <point x="887" y="737"/>
+ <point x="887" y="678" type="curve" smooth="yes"/>
+ <point x="887" y="662"/>
+ <point x="885" y="644"/>
+ <point x="882" y="624" type="curve"/>
+ <point x="1114" y="658" type="line"/>
+ <point x="1123" y="706"/>
+ <point x="1136" y="752"/>
+ <point x="1136" y="794" type="curve" smooth="yes"/>
+ <point x="1136" y="931"/>
+ <point x="1084" y="1030"/>
+ <point x="963" y="1030" type="curve" smooth="yes"/>
+ <point x="828" y="1030"/>
+ <point x="670" y="883"/>
+ <point x="544" y="716" type="curve"/>
+ <point x="555" y="787"/>
+ <point x="570" y="960"/>
+ <point x="570" y="1010" type="curve"/>
+ <point x="295" y="1010" type="line"/>
+ <point x="295" y="962" type="line" smooth="yes"/>
+ <point x="295" y="894"/>
+ <point x="281" y="689"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..568c40a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1015"/>
+ <unicode hex="0073"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="745" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1058" y="952" type="line"/>
+ <point x="990" y="990"/>
+ <point x="854" y="1030"/>
+ <point x="691" y="1030" type="curve" smooth="yes"/>
+ <point x="457" y="1030"/>
+ <point x="217" y="936"/>
+ <point x="217" y="722" type="curve" smooth="yes"/>
+ <point x="217" y="593"/>
+ <point x="306" y="517"/>
+ <point x="501" y="430" type="curve" smooth="yes"/>
+ <point x="648" y="364"/>
+ <point x="710" y="345"/>
+ <point x="710" y="288" type="curve" smooth="yes"/>
+ <point x="710" y="224"/>
+ <point x="649" y="197"/>
+ <point x="549" y="197" type="curve" smooth="yes"/>
+ <point x="392" y="197"/>
+ <point x="276" y="280"/>
+ <point x="197" y="371" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="143" y="68"/>
+ <point x="319" y="-25"/>
+ <point x="498" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="979" y="104"/>
+ <point x="979" y="315" type="curve" smooth="yes"/>
+ <point x="979" y="440"/>
+ <point x="884" y="513"/>
+ <point x="695" y="600" type="curve" smooth="yes"/>
+ <point x="581" y="652"/>
+ <point x="477" y="688"/>
+ <point x="477" y="743" type="curve" smooth="yes"/>
+ <point x="477" y="785"/>
+ <point x="548" y="808"/>
+ <point x="646" y="808" type="curve" smooth="yes"/>
+ <point x="785" y="808"/>
+ <point x="895" y="764"/>
+ <point x="961" y="716" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..c6a02c1
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="900"/>
+ <unicode hex="0074"/>
+ <anchor x="470" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1075" y="1000" name="R"/>
+ <anchor x="640" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="831" y="278" type="line"/>
+ <point x="740" y="230"/>
+ <point x="670" y="204"/>
+ <point x="619" y="204" type="curve" smooth="yes"/>
+ <point x="556" y="204"/>
+ <point x="536" y="250"/>
+ <point x="536" y="318" type="curve" smooth="yes"/>
+ <point x="536" y="347"/>
+ <point x="539" y="380"/>
+ <point x="545" y="415" type="curve" smooth="yes"/>
+ <point x="567" y="549"/>
+ <point x="700" y="1039"/>
+ <point x="767" y="1307" type="curve"/>
+ <point x="487" y="1307" type="line"/>
+ <point x="419" y="1038"/>
+ <point x="265" y="471"/>
+ <point x="243" y="328" type="curve" smooth="yes"/>
+ <point x="239" y="302"/>
+ <point x="237" y="277"/>
+ <point x="237" y="253" type="curve" smooth="yes"/>
+ <point x="237" y="73"/>
+ <point x="351" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="590" y="-25"/>
+ <point x="703" y="-4"/>
+ <point x="812" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="945" y="797" type="line"/>
+ <point x="995" y="995" type="line"/>
+ <point x="220" y="995" type="line"/>
+ <point x="170" y="797" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5067d38
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1257"/>
+ <unicode hex="0075"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="630" y="0" name="O"/>
+ <anchor x="1448" y="1000" name="R"/>
+ <anchor x="830" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1117" y="0" type="line"/>
+ <point x="1113" y="29"/>
+ <point x="1112" y="62"/>
+ <point x="1112" y="100" type="curve" smooth="yes"/>
+ <point x="1112" y="206"/>
+ <point x="1131" y="341"/>
+ <point x="1157" y="455" type="curve" smooth="yes"/>
+ <point x="1212" y="689"/>
+ <point x="1274" y="905"/>
+ <point x="1282" y="1010" type="curve"/>
+ <point x="993" y="1010" type="line"/>
+ <point x="981" y="889"/>
+ <point x="992" y="918"/>
+ <point x="910" y="595" type="curve"/>
+ <point x="835" y="427"/>
+ <point x="618" y="205"/>
+ <point x="537" y="205" type="curve" smooth="yes"/>
+ <point x="491" y="205"/>
+ <point x="462" y="236"/>
+ <point x="462" y="308" type="curve" smooth="yes"/>
+ <point x="462" y="405"/>
+ <point x="536" y="663"/>
+ <point x="549" y="712" type="curve" smooth="yes"/>
+ <point x="583" y="847"/>
+ <point x="605" y="935"/>
+ <point x="610" y="1010" type="curve"/>
+ <point x="323" y="1010" type="line"/>
+ <point x="312" y="891"/>
+ <point x="296" y="819"/>
+ <point x="264" y="693" type="curve" smooth="yes"/>
+ <point x="191" y="401" type="line" smooth="yes"/>
+ <point x="173" y="330"/>
+ <point x="165" y="267"/>
+ <point x="165" y="214" type="curve" smooth="yes"/>
+ <point x="165" y="55"/>
+ <point x="252" y="-25"/>
+ <point x="381" y="-25" type="curve" smooth="yes"/>
+ <point x="545" y="-25"/>
+ <point x="769" y="160"/>
+ <point x="860" y="295" type="curve"/>
+ <point x="850" y="227"/>
+ <point x="842" y="53"/>
+ <point x="842" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..d7ceb46
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1049"/>
+ <unicode hex="0076"/>
+ <anchor x="505" y="0" name="H"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="695" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="881" y="1010" type="line"/>
+ <point x="881" y="788"/>
+ <point x="719" y="534"/>
+ <point x="507" y="270" type="curve"/>
+ <point x="516" y="353"/>
+ <point x="521" y="457"/>
+ <point x="521" y="564" type="curve" smooth="yes"/>
+ <point x="521" y="730"/>
+ <point x="507" y="903"/>
+ <point x="472" y="1010" type="curve"/>
+ <point x="195" y="1010" type="line"/>
+ <point x="259" y="758"/>
+ <point x="282" y="509"/>
+ <point x="282" y="262" type="curve" smooth="yes"/>
+ <point x="282" y="174"/>
+ <point x="279" y="87"/>
+ <point x="274" y="0" type="curve"/>
+ <point x="535" y="0" type="line"/>
+ <point x="823" y="314"/>
+ <point x="1159" y="766"/>
+ <point x="1159" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..02f3211
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1620"/>
+ <unicode hex="0077"/>
+ <anchor x="700" y="-100" name="L"/>
+ <anchor x="1000" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="1010" type="line"/>
+ <point x="758" y="793"/>
+ <point x="592" y="496"/>
+ <point x="438" y="242" type="curve"/>
+ <point x="459" y="351"/>
+ <point x="476" y="509"/>
+ <point x="476" y="669" type="curve" smooth="yes"/>
+ <point x="476" y="788"/>
+ <point x="468" y="908"/>
+ <point x="448" y="1010" type="curve"/>
+ <point x="190" y="1010" type="line"/>
+ <point x="230" y="831"/>
+ <point x="236" y="678"/>
+ <point x="236" y="494" type="curve" smooth="yes"/>
+ <point x="236" y="364"/>
+ <point x="228" y="211"/>
+ <point x="209" y="0" type="curve"/>
+ <point x="499" y="0" type="line"/>
+ <point x="624" y="181"/>
+ <point x="838" y="560"/>
+ <point x="901" y="690" type="curve"/>
+ <point x="919" y="477"/>
+ <point x="919" y="212"/>
+ <point x="919" y="0" type="curve"/>
+ <point x="1179" y="0" type="line"/>
+ <point x="1430" y="328"/>
+ <point x="1710" y="775"/>
+ <point x="1710" y="1010" type="curve"/>
+ <point x="1432" y="1010" type="line"/>
+ <point x="1432" y="995" type="line" smooth="yes"/>
+ <point x="1432" y="797"/>
+ <point x="1245" y="435"/>
+ <point x="1106" y="242" type="curve"/>
+ <point x="1108" y="298"/>
+ <point x="1108" y="355"/>
+ <point x="1108" y="411" type="curve" smooth="yes"/>
+ <point x="1108" y="637"/>
+ <point x="1096" y="860"/>
+ <point x="1070" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..2e620de
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1104"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="860" y="133"/>
+ <point x="655" y="882"/>
+ <point x="524" y="1010" type="curve"/>
+ <point x="186" y="1010" type="line"/>
+ <point x="425" y="832"/>
+ <point x="593" y="141"/>
+ <point x="713" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="509" y="572" type="line"/>
+ <point x="291" y="463"/>
+ <point x="62" y="230"/>
+ <point x="35" y="0" type="curve"/>
+ <point x="335" y="0" type="line"/>
+ <point x="336" y="156"/>
+ <point x="470" y="390"/>
+ <point x="658" y="477" type="curve"/>
+ </contour>
+ <contour>
+ <point x="764" y="471" type="line"/>
+ <point x="943" y="591"/>
+ <point x="1197" y="808"/>
+ <point x="1204" y="1010" type="curve"/>
+ <point x="894" y="1010" type="line"/>
+ <point x="894" y="852"/>
+ <point x="773" y="665"/>
+ <point x="616" y="571" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..f2ae46b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1041"/>
+ <unicode hex="0079"/>
+ <anchor x="810" y="-100" name="L"/>
+ <anchor x="1325" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="847" y="1010" type="line"/>
+ <point x="851" y="994"/>
+ <point x="852" y="977"/>
+ <point x="852" y="958" type="curve" smooth="yes"/>
+ <point x="852" y="786"/>
+ <point x="713" y="473"/>
+ <point x="596" y="260" type="curve"/>
+ <point x="596" y="478"/>
+ <point x="503" y="877"/>
+ <point x="403" y="1010" type="curve"/>
+ <point x="120" y="1010" type="line"/>
+ <point x="259" y="811"/>
+ <point x="401" y="401"/>
+ <point x="409" y="-18" type="curve"/>
+ <point x="283" y="-207"/>
+ <point x="183" y="-250"/>
+ <point x="114" y="-250" type="curve" smooth="yes"/>
+ <point x="48" y="-250"/>
+ <point x="-33" y="-201"/>
+ <point x="-63" y="-165" type="curve"/>
+ <point x="-195" y="-381" type="line"/>
+ <point x="-136" y="-435"/>
+ <point x="-13" y="-465"/>
+ <point x="78" y="-465" type="curve" smooth="yes"/>
+ <point x="260" y="-465"/>
+ <point x="447" y="-385"/>
+ <point x="684" y="0" type="curve" smooth="yes"/>
+ <point x="919" y="381"/>
+ <point x="1116" y="766"/>
+ <point x="1116" y="960" type="curve" smooth="yes"/>
+ <point x="1116" y="978"/>
+ <point x="1114" y="995"/>
+ <point x="1110" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..cd90adf
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="875"/>
+ <unicode hex="2011"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..1d3e5e9
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="667" y="1346" type="line"/>
+ <point x="16" y="99" type="line"/>
+ <point x="256" y="99" type="line"/>
+ <point x="907" y="1346" type="line"/>
+ </contour>
+ <contour>
+ <point x="54" y="421" type="line"/>
+ <point x="1145" y="421" type="line"/>
+ <point x="1197" y="629" type="line"/>
+ <point x="106" y="629" type="line"/>
+ </contour>
+ <contour>
+ <point x="218" y="841" type="line"/>
+ <point x="1309" y="841" type="line"/>
+ <point x="1361" y="1049" type="line"/>
+ <point x="270" y="1049" type="line"/>
+ </contour>
+ <contour>
+ <point x="1142" y="1346" type="line"/>
+ <point x="491" y="99" type="line"/>
+ <point x="731" y="99" type="line"/>
+ <point x="1382" y="1346" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..f87ea9f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1545"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1375" y="1465" type="line"/>
+ <point x="221" y="-25" type="line"/>
+ <point x="435" y="-25" type="line"/>
+ <point x="1587" y="1465" type="line"/>
+ </contour>
+ <contour>
+ <point x="714" y="1043" type="curve" smooth="yes"/>
+ <point x="669" y="861"/>
+ <point x="611" y="807"/>
+ <point x="535" y="807" type="curve" smooth="yes"/>
+ <point x="486" y="807"/>
+ <point x="461" y="843"/>
+ <point x="461" y="917" type="curve" smooth="yes"/>
+ <point x="461" y="963"/>
+ <point x="471" y="1023"/>
+ <point x="490" y="1099" type="curve" smooth="yes"/>
+ <point x="535" y="1281"/>
+ <point x="580" y="1336"/>
+ <point x="657" y="1336" type="curve" smooth="yes"/>
+ <point x="710" y="1336"/>
+ <point x="739" y="1296"/>
+ <point x="739" y="1212" type="curve" smooth="yes"/>
+ <point x="739" y="1168"/>
+ <point x="731" y="1111"/>
+ </contour>
+ <contour>
+ <point x="926" y="1054" type="curve" smooth="yes"/>
+ <point x="939" y="1107"/>
+ <point x="946" y="1156"/>
+ <point x="946" y="1199" type="curve" smooth="yes"/>
+ <point x="946" y="1374"/>
+ <point x="842" y="1465"/>
+ <point x="694" y="1465" type="curve" smooth="yes"/>
+ <point x="510" y="1465"/>
+ <point x="346" y="1369"/>
+ <point x="277" y="1090" type="curve" smooth="yes"/>
+ <point x="262" y="1031"/>
+ <point x="255" y="979"/>
+ <point x="255" y="933" type="curve" smooth="yes"/>
+ <point x="255" y="761"/>
+ <point x="353" y="678"/>
+ <point x="499" y="678" type="curve" smooth="yes"/>
+ <point x="684" y="678"/>
+ <point x="853" y="762"/>
+ </contour>
+ <contour>
+ <point x="1314" y="337" type="curve" smooth="yes"/>
+ <point x="1268" y="155"/>
+ <point x="1220" y="104"/>
+ <point x="1144" y="104" type="curve" smooth="yes"/>
+ <point x="1093" y="104"/>
+ <point x="1065" y="144"/>
+ <point x="1065" y="227" type="curve" smooth="yes"/>
+ <point x="1065" y="272"/>
+ <point x="1073" y="329"/>
+ <point x="1090" y="398" type="curve" smooth="yes"/>
+ <point x="1136" y="580"/>
+ <point x="1190" y="634"/>
+ <point x="1267" y="634" type="curve" smooth="yes"/>
+ <point x="1317" y="634"/>
+ <point x="1342" y="596"/>
+ <point x="1342" y="520" type="curve" smooth="yes"/>
+ <point x="1342" y="473"/>
+ <point x="1333" y="412"/>
+ </contour>
+ <contour>
+ <point x="1526" y="350" type="curve" smooth="yes"/>
+ <point x="1540" y="406"/>
+ <point x="1546" y="456"/>
+ <point x="1546" y="501" type="curve" smooth="yes"/>
+ <point x="1546" y="673"/>
+ <point x="1450" y="762"/>
+ <point x="1303" y="762" type="curve" smooth="yes"/>
+ <point x="1119" y="762"/>
+ <point x="946" y="665"/>
+ <point x="876" y="386" type="curve" smooth="yes"/>
+ <point x="862" y="331"/>
+ <point x="856" y="281"/>
+ <point x="856" y="237" type="curve" smooth="yes"/>
+ <point x="856" y="60"/>
+ <point x="960" y="-25"/>
+ <point x="1108" y="-25" type="curve" smooth="yes"/>
+ <point x="1293" y="-25"/>
+ <point x="1453" y="58"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..bb54e70
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="722" y="1168" type="line"/>
+ <point x="500" y="282" type="line"/>
+ <point x="715" y="282" type="line"/>
+ <point x="936" y="1168" type="line"/>
+ </contour>
+ <contour>
+ <point x="250" y="624" type="line"/>
+ <point x="1140" y="624" type="line"/>
+ <point x="1192" y="832" type="line"/>
+ <point x="302" y="832" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5acaded
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1070"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="703" y="495" type="line"/>
+ <point x="745" y="664"/>
+ <point x="787" y="792"/>
+ <point x="931" y="933" type="curve" smooth="yes"/>
+ <point x="1034" y="1033"/>
+ <point x="1143" y="1118"/>
+ <point x="1143" y="1256" type="curve" smooth="yes"/>
+ <point x="1143" y="1404"/>
+ <point x="1022" y="1525"/>
+ <point x="800" y="1525" type="curve" smooth="yes"/>
+ <point x="675" y="1525"/>
+ <point x="508" y="1455"/>
+ <point x="427" y="1393" type="curve"/>
+ <point x="413" y="1156" type="line"/>
+ <point x="508" y="1235"/>
+ <point x="621" y="1282"/>
+ <point x="721" y="1282" type="curve" smooth="yes"/>
+ <point x="811" y="1282"/>
+ <point x="846" y="1238"/>
+ <point x="846" y="1189" type="curve" smooth="yes"/>
+ <point x="846" y="1109"/>
+ <point x="760" y="1086"/>
+ <point x="650" y="956" type="curve" smooth="yes"/>
+ <point x="564" y="855"/>
+ <point x="490" y="703"/>
+ <point x="438" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="306" y="116" type="curve" smooth="yes"/>
+ <point x="306" y="35"/>
+ <point x="367" y="-25"/>
+ <point x="453" y="-25" type="curve" smooth="yes"/>
+ <point x="571" y="-25"/>
+ <point x="666" y="71"/>
+ <point x="666" y="181" type="curve" smooth="yes"/>
+ <point x="666" y="261"/>
+ <point x="607" y="322"/>
+ <point x="520" y="322" type="curve" smooth="yes"/>
+ <point x="403" y="322"/>
+ <point x="306" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..f33fd18
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1065"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="648" y="1035" type="line"/>
+ <point x="687" y="1174"/>
+ <point x="726" y="1326"/>
+ <point x="816" y="1569" type="curve"/>
+ <point x="571" y="1569" type="line"/>
+ <point x="541" y="1326"/>
+ <point x="503" y="1174"/>
+ <point x="473" y="1035" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1008" y="1035" type="line"/>
+ <point x="1047" y="1174"/>
+ <point x="1086" y="1326"/>
+ <point x="1176" y="1569" type="curve"/>
+ <point x="931" y="1569" type="line"/>
+ <point x="901" y="1326"/>
+ <point x="863" y="1174"/>
+ <point x="833" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..0068c20
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="344" y="1584" type="line"/>
+ <point x="719" y="-243" type="line"/>
+ <point x="949" y="-243" type="line"/>
+ <point x="574" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..726adad
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="442" y="1395" type="line"/>
+ <point x="513" y="1366"/>
+ <point x="611" y="1344"/>
+ <point x="611" y="1296" type="curve" smooth="yes"/>
+ <point x="611" y="1200"/>
+ <point x="515" y="837"/>
+ <point x="515" y="782" type="curve" smooth="yes"/>
+ <point x="515" y="743"/>
+ <point x="633" y="649"/>
+ <point x="633" y="613" type="curve" smooth="yes"/>
+ <point x="633" y="573"/>
+ <point x="465" y="486"/>
+ <point x="429" y="441" type="curve" smooth="yes"/>
+ <point x="403" y="407"/>
+ <point x="300" y="-59"/>
+ <point x="255" y="-99" type="curve" smooth="yes"/>
+ <point x="230" y="-121"/>
+ <point x="97" y="-158"/>
+ <point x="25" y="-177" type="curve"/>
+ <point x="17" y="-406" type="line"/>
+ <point x="160" y="-379"/>
+ <point x="377" y="-330"/>
+ <point x="439" y="-282" type="curve" smooth="yes"/>
+ <point x="532" y="-211"/>
+ <point x="666" y="374"/>
+ <point x="696" y="406" type="curve" smooth="yes"/>
+ <point x="734" y="446"/>
+ <point x="947" y="559"/>
+ <point x="947" y="616" type="curve" smooth="yes"/>
+ <point x="947" y="676"/>
+ <point x="796" y="783"/>
+ <point x="796" y="819" type="curve" smooth="yes"/>
+ <point x="796" y="880"/>
+ <point x="896" y="1288"/>
+ <point x="896" y="1453" type="curve" smooth="yes"/>
+ <point x="896" y="1529"/>
+ <point x="709" y="1591"/>
+ <point x="549" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..544faff
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="476" y="1411" type="line"/>
+ <point x="572" y="1290"/>
+ <point x="616" y="1127"/>
+ <point x="616" y="944" type="curve" smooth="yes"/>
+ <point x="616" y="832"/>
+ <point x="599" y="712"/>
+ <point x="569" y="589" type="curve" smooth="yes"/>
+ <point x="491" y="275"/>
+ <point x="333" y="48"/>
+ <point x="75" y="-198" type="curve"/>
+ <point x="163" y="-406" type="line"/>
+ <point x="509" y="-124"/>
+ <point x="743" y="206"/>
+ <point x="844" y="609" type="curve" smooth="yes"/>
+ <point x="876" y="735"/>
+ <point x="891" y="858"/>
+ <point x="891" y="973" type="curve" smooth="yes"/>
+ <point x="891" y="1252"/>
+ <point x="803" y="1487"/>
+ <point x="649" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..804527d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="503" y="-406" type="line"/>
+ <point x="994" y="1584" type="line"/>
+ <point x="474" y="1584" type="line"/>
+ <point x="423" y="1376" type="line"/>
+ <point x="663" y="1376" type="line"/>
+ <point x="275" y="-198" type="line"/>
+ <point x="35" y="-198" type="line"/>
+ <point x="-17" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..1c9af02
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="690"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..0bac67c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1164" y="1584" type="line"/>
+ <point x="-120" y="-243" type="line"/>
+ <point x="129" y="-243" type="line"/>
+ <point x="1414" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..26c105f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1155"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="190" y="342" type="line"/>
+ <point x="207" y="390"/>
+ <point x="249" y="431"/>
+ <point x="327" y="431" type="curve" smooth="yes"/>
+ <point x="502" y="431"/>
+ <point x="676" y="327"/>
+ <point x="906" y="327" type="curve" smooth="yes"/>
+ <point x="1065" y="327"/>
+ <point x="1206" y="507"/>
+ <point x="1238" y="634" type="curve"/>
+ <point x="1093" y="634" type="line"/>
+ <point x="1074" y="588"/>
+ <point x="1031" y="535"/>
+ <point x="948" y="535" type="curve" smooth="yes"/>
+ <point x="712" y="535"/>
+ <point x="580" y="639"/>
+ <point x="359" y="639" type="curve" smooth="yes"/>
+ <point x="203" y="639"/>
+ <point x="75" y="462"/>
+ <point x="45" y="342" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..204ac86
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="574" y="1594" type="line"/>
+ <point x="83" y="-396" type="line"/>
+ <point x="293" y="-396" type="line"/>
+ <point x="784" y="1594" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/layercontents.plist b/tests/reference/ufo/psfsetkeys.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/lib.plist b/tests/reference/ufo/psfsetkeys.ufo/lib.plist
new file mode 100644
index 0000000..002f2fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/lib.plist
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/metainfo.plist b/tests/reference/ufo/psfsetkeys.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.lg b/tests/reference/ufo/psfsetpsnames.lg
new file mode 100644
index 0000000..510c1b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.lg
@@ -0,0 +1,155 @@
+2021-06-29 14:42:22 Progress: Running: psfsetpsnames tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -i tests/input/glyph_data.csv -l local/testresults/ufo/psfsetpsnames.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/glyph_data.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: macintoshFONDName would be removed from fontinfo Old value: My Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: postscriptFamilyBlues would be removed from fontinfo Old value: []
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeHheaAscender would be updated Old value: 2200, new value: 2100
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 7, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: No glyph in font for AcuteAccent on line 2
+2021-06-29 14:42:22 Info: No glyph in font for Bullet on line 3
+2021-06-29 14:42:22 Info: No glyph in font for BulletOperator on line 4
+2021-06-29 14:42:22 Info: No glyph in font for DblAcuteAccent on line 7
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapAAcute on line 9
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapEAcute on line 10
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapIAcute on line 11
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapOAcute on line 12
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapUAcute on line 13
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapYAcute on line 14
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmEAcute on line 16
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmIAcute on line 17
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmOAcute on line 18
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmUAcute on line 19
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmYAcute on line 20
+2021-06-29 14:42:22 Info: No glyph in font for ModCircumAccent on line 21
+2021-06-29 14:42:22 Info: No glyph in font for SupOne on line 24
+2021-06-29 14:42:22 Info: No glyph in font for SupThree on line 25
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneHalf on line 26
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneQuarter on line 27
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracThreeQuarters on line 28
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph .notdef
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph .null
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Ampersand
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Apos
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Asterisk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph AtSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Colon
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombCircum
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombDiaer
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombGrave
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombRingAbv
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombTilde
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Comma
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitEight
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitFive
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitFour
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitNine
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitOne
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitSeven
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitSix
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitThree
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitTwo
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitZero
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DollarSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DottedCirc
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph EqSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph ExclamationMrk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph FullStop
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph GTSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph GraveAccent
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Hyphen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Hyphen_Soft
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LTSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LftCurlyBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LftParen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LftSqrBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LowLine
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapA
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapADiaer
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapB
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapC
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapD
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapE
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapF
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapG
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapH
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapI
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapJ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapK
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapL
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapM
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapN
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapO
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapP
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapQ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapR
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapS
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapT
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapU
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapV
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapW
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapX
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapY
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmA
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmACircum
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmADiaer
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmAGrave
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmARingAbv
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmATilde
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmB
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmC
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmD
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmE
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmF
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmG
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmH
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmI
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmJ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmK
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmL
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmM
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmN
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmO
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmP
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmQ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmR
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmS
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmT
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmU
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmV
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmW
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmX
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmY
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph NonBreakingHyphen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph NumSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph PercentSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph PlusSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph QstnMrk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph QuotMrk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph RtCurlyBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph RtParen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph RtSqrBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Semicolon
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Solidus
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Space
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Tilde
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph VertLine
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph nonmarkingreturn
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetpsnames.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist b/tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist
new file mode 100644
index 0000000..cab026a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>macintoshFONDName</key>
+ <string>My Test</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:07</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2200</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFamilyBlues</key>
+ <array/>
+ <key>postscriptFontName</key>
+ <string>PsfTest-BoldItalic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold italic</string>
+ <key>styleName</key>
+ <string>Bold Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f3fb1c7
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1333"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1146" y="594" type="line"/>
+ <point x="1040" y="429"/>
+ <point x="712" y="198"/>
+ <point x="537" y="198" type="curve" smooth="yes"/>
+ <point x="437" y="198"/>
+ <point x="363" y="257"/>
+ <point x="363" y="345" type="curve" smooth="yes"/>
+ <point x="363" y="490"/>
+ <point x="474" y="535"/>
+ <point x="695" y="693" type="curve" smooth="yes"/>
+ <point x="940" y="868"/>
+ <point x="1160" y="1032"/>
+ <point x="1160" y="1213" type="curve" smooth="yes"/>
+ <point x="1160" y="1361"/>
+ <point x="1026" y="1470"/>
+ <point x="849" y="1470" type="curve" smooth="yes"/>
+ <point x="637" y="1470"/>
+ <point x="414" y="1364"/>
+ <point x="414" y="1124" type="curve" smooth="yes"/>
+ <point x="414" y="968"/>
+ <point x="552" y="751"/>
+ <point x="661" y="535" type="curve" smooth="yes"/>
+ <point x="842" y="177"/>
+ <point x="969" y="-25"/>
+ <point x="1021" y="-25" type="curve" smooth="yes"/>
+ <point x="1056" y="-25"/>
+ <point x="1205" y="57"/>
+ <point x="1250" y="89" type="curve"/>
+ <point x="1165" y="129"/>
+ <point x="1073" y="302"/>
+ <point x="890" y="673" type="curve" smooth="yes"/>
+ <point x="788" y="881"/>
+ <point x="651" y="1063"/>
+ <point x="651" y="1163" type="curve" smooth="yes"/>
+ <point x="651" y="1245"/>
+ <point x="729" y="1307"/>
+ <point x="803" y="1307" type="curve" smooth="yes"/>
+ <point x="873" y="1307"/>
+ <point x="926" y="1250"/>
+ <point x="926" y="1184" type="curve" smooth="yes"/>
+ <point x="926" y="1081"/>
+ <point x="821" y="997"/>
+ <point x="600" y="832" type="curve" smooth="yes"/>
+ <point x="392" y="677"/>
+ <point x="108" y="540"/>
+ <point x="108" y="268" type="curve" smooth="yes"/>
+ <point x="108" y="98"/>
+ <point x="229" y="-25"/>
+ <point x="466" y="-25" type="curve" smooth="yes"/>
+ <point x="749" y="-25"/>
+ <point x="1120" y="261"/>
+ <point x="1237" y="421" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..68b000e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="598" y="1035" type="line"/>
+ <point x="637" y="1174"/>
+ <point x="676" y="1326"/>
+ <point x="766" y="1569" type="curve"/>
+ <point x="521" y="1569" type="line"/>
+ <point x="491" y="1326"/>
+ <point x="453" y="1174"/>
+ <point x="423" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..a36131c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1020"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="1135" y="1478" type="line"/>
+ <point x="1039" y="1412"/>
+ <point x="956" y="1353"/>
+ <point x="856" y="1295" type="curve"/>
+ <point x="885" y="1391"/>
+ <point x="915" y="1471"/>
+ <point x="958" y="1584" type="curve"/>
+ <point x="759" y="1584" type="line"/>
+ <point x="753" y="1482"/>
+ <point x="748" y="1398"/>
+ <point x="730" y="1295" type="curve"/>
+ <point x="658" y="1346"/>
+ <point x="599" y="1394"/>
+ <point x="532" y="1461" type="curve"/>
+ <point x="388" y="1293" type="line"/>
+ <point x="484" y="1258"/>
+ <point x="575" y="1222"/>
+ <point x="647" y="1184" type="curve"/>
+ <point x="552" y="1141"/>
+ <point x="459" y="1109"/>
+ <point x="341" y="1066" type="curve"/>
+ <point x="398" y="888" type="line"/>
+ <point x="494" y="958"/>
+ <point x="575" y="1016"/>
+ <point x="674" y="1076" type="curve"/>
+ <point x="641" y="973"/>
+ <point x="610" y="887"/>
+ <point x="566" y="785" type="curve"/>
+ <point x="767" y="785" type="line"/>
+ <point x="773" y="897"/>
+ <point x="785" y="977"/>
+ <point x="800" y="1073" type="curve"/>
+ <point x="875" y="1017"/>
+ <point x="929" y="971"/>
+ <point x="995" y="905" type="curve"/>
+ <point x="1144" y="1078" type="line"/>
+ <point x="1045" y="1116"/>
+ <point x="967" y="1143"/>
+ <point x="886" y="1184" type="curve"/>
+ <point x="984" y="1229"/>
+ <point x="1075" y="1264"/>
+ <point x="1190" y="1308" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..e2233cf
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1693"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="10" type="line"/>
+ <point x="1008" y="-34"/>
+ <point x="933" y="-59"/>
+ <point x="840" y="-59" type="curve" smooth="yes"/>
+ <point x="540" y="-59"/>
+ <point x="362" y="143"/>
+ <point x="362" y="434" type="curve" smooth="yes"/>
+ <point x="362" y="498"/>
+ <point x="371" y="567"/>
+ <point x="389" y="639" type="curve" smooth="yes"/>
+ <point x="480" y="1003"/>
+ <point x="783" y="1228"/>
+ <point x="1121" y="1228" type="curve" smooth="yes"/>
+ <point x="1424" y="1228"/>
+ <point x="1581" y="1069"/>
+ <point x="1581" y="813" type="curve" smooth="yes"/>
+ <point x="1581" y="753"/>
+ <point x="1572" y="688"/>
+ <point x="1555" y="619" type="curve" smooth="yes"/>
+ <point x="1506" y="418"/>
+ <point x="1400" y="331"/>
+ <point x="1340" y="331" type="curve" smooth="yes"/>
+ <point x="1307" y="331"/>
+ <point x="1287" y="362"/>
+ <point x="1287" y="432" type="curve" smooth="yes"/>
+ <point x="1287" y="482"/>
+ <point x="1297" y="551"/>
+ <point x="1320" y="643" type="curve" smooth="yes"/>
+ <point x="1401" y="970" type="line"/>
+ <point x="1323" y="1005"/>
+ <point x="1182" y="1030"/>
+ <point x="1101" y="1030" type="curve" smooth="yes"/>
+ <point x="937" y="1030"/>
+ <point x="822" y="974"/>
+ <point x="710" y="862" type="curve" smooth="yes"/>
+ <point x="637" y="789"/>
+ <point x="569" y="677"/>
+ <point x="539" y="556" type="curve" smooth="yes"/>
+ <point x="529" y="518"/>
+ <point x="525" y="481"/>
+ <point x="525" y="447" type="curve" smooth="yes"/>
+ <point x="525" y="279"/>
+ <point x="629" y="161"/>
+ <point x="740" y="161" type="curve" smooth="yes"/>
+ <point x="867" y="161"/>
+ <point x="1034" y="328"/>
+ <point x="1117" y="450" type="curve"/>
+ <point x="1112" y="422"/>
+ <point x="1110" y="394"/>
+ <point x="1110" y="367" type="curve" smooth="yes"/>
+ <point x="1110" y="252"/>
+ <point x="1157" y="155"/>
+ <point x="1291" y="155" type="curve" smooth="yes"/>
+ <point x="1454" y="155"/>
+ <point x="1674" y="332"/>
+ <point x="1752" y="646" type="curve" smooth="yes"/>
+ <point x="1768" y="710"/>
+ <point x="1775" y="771"/>
+ <point x="1775" y="829" type="curve" smooth="yes"/>
+ <point x="1775" y="1169"/>
+ <point x="1520" y="1411"/>
+ <point x="1156" y="1411" type="curve" smooth="yes"/>
+ <point x="731" y="1411"/>
+ <point x="322" y="1180"/>
+ <point x="183" y="624" type="curve" smooth="yes"/>
+ <point x="163" y="544"/>
+ <point x="154" y="469"/>
+ <point x="154" y="398" type="curve" smooth="yes"/>
+ <point x="154" y="-1"/>
+ <point x="448" y="-243"/>
+ <point x="789" y="-243" type="curve" smooth="yes"/>
+ <point x="924" y="-243"/>
+ <point x="1076" y="-206"/>
+ <point x="1193" y="-137" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1135" y="703" type="line"/>
+ <point x="1069" y="566"/>
+ <point x="899" y="346"/>
+ <point x="809" y="346" type="curve" smooth="yes"/>
+ <point x="757" y="346"/>
+ <point x="726" y="386"/>
+ <point x="726" y="463" type="curve" smooth="yes"/>
+ <point x="726" y="493"/>
+ <point x="731" y="528"/>
+ <point x="741" y="569" type="curve" smooth="yes"/>
+ <point x="760" y="645"/>
+ <point x="803" y="731"/>
+ <point x="853" y="778" type="curve" smooth="yes"/>
+ <point x="901" y="824"/>
+ <point x="957" y="846"/>
+ <point x="1025" y="846" type="curve" smooth="yes"/>
+ <point x="1099" y="846"/>
+ <point x="1133" y="828"/>
+ <point x="1162" y="812" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..b60b998
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="860"/>
+ <unicode hex="005E"/>
+ <anchor x="788" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1056" y="1188" type="line"/>
+ <point x="845" y="1584" type="line"/>
+ <point x="545" y="1584" type="line"/>
+ <point x="177" y="1188" type="line"/>
+ <point x="417" y="1188" type="line"/>
+ <point x="674" y="1416" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..37f30d8
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="690"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..f3ea065
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-251" y="1635" name="U"/>
+ <anchor x="-325" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-165" y="1584" type="line"/>
+ <point x="-523" y="1188" type="line"/>
+ <point x="-283" y="1188" type="line"/>
+ <point x="204" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..9dc18ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-239" y="1635" name="U"/>
+ <anchor x="-330" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="88" y="1188" type="line"/>
+ <point x="-123" y="1584" type="line"/>
+ <point x="-423" y="1584" type="line"/>
+ <point x="-791" y="1188" type="line"/>
+ <point x="-551" y="1188" type="line"/>
+ <point x="-294" y="1416" type="line"/>
+ <point x="-151" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..490587d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-243" y="1585" name="U"/>
+ <anchor x="-365" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-233" y="1338" type="curve" smooth="yes"/>
+ <point x="-233" y="1256"/>
+ <point x="-172" y="1198"/>
+ <point x="-86" y="1198" type="curve" smooth="yes"/>
+ <point x="32" y="1198"/>
+ <point x="126" y="1294"/>
+ <point x="126" y="1404" type="curve" smooth="yes"/>
+ <point x="126" y="1484"/>
+ <point x="66" y="1544"/>
+ <point x="-21" y="1544" type="curve" smooth="yes"/>
+ <point x="-139" y="1544"/>
+ <point x="-233" y="1447"/>
+ </contour>
+ <contour>
+ <point x="-723" y="1338" type="curve" smooth="yes"/>
+ <point x="-723" y="1256"/>
+ <point x="-662" y="1198"/>
+ <point x="-576" y="1198" type="curve" smooth="yes"/>
+ <point x="-457" y="1198"/>
+ <point x="-363" y="1293"/>
+ <point x="-363" y="1404" type="curve" smooth="yes"/>
+ <point x="-363" y="1484"/>
+ <point x="-423" y="1544"/>
+ <point x="-510" y="1544" type="curve" smooth="yes"/>
+ <point x="-628" y="1544"/>
+ <point x="-723" y="1448"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..49617c2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-241" y="1635" name="U"/>
+ <anchor x="-415" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-725" y="1584" type="line"/>
+ <point x="-403" y="1188" type="line"/>
+ <point x="-173" y="1188" type="line"/>
+ <point x="-395" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..27f9832
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-357" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-358" y="1292" type="curve" smooth="yes"/>
+ <point x="-406" y="1292"/>
+ <point x="-442" y="1330"/>
+ <point x="-442" y="1375" type="curve" smooth="yes"/>
+ <point x="-442" y="1440"/>
+ <point x="-385" y="1480"/>
+ <point x="-331" y="1480" type="curve" smooth="yes"/>
+ <point x="-283" y="1480"/>
+ <point x="-247" y="1443"/>
+ <point x="-247" y="1398" type="curve" smooth="yes"/>
+ <point x="-247" y="1335"/>
+ <point x="-301" y="1292"/>
+ </contour>
+ <contour>
+ <point x="-598" y="1348" type="curve" smooth="yes"/>
+ <point x="-598" y="1238"/>
+ <point x="-504" y="1148"/>
+ <point x="-384" y="1148" type="curve" smooth="yes"/>
+ <point x="-223" y="1148"/>
+ <point x="-92" y="1271"/>
+ <point x="-92" y="1424" type="curve" smooth="yes"/>
+ <point x="-92" y="1534"/>
+ <point x="-186" y="1624"/>
+ <point x="-306" y="1624" type="curve" smooth="yes"/>
+ <point x="-467" y="1624"/>
+ <point x="-598" y="1501"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..1aa1b62
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-355" y="1490" name="U"/>
+ <anchor x="-390" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-687" y="1178" type="line"/>
+ <point x="-673" y="1232"/>
+ <point x="-628" y="1271"/>
+ <point x="-584" y="1271" type="curve" smooth="yes"/>
+ <point x="-546" y="1271"/>
+ <point x="-498" y="1247"/>
+ <point x="-437" y="1217" type="curve" smooth="yes"/>
+ <point x="-375" y="1187"/>
+ <point x="-327" y="1168"/>
+ <point x="-265" y="1168" type="curve" smooth="yes"/>
+ <point x="-129" y="1168"/>
+ <point x="-13" y="1294"/>
+ <point x="30" y="1465" type="curve"/>
+ <point x="-125" y="1465" type="line"/>
+ <point x="-138" y="1415"/>
+ <point x="-190" y="1373"/>
+ <point x="-235" y="1373" type="curve" smooth="yes"/>
+ <point x="-272" y="1373"/>
+ <point x="-306" y="1399"/>
+ <point x="-366" y="1423" type="curve" smooth="yes"/>
+ <point x="-438" y="1452"/>
+ <point x="-498" y="1475"/>
+ <point x="-563" y="1475" type="curve" smooth="yes"/>
+ <point x="-695" y="1475"/>
+ <point x="-802" y="1336"/>
+ <point x="-842" y="1178" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..4105316
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="645"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..9272dc9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="543" y="-25" type="curve" smooth="yes"/>
+ <point x="860" y="-25"/>
+ <point x="1182" y="176"/>
+ <point x="1182" y="498" type="curve" smooth="yes"/>
+ <point x="1182" y="642"/>
+ <point x="1090" y="742"/>
+ <point x="1011" y="787" type="curve"/>
+ <point x="1159" y="866"/>
+ <point x="1279" y="994"/>
+ <point x="1279" y="1163" type="curve" smooth="yes"/>
+ <point x="1279" y="1342"/>
+ <point x="1123" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="632" y="1470"/>
+ <point x="349" y="1310"/>
+ <point x="349" y="1028" type="curve" smooth="yes"/>
+ <point x="349" y="904"/>
+ <point x="412" y="821"/>
+ <point x="466" y="787" type="curve"/>
+ <point x="270" y="703"/>
+ <point x="108" y="563"/>
+ <point x="108" y="341" type="curve" smooth="yes"/>
+ <point x="108" y="123"/>
+ <point x="301" y="-25"/>
+ </contour>
+ <contour>
+ <point x="760" y="886" type="curve" smooth="yes"/>
+ <point x="651" y="886"/>
+ <point x="593" y="939"/>
+ <point x="593" y="1038" type="curve" smooth="yes"/>
+ <point x="593" y="1175"/>
+ <point x="721" y="1277"/>
+ <point x="858" y="1277" type="curve" smooth="yes"/>
+ <point x="976" y="1277"/>
+ <point x="1028" y="1221"/>
+ <point x="1028" y="1127" type="curve" smooth="yes"/>
+ <point x="1028" y="993"/>
+ <point x="898" y="886"/>
+ </contour>
+ <contour>
+ <point x="595" y="183" type="curve" smooth="yes"/>
+ <point x="458" y="183"/>
+ <point x="375" y="267"/>
+ <point x="375" y="384" type="curve" smooth="yes"/>
+ <point x="375" y="549"/>
+ <point x="549" y="673"/>
+ <point x="707" y="673" type="curve" smooth="yes"/>
+ <point x="833" y="673"/>
+ <point x="920" y="602"/>
+ <point x="920" y="477" type="curve" smooth="yes"/>
+ <point x="920" y="317"/>
+ <point x="759" y="183"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..1c4dd99
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1330" y="1445" type="line"/>
+ <point x="475" y="1445" type="line"/>
+ <point x="274" y="639" type="line"/>
+ <point x="410" y="686"/>
+ <point x="519" y="703"/>
+ <point x="625" y="703" type="curve" smooth="yes"/>
+ <point x="763" y="703"/>
+ <point x="867" y="630"/>
+ <point x="867" y="507" type="curve" smooth="yes"/>
+ <point x="867" y="318"/>
+ <point x="680" y="213"/>
+ <point x="503" y="213" type="curve" smooth="yes"/>
+ <point x="363" y="213"/>
+ <point x="255" y="260"/>
+ <point x="168" y="356" type="curve"/>
+ <point x="59" y="79" type="line"/>
+ <point x="165" y="2"/>
+ <point x="308" y="-25"/>
+ <point x="483" y="-25" type="curve" smooth="yes"/>
+ <point x="841" y="-25"/>
+ <point x="1155" y="204"/>
+ <point x="1155" y="564" type="curve" smooth="yes"/>
+ <point x="1155" y="774"/>
+ <point x="1007" y="921"/>
+ <point x="774" y="921" type="curve" smooth="yes"/>
+ <point x="712" y="921"/>
+ <point x="632" y="902"/>
+ <point x="595" y="886" type="curve"/>
+ <point x="674" y="1203" type="line"/>
+ <point x="1004" y="1203" type="line" smooth="yes"/>
+ <point x="1088" y="1203"/>
+ <point x="1193" y="1199"/>
+ <point x="1264" y="1183" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..617709f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1180" y="342" type="line"/>
+ <point x="1235" y="564" type="line"/>
+ <point x="1075" y="564" type="line"/>
+ <point x="1295" y="1445" type="line"/>
+ <point x="945" y="1445" type="line"/>
+ <point x="120" y="564" type="line"/>
+ <point x="65" y="342" type="line"/>
+ <point x="755" y="342" type="line"/>
+ <point x="670" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1020" y="342" type="line"/>
+ </contour>
+ <contour>
+ <point x="954" y="1143" type="line"/>
+ <point x="810" y="564" type="line"/>
+ <point x="385" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..85e36a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="119" y="84" type="line"/>
+ <point x="199" y="25"/>
+ <point x="327" y="-25"/>
+ <point x="455" y="-25" type="curve" smooth="yes"/>
+ <point x="979" y="-25"/>
+ <point x="1289" y="533"/>
+ <point x="1289" y="979" type="curve" smooth="yes"/>
+ <point x="1289" y="1248"/>
+ <point x="1164" y="1470"/>
+ <point x="833" y="1470" type="curve" smooth="yes"/>
+ <point x="554" y="1470"/>
+ <point x="255" y="1239"/>
+ <point x="255" y="932" type="curve" smooth="yes"/>
+ <point x="255" y="736"/>
+ <point x="399" y="570"/>
+ <point x="644" y="570" type="curve" smooth="yes"/>
+ <point x="833" y="570"/>
+ <point x="1027" y="700"/>
+ <point x="1164" y="859" type="curve"/>
+ <point x="1123" y="981" type="line"/>
+ <point x="1021" y="868"/>
+ <point x="863" y="782"/>
+ <point x="728" y="782" type="curve" smooth="yes"/>
+ <point x="589" y="782"/>
+ <point x="519" y="845"/>
+ <point x="519" y="955" type="curve" smooth="yes"/>
+ <point x="519" y="1133"/>
+ <point x="653" y="1237"/>
+ <point x="801" y="1237" type="curve" smooth="yes"/>
+ <point x="951" y="1237"/>
+ <point x="1029" y="1136"/>
+ <point x="1029" y="965" type="curve" smooth="yes"/>
+ <point x="1029" y="476"/>
+ <point x="710" y="208"/>
+ <point x="513" y="208" type="curve" smooth="yes"/>
+ <point x="417" y="208"/>
+ <point x="301" y="252"/>
+ <point x="237" y="337" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..df3633d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="490" y="233" type="line"/>
+ <point x="183" y="233" type="line"/>
+ <point x="125" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="1073" y="233" type="line"/>
+ <point x="765" y="233" type="line"/>
+ <point x="1067" y="1445" type="line"/>
+ <point x="792" y="1445" type="line"/>
+ <point x="432" y="1265" type="line"/>
+ <point x="403" y="1008" type="line"/>
+ <point x="720" y="1158" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..23ac13b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="480" y="0" type="line"/>
+ <point x="722" y="454"/>
+ <point x="1004" y="846"/>
+ <point x="1400" y="1247" type="curve"/>
+ <point x="1450" y="1445" type="line"/>
+ <point x="390" y="1445" type="line"/>
+ <point x="324" y="1178" type="line"/>
+ <point x="404" y="1194"/>
+ <point x="521" y="1198"/>
+ <point x="709" y="1198" type="curve" smooth="yes"/>
+ <point x="1039" y="1198" type="line"/>
+ <point x="689" y="829"/>
+ <point x="488" y="560"/>
+ <point x="175" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..5fad278
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1347" y="1371" type="line"/>
+ <point x="1260" y="1440"/>
+ <point x="1149" y="1470"/>
+ <point x="1011" y="1470" type="curve" smooth="yes"/>
+ <point x="493" y="1470"/>
+ <point x="181" y="971"/>
+ <point x="181" y="500" type="curve" smooth="yes"/>
+ <point x="181" y="188"/>
+ <point x="368" y="-25"/>
+ <point x="635" y="-25" type="curve" smooth="yes"/>
+ <point x="954" y="-25"/>
+ <point x="1207" y="192"/>
+ <point x="1207" y="498" type="curve" smooth="yes"/>
+ <point x="1207" y="714"/>
+ <point x="1058" y="916"/>
+ <point x="813" y="916" type="curve" smooth="yes"/>
+ <point x="622" y="916"/>
+ <point x="477" y="802"/>
+ <point x="326" y="648" type="curve"/>
+ <point x="363" y="525" type="line"/>
+ <point x="470" y="637"/>
+ <point x="595" y="703"/>
+ <point x="750" y="703" type="curve" smooth="yes"/>
+ <point x="882" y="703"/>
+ <point x="954" y="586"/>
+ <point x="954" y="466" type="curve" smooth="yes"/>
+ <point x="954" y="325"/>
+ <point x="828" y="208"/>
+ <point x="677" y="208" type="curve" smooth="yes"/>
+ <point x="526" y="208"/>
+ <point x="447" y="350"/>
+ <point x="447" y="533" type="curve" smooth="yes"/>
+ <point x="447" y="978"/>
+ <point x="738" y="1237"/>
+ <point x="953" y="1237" type="curve" smooth="yes"/>
+ <point x="1049" y="1237"/>
+ <point x="1155" y="1204"/>
+ <point x="1220" y="1119" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..5be951b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="548" y="876" type="line"/>
+ <point x="489" y="639" type="line"/>
+ <point x="579" y="639" type="line" smooth="yes"/>
+ <point x="778" y="639"/>
+ <point x="880" y="555"/>
+ <point x="880" y="452" type="curve" smooth="yes"/>
+ <point x="880" y="295"/>
+ <point x="726" y="208"/>
+ <point x="576" y="208" type="curve" smooth="yes"/>
+ <point x="386" y="208"/>
+ <point x="253" y="279"/>
+ <point x="174" y="401" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="162" y="32"/>
+ <point x="321" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="867" y="-25"/>
+ <point x="1163" y="169"/>
+ <point x="1163" y="471" type="curve" smooth="yes"/>
+ <point x="1163" y="644"/>
+ <point x="999" y="751"/>
+ <point x="882" y="772" type="curve"/>
+ <point x="1076" y="817"/>
+ <point x="1296" y="963"/>
+ <point x="1296" y="1172" type="curve" smooth="yes"/>
+ <point x="1296" y="1348"/>
+ <point x="1112" y="1470"/>
+ <point x="856" y="1470" type="curve" smooth="yes"/>
+ <point x="689" y="1470"/>
+ <point x="529" y="1402"/>
+ <point x="427" y="1312" type="curve"/>
+ <point x="405" y="1084" type="line"/>
+ <point x="546" y="1199"/>
+ <point x="664" y="1237"/>
+ <point x="818" y="1237" type="curve" smooth="yes"/>
+ <point x="928" y="1237"/>
+ <point x="1001" y="1178"/>
+ <point x="1001" y="1100" type="curve" smooth="yes"/>
+ <point x="1001" y="975"/>
+ <point x="819" y="876"/>
+ <point x="638" y="876" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..001d438
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1094" y="257" type="line"/>
+ <point x="1010" y="244"/>
+ <point x="942" y="243"/>
+ <point x="745" y="243" type="curve" smooth="yes"/>
+ <point x="480" y="243" type="line"/>
+ <point x="875" y="492"/>
+ <point x="1255" y="786"/>
+ <point x="1255" y="1125" type="curve" smooth="yes"/>
+ <point x="1255" y="1324"/>
+ <point x="1106" y="1470"/>
+ <point x="846" y="1470" type="curve" smooth="yes"/>
+ <point x="667" y="1470"/>
+ <point x="472" y="1388"/>
+ <point x="363" y="1277" type="curve"/>
+ <point x="374" y="1039" type="line"/>
+ <point x="489" y="1146"/>
+ <point x="646" y="1223"/>
+ <point x="762" y="1223" type="curve" smooth="yes"/>
+ <point x="890" y="1223"/>
+ <point x="949" y="1138"/>
+ <point x="949" y="1040" type="curve" smooth="yes"/>
+ <point x="949" y="805"/>
+ <point x="500" y="440"/>
+ <point x="104" y="218" type="curve"/>
+ <point x="50" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..895a8e4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="959" y="683" type="curve" smooth="yes"/>
+ <point x="873" y="339"/>
+ <point x="762" y="203"/>
+ <point x="600" y="203" type="curve" smooth="yes"/>
+ <point x="469" y="203"/>
+ <point x="432" y="294"/>
+ <point x="432" y="454" type="curve" smooth="yes"/>
+ <point x="432" y="537"/>
+ <point x="447" y="630"/>
+ <point x="478" y="755" type="curve" smooth="yes"/>
+ <point x="564" y="1099"/>
+ <point x="676" y="1242"/>
+ <point x="839" y="1242" type="curve" smooth="yes"/>
+ <point x="971" y="1242"/>
+ <point x="1010" y="1140"/>
+ <point x="1010" y="992" type="curve" smooth="yes"/>
+ <point x="1010" y="907"/>
+ <point x="991" y="811"/>
+ </contour>
+ <contour>
+ <point x="1246" y="689" type="curve" smooth="yes"/>
+ <point x="1281" y="828"/>
+ <point x="1298" y="927"/>
+ <point x="1298" y="1028" type="curve" smooth="yes"/>
+ <point x="1298" y="1317"/>
+ <point x="1158" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="587" y="1470"/>
+ <point x="329" y="1302"/>
+ <point x="190" y="745" type="curve" smooth="yes"/>
+ <point x="157" y="611"/>
+ <point x="141" y="516"/>
+ <point x="141" y="420" type="curve" smooth="yes"/>
+ <point x="141" y="131"/>
+ <point x="292" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="854" y="-25"/>
+ <point x="1103" y="115"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..0b8bdfc
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="879" y="1584" type="line"/>
+ <point x="679" y="780" type="line"/>
+ <point x="634" y="719" type="line"/>
+ <point x="400" y="-218" type="line"/>
+ <point x="576" y="-218" type="line"/>
+ <point x="795" y="661" type="line"/>
+ <point x="842" y="727" type="line"/>
+ <point x="1055" y="1584" type="line"/>
+ </contour>
+ <contour>
+ <point x="1250" y="1303" type="line"/>
+ <point x="1145" y="1355"/>
+ <point x="1026" y="1375"/>
+ <point x="885" y="1375" type="curve" smooth="yes"/>
+ <point x="537" y="1375"/>
+ <point x="345" y="1216"/>
+ <point x="345" y="984" type="curve" smooth="yes"/>
+ <point x="345" y="841"/>
+ <point x="441" y="726"/>
+ <point x="638" y="622" type="curve" smooth="yes"/>
+ <point x="832" y="519"/>
+ <point x="881" y="451"/>
+ <point x="881" y="381" type="curve" smooth="yes"/>
+ <point x="881" y="274"/>
+ <point x="817" y="209"/>
+ <point x="613" y="209" type="curve" smooth="yes"/>
+ <point x="462" y="209"/>
+ <point x="336" y="298"/>
+ <point x="259" y="389" type="curve"/>
+ <point x="133" y="143" type="line"/>
+ <point x="243" y="56"/>
+ <point x="378" y="0"/>
+ <point x="566" y="0" type="curve" smooth="yes"/>
+ <point x="879" y="0"/>
+ <point x="1120" y="142"/>
+ <point x="1120" y="396" type="curve" smooth="yes"/>
+ <point x="1120" y="562"/>
+ <point x="1028" y="682"/>
+ <point x="817" y="803" type="curve" smooth="yes"/>
+ <point x="635" y="908"/>
+ <point x="592" y="958"/>
+ <point x="592" y="1016" type="curve" smooth="yes"/>
+ <point x="592" y="1113"/>
+ <point x="649" y="1176"/>
+ <point x="826" y="1176" type="curve" smooth="yes"/>
+ <point x="954" y="1176"/>
+ <point x="1048" y="1135"/>
+ <point x="1134" y="1066" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..f7581b6
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="645" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..0461eab
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="168" y="436" type="line"/>
+ <point x="1128" y="436" type="line"/>
+ <point x="1180" y="643" type="line"/>
+ <point x="220" y="643" type="line"/>
+ </contour>
+ <contour>
+ <point x="259" y="802" type="line"/>
+ <point x="1219" y="802" type="line"/>
+ <point x="1271" y="1010" type="line"/>
+ <point x="311" y="1010" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..167f45e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="760"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="593" y="495" type="line"/>
+ <point x="670" y="782"/>
+ <point x="736" y="1065"/>
+ <point x="882" y="1495" type="curve"/>
+ <point x="547" y="1495" type="line"/>
+ <point x="478" y="1065"/>
+ <point x="402" y="782"/>
+ <point x="338" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="201" y="116" type="curve" smooth="yes"/>
+ <point x="201" y="35"/>
+ <point x="262" y="-25"/>
+ <point x="348" y="-25" type="curve" smooth="yes"/>
+ <point x="466" y="-25"/>
+ <point x="561" y="71"/>
+ <point x="561" y="181" type="curve" smooth="yes"/>
+ <point x="561" y="261"/>
+ <point x="502" y="322"/>
+ <point x="415" y="322" type="curve" smooth="yes"/>
+ <point x="298" y="322"/>
+ <point x="201" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..cfedcd4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="690"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..6dab866
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="243" type="line"/>
+ <point x="1186" y="629" type="line"/>
+ <point x="1233" y="817" type="line"/>
+ <point x="369" y="1203" type="line"/>
+ <point x="313" y="975" type="line"/>
+ <point x="930" y="733" type="line"/>
+ <point x="187" y="470" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..f745b6a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="620"/>
+ <unicode hex="0060"/>
+ <anchor x="848" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="265" y="1584" type="line"/>
+ <point x="587" y="1188" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ <point x="595" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..810f855
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="655" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="139" y="520" type="line"/>
+ <point x="879" y="520" type="line"/>
+ <point x="931" y="728" type="line"/>
+ <point x="191" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..d8ce949
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="875"/>
+ <unicode hex="002D"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="149" y="520" type="line"/>
+ <point x="884" y="520" type="line"/>
+ <point x="936" y="728" type="line"/>
+ <point x="201" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..2f651fa
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="875"/>
+ <unicode hex="00AD"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..b2883d3
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1127" y="470" type="line"/>
+ <point x="510" y="713" type="line"/>
+ <point x="1253" y="975" type="line"/>
+ <point x="1309" y="1203" type="line"/>
+ <point x="253" y="817" type="line"/>
+ <point x="206" y="629" type="line"/>
+ <point x="1070" y="243" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..c92f889
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="790" y="-177" type="line"/>
+ <point x="717" y="-149"/>
+ <point x="597" y="-129"/>
+ <point x="597" y="-79" type="curve" smooth="yes"/>
+ <point x="597" y="16"/>
+ <point x="695" y="378"/>
+ <point x="695" y="435" type="curve" smooth="yes"/>
+ <point x="695" y="476"/>
+ <point x="574" y="568"/>
+ <point x="574" y="605" type="curve" smooth="yes"/>
+ <point x="574" y="644"/>
+ <point x="742" y="733"/>
+ <point x="776" y="777" type="curve" smooth="yes"/>
+ <point x="803" y="812"/>
+ <point x="908" y="1276"/>
+ <point x="953" y="1317" type="curve" smooth="yes"/>
+ <point x="975" y="1337"/>
+ <point x="1090" y="1376"/>
+ <point x="1157" y="1395" type="curve"/>
+ <point x="1165" y="1624" type="line"/>
+ <point x="1031" y="1597"/>
+ <point x="827" y="1546"/>
+ <point x="768" y="1500" type="curve" smooth="yes"/>
+ <point x="677" y="1428"/>
+ <point x="542" y="843"/>
+ <point x="512" y="812" type="curve" smooth="yes"/>
+ <point x="472" y="770"/>
+ <point x="260" y="659"/>
+ <point x="260" y="601" type="curve" smooth="yes"/>
+ <point x="260" y="540"/>
+ <point x="412" y="434"/>
+ <point x="412" y="399" type="curve" smooth="yes"/>
+ <point x="412" y="337"/>
+ <point x="311" y="-52"/>
+ <point x="311" y="-216" type="curve" smooth="yes"/>
+ <point x="311" y="-248"/>
+ <point x="315" y="-271"/>
+ <point x="324" y="-282" type="curve" smooth="yes"/>
+ <point x="362" y="-330"/>
+ <point x="554" y="-379"/>
+ <point x="683" y="-406" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..42e4531
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="899" y="1624" type="line"/>
+ <point x="586" y="1430"/>
+ <point x="317" y="1081"/>
+ <point x="209" y="649" type="curve" smooth="yes"/>
+ <point x="177" y="521"/>
+ <point x="161" y="397"/>
+ <point x="161" y="277" type="curve" smooth="yes"/>
+ <point x="161" y="20"/>
+ <point x="234" y="-214"/>
+ <point x="373" y="-406" type="curve"/>
+ <point x="565" y="-198" type="line"/>
+ <point x="479" y="-42"/>
+ <point x="436" y="130"/>
+ <point x="436" y="315" type="curve" smooth="yes"/>
+ <point x="436" y="422"/>
+ <point x="450" y="534"/>
+ <point x="479" y="649" type="curve" smooth="yes"/>
+ <point x="559" y="972"/>
+ <point x="715" y="1216"/>
+ <point x="966" y="1411" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..db76a2d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="553" y="-406" type="line"/>
+ <point x="605" y="-198" type="line"/>
+ <point x="365" y="-198" type="line"/>
+ <point x="753" y="1376" type="line"/>
+ <point x="993" y="1376" type="line"/>
+ <point x="1044" y="1584" type="line"/>
+ <point x="524" y="1584" type="line"/>
+ <point x="33" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..de8a991
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-146" y="-347" type="line"/>
+ <point x="1127" y="-347" type="line"/>
+ <point x="1179" y="-139" type="line"/>
+ <point x="-94" y="-139" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..592502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1465"/>
+ <unicode hex="0041"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1338" y="0" type="line"/>
+ <point x="1322" y="79"/>
+ <point x="1312" y="166"/>
+ <point x="1295" y="351" type="curve" smooth="yes"/>
+ <point x="1198" y="1445" type="line"/>
+ <point x="842" y="1445" type="line"/>
+ <point x="199" y="351" type="line" smooth="yes"/>
+ <point x="89" y="164"/>
+ <point x="37" y="80"/>
+ <point x="-18" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="487" y="351" type="line"/>
+ <point x="1031" y="351" type="line"/>
+ </contour>
+ <contour>
+ <point x="973" y="1216" type="line"/>
+ <point x="1016" y="564" type="line"/>
+ <point x="606" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..17600b4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1465"/>
+ <unicode hex="00C4"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1176" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1419" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..2b14150
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1367"/>
+ <unicode hex="0042"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="698" y="1236" type="line"/>
+ <point x="735" y="1237"/>
+ <point x="791" y="1240"/>
+ <point x="860" y="1240" type="curve" smooth="yes"/>
+ <point x="1021" y="1240"/>
+ <point x="1101" y="1179"/>
+ <point x="1101" y="1087" type="curve" smooth="yes"/>
+ <point x="1101" y="932"/>
+ <point x="962" y="866"/>
+ <point x="770" y="866" type="curve" smooth="yes"/>
+ <point x="605" y="866" type="line"/>
+ </contour>
+ <contour>
+ <point x="217" y="450" type="line"/>
+ <point x="168" y="254"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="161" y="-3"/>
+ <point x="368" y="-10"/>
+ <point x="598" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1298" y="206"/>
+ <point x="1298" y="508" type="curve" smooth="yes"/>
+ <point x="1298" y="673"/>
+ <point x="1188" y="759"/>
+ <point x="1072" y="792" type="curve"/>
+ <point x="1254" y="848"/>
+ <point x="1388" y="956"/>
+ <point x="1388" y="1155" type="curve" smooth="yes"/>
+ <point x="1388" y="1359"/>
+ <point x="1181" y="1455"/>
+ <point x="897" y="1455" type="curve" smooth="yes"/>
+ <point x="704" y="1455"/>
+ <point x="549" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="399" y="1182"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="552" y="651" type="line"/>
+ <point x="745" y="651" type="line" smooth="yes"/>
+ <point x="927" y="651"/>
+ <point x="1019" y="577"/>
+ <point x="1019" y="468" type="curve" smooth="yes"/>
+ <point x="1019" y="295"/>
+ <point x="879" y="213"/>
+ <point x="675" y="213" type="curve" smooth="yes"/>
+ <point x="575" y="213"/>
+ <point x="476" y="216"/>
+ <point x="444" y="218" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..569eba9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1357"/>
+ <unicode hex="0043"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1286" y="391" type="line"/>
+ <point x="1149" y="280"/>
+ <point x="966" y="218"/>
+ <point x="816" y="218" type="curve" smooth="yes"/>
+ <point x="594" y="218"/>
+ <point x="472" y="349"/>
+ <point x="472" y="588" type="curve" smooth="yes"/>
+ <point x="472" y="922"/>
+ <point x="690" y="1230"/>
+ <point x="1039" y="1230" type="curve" smooth="yes"/>
+ <point x="1170" y="1230"/>
+ <point x="1298" y="1188"/>
+ <point x="1385" y="1093" type="curve"/>
+ <point x="1515" y="1331" type="line"/>
+ <point x="1408" y="1418"/>
+ <point x="1247" y="1470"/>
+ <point x="1073" y="1470" type="curve" smooth="yes"/>
+ <point x="545" y="1470"/>
+ <point x="191" y="1032"/>
+ <point x="191" y="544" type="curve" smooth="yes"/>
+ <point x="191" y="210"/>
+ <point x="404" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="921" y="-25"/>
+ <point x="1124" y="27"/>
+ <point x="1271" y="124" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..093d346
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1465"/>
+ <unicode hex="0044"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="1122" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="217" y="450" type="line" smooth="yes"/>
+ <point x="167" y="251"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="431" y="-10"/>
+ <point x="566" y="-10" type="curve" smooth="yes"/>
+ <point x="1036" y="-10"/>
+ <point x="1361" y="195"/>
+ <point x="1471" y="648" type="curve" smooth="yes"/>
+ <point x="1494" y="742"/>
+ <point x="1505" y="827"/>
+ <point x="1505" y="902" type="curve" smooth="yes"/>
+ <point x="1505" y="1325"/>
+ <point x="1172" y="1455"/>
+ <point x="912" y="1455" type="curve" smooth="yes"/>
+ <point x="769" y="1455"/>
+ <point x="540" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1371"/>
+ <point x="404" y="1205"/>
+ <point x="359" y="1024" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1229" type="line"/>
+ <point x="738" y="1231"/>
+ <point x="809" y="1234"/>
+ <point x="864" y="1234" type="curve" smooth="yes"/>
+ <point x="1077" y="1234"/>
+ <point x="1212" y="1104"/>
+ <point x="1212" y="871" type="curve" smooth="yes"/>
+ <point x="1212" y="805"/>
+ <point x="1201" y="731"/>
+ <point x="1181" y="647" type="curve" smooth="yes"/>
+ <point x="1108" y="346"/>
+ <point x="930" y="219"/>
+ <point x="647" y="219" type="curve" smooth="yes"/>
+ <point x="568" y="219"/>
+ <point x="485" y="225"/>
+ <point x="447" y="229" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8e7a0a1
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1192"/>
+ <unicode hex="0045"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="944" y="0" name="O"/>
+ <anchor x="1487" y="1200" name="R"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="605" y="866" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1315" y="1217" type="line"/>
+ <point x="1372" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1042" y="0" type="line"/>
+ <point x="1102" y="243" type="line"/>
+ <point x="1021" y="229"/>
+ <point x="895" y="228"/>
+ <point x="704" y="228" type="curve" smooth="yes"/>
+ <point x="446" y="228" type="line"/>
+ <point x="550" y="644" type="line"/>
+ <point x="1097" y="644" type="line"/>
+ <point x="1152" y="866" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..df3370c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1180"/>
+ <unicode hex="0046"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="952" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="602" y="851" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1333" y="1217" type="line"/>
+ <point x="1390" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="405" y="1205"/>
+ <point x="356" y="1010" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="407" y="72"/>
+ <point x="444" y="220"/>
+ <point x="490" y="404" type="curve" smooth="yes"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1101" y="629" type="line"/>
+ <point x="1157" y="851" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..7d36953
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1452"/>
+ <unicode hex="0047"/>
+ <anchor x="747" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="1129" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="767" type="line"/>
+ <point x="910" y="767" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="1170" y="544" type="line"/>
+ <point x="1104" y="271" type="line"/>
+ <point x="1015" y="231"/>
+ <point x="916" y="218"/>
+ <point x="805" y="218" type="curve" smooth="yes"/>
+ <point x="593" y="218"/>
+ <point x="475" y="352"/>
+ <point x="475" y="567" type="curve" smooth="yes"/>
+ <point x="475" y="633"/>
+ <point x="484" y="708"/>
+ <point x="505" y="789" type="curve" smooth="yes"/>
+ <point x="581" y="1079"/>
+ <point x="802" y="1230"/>
+ <point x="1067" y="1230" type="curve" smooth="yes"/>
+ <point x="1220" y="1230"/>
+ <point x="1334" y="1193"/>
+ <point x="1449" y="1096" type="curve"/>
+ <point x="1594" y="1332" type="line"/>
+ <point x="1447" y="1437"/>
+ <point x="1275" y="1470"/>
+ <point x="1094" y="1470" type="curve" smooth="yes"/>
+ <point x="709" y="1470"/>
+ <point x="345" y="1257"/>
+ <point x="227" y="783" type="curve" smooth="yes"/>
+ <point x="205" y="694"/>
+ <point x="194" y="611"/>
+ <point x="194" y="534" type="curve" smooth="yes"/>
+ <point x="194" y="176"/>
+ <point x="419" y="-25"/>
+ <point x="768" y="-25" type="curve" smooth="yes"/>
+ <point x="940" y="-25"/>
+ <point x="1105" y="10"/>
+ <point x="1325" y="133" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..a49f5fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1495"/>
+ <unicode hex="0048"/>
+ <anchor x="245" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="1445" type="line"/>
+ <point x="1192" y="851" type="line"/>
+ <point x="602" y="851" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="408" y="1215"/>
+ <point x="359" y="1020" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="162" y="231"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="390" y="0"/>
+ <point x="390" y="0" type="curve"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1136" y="629" type="line"/>
+ <point x="980" y="0" type="line"/>
+ <point x="980" y="0"/>
+ <point x="1280" y="0"/>
+ <point x="1280" y="0" type="curve"/>
+ <point x="1284" y="79"/>
+ <point x="1322" y="231"/>
+ <point x="1371" y="426" type="curve" smooth="yes"/>
+ <point x="1519" y="1020" type="line" smooth="yes"/>
+ <point x="1567" y="1215"/>
+ <point x="1605" y="1366"/>
+ <point x="1640" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..fc059de
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1025"/>
+ <unicode hex="0049"/>
+ <anchor x="460" y="0" name="H"/>
+ <anchor x="431" y="-100" name="L"/>
+ <anchor x="652" y="0" name="O"/>
+ <anchor x="1254" y="1200" name="R"/>
+ <anchor x="842" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="430" y="1445" type="line"/>
+ <point x="379" y="1242" type="line"/>
+ <point x="619" y="1242" type="line"/>
+ <point x="360" y="203" type="line"/>
+ <point x="120" y="203" type="line"/>
+ <point x="70" y="0" type="line"/>
+ <point x="835" y="0" type="line"/>
+ <point x="885" y="203" type="line"/>
+ <point x="645" y="203" type="line"/>
+ <point x="904" y="1242" type="line"/>
+ <point x="1144" y="1242" type="line"/>
+ <point x="1195" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..6a3a604
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1010"/>
+ <unicode hex="004A"/>
+ <anchor x="330" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="855" y="1445" type="line"/>
+ <point x="842" y="1340"/>
+ <point x="799" y="1163"/>
+ <point x="751" y="970" type="curve" smooth="yes"/>
+ <point x="647" y="552" type="line" smooth="yes"/>
+ <point x="602" y="370"/>
+ <point x="516" y="225"/>
+ <point x="341" y="225" type="curve" smooth="yes"/>
+ <point x="260" y="225"/>
+ <point x="159" y="267"/>
+ <point x="104" y="344" type="curve"/>
+ <point x="-8" y="89" type="line"/>
+ <point x="51" y="19"/>
+ <point x="191" y="-25"/>
+ <point x="326" y="-25" type="curve" smooth="yes"/>
+ <point x="611" y="-25"/>
+ <point x="826" y="128"/>
+ <point x="927" y="530" type="curve" smooth="yes"/>
+ <point x="947" y="612"/>
+ <point x="1155" y="1445"/>
+ <point x="1155" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..44d4d68
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1410"/>
+ <unicode hex="004B"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="390" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1445" type="line"/>
+ <point x="461" y="697" type="line"/>
+ <point x="634" y="738" type="line"/>
+ <point x="758" y="724" type="line"/>
+ <point x="1580" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="509" y="724" type="line"/>
+ <point x="950" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="738" y="801" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..f8d6959
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1110"/>
+ <unicode hex="004C"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="890" y="1200" name="R"/>
+ <anchor x="942" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="446" y="228" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1085" y="243" type="line"/>
+ <point x="1005" y="229"/>
+ <point x="851" y="228"/>
+ <point x="662" y="228" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..67d1463
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1835"/>
+ <unicode hex="004D"/>
+ <anchor x="830" y="-100" name="L"/>
+ <anchor x="1237" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="919" y="272" type="line"/>
+ <point x="865" y="1445" type="line"/>
+ <point x="615" y="1445" type="line"/>
+ <point x="664" y="1158" type="line"/>
+ <point x="710" y="0" type="line"/>
+ <point x="1005" y="0" type="line"/>
+ <point x="1625" y="1158" type="line"/>
+ <point x="1817" y="1445" type="line"/>
+ <point x="1550" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="520" y="1445" type="line"/>
+ <point x="520" y="1445"/>
+ <point x="164" y="196"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="360" y="0" type="line"/>
+ <point x="686" y="1193" type="line"/>
+ <point x="785" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1630" y="0" type="line"/>
+ <point x="1649" y="196"/>
+ <point x="1910" y="1445"/>
+ <point x="1910" y="1445" type="curve"/>
+ <point x="1640" y="1445" type="line"/>
+ <point x="1622" y="1193" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..838490a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1525"/>
+ <unicode hex="004E"/>
+ <anchor x="1180" y="0" name="H"/>
+ <anchor x="680" y="-100" name="L"/>
+ <anchor x="1087" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="506" y="1297" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="1253" y="148" type="line"/>
+ <point x="725" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1035" y="0" type="line"/>
+ <point x="1305" y="0" type="line"/>
+ <point x="1558" y="1015" type="line" smooth="yes"/>
+ <point x="1606" y="1210"/>
+ <point x="1646" y="1366"/>
+ <point x="1680" y="1445" type="curve"/>
+ <point x="1395" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="725" y="1445" type="line"/>
+ <point x="440" y="1445" type="line"/>
+ <point x="434" y="1366"/>
+ <point x="396" y="1210"/>
+ <point x="348" y="1015" type="curve" smooth="yes"/>
+ <point x="202" y="431" type="line" smooth="yes"/>
+ <point x="153" y="236"/>
+ <point x="113" y="79"/>
+ <point x="80" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..4410e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1480"/>
+ <unicode hex="004F"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="916" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1062" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="754" y="218" type="curve" smooth="yes"/>
+ <point x="580" y="218"/>
+ <point x="471" y="345"/>
+ <point x="471" y="568" type="curve" smooth="yes"/>
+ <point x="471" y="922"/>
+ <point x="664" y="1228"/>
+ <point x="966" y="1228" type="curve" smooth="yes"/>
+ <point x="1134" y="1228"/>
+ <point x="1237" y="1106"/>
+ <point x="1237" y="891" type="curve" smooth="yes"/>
+ <point x="1237" y="540"/>
+ <point x="1060" y="218"/>
+ </contour>
+ <contour>
+ <point x="1519" y="911" type="curve" smooth="yes"/>
+ <point x="1519" y="1249"/>
+ <point x="1350" y="1470"/>
+ <point x="1026" y="1470" type="curve" smooth="yes"/>
+ <point x="510" y="1470"/>
+ <point x="191" y="1010"/>
+ <point x="191" y="539" type="curve" smooth="yes"/>
+ <point x="191" y="199"/>
+ <point x="401" y="-25"/>
+ <point x="693" y="-25" type="curve" smooth="yes"/>
+ <point x="1121" y="-25"/>
+ <point x="1519" y="337"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..b0d40c0
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1255"/>
+ <unicode hex="0050"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="970" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="519" y="518" type="line"/>
+ <point x="582" y="511"/>
+ <point x="661" y="508"/>
+ <point x="734" y="508" type="curve" smooth="yes"/>
+ <point x="1118" y="508"/>
+ <point x="1393" y="718"/>
+ <point x="1393" y="1076" type="curve" smooth="yes"/>
+ <point x="1393" y="1306"/>
+ <point x="1215" y="1455"/>
+ <point x="940" y="1455" type="curve" smooth="yes"/>
+ <point x="727" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="164" y="237"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="235"/>
+ <point x="497" y="431" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="752" y="1231"/>
+ <point x="781" y="1233"/>
+ <point x="849" y="1233" type="curve" smooth="yes"/>
+ <point x="1020" y="1233"/>
+ <point x="1103" y="1135"/>
+ <point x="1103" y="1020" type="curve" smooth="yes"/>
+ <point x="1103" y="827"/>
+ <point x="965" y="723"/>
+ <point x="758" y="723" type="curve" smooth="yes"/>
+ <point x="696" y="723"/>
+ <point x="614" y="726"/>
+ <point x="572" y="733" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..7013e5f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1488"/>
+ <unicode hex="0051"/>
+ <anchor x="619" y="-270" name="L"/>
+ <anchor x="1069" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1527" y="922" type="curve" smooth="yes"/>
+ <point x="1527" y="1259"/>
+ <point x="1324" y="1470"/>
+ <point x="1029" y="1470" type="curve" smooth="yes"/>
+ <point x="663" y="1470"/>
+ <point x="339" y="1229"/>
+ <point x="221" y="755" type="curve" smooth="yes"/>
+ <point x="201" y="673"/>
+ <point x="191" y="597"/>
+ <point x="191" y="526" type="curve" smooth="yes"/>
+ <point x="191" y="185"/>
+ <point x="410" y="-25"/>
+ <point x="696" y="-25" type="curve" smooth="yes"/>
+ <point x="743" y="-25"/>
+ <point x="787" y="-23"/>
+ <point x="838" y="-15" type="curve"/>
+ <point x="907" y="-15"/>
+ <point x="1162" y="-221"/>
+ <point x="1246" y="-221" type="curve" smooth="yes"/>
+ <point x="1310" y="-221"/>
+ <point x="1422" y="-74"/>
+ <point x="1468" y="-22" type="curve"/>
+ <point x="1331" y="-6"/>
+ <point x="1227" y="60"/>
+ <point x="1115" y="134" type="curve"/>
+ <point x="1312" y="242"/>
+ <point x="1527" y="566"/>
+ </contour>
+ <contour>
+ <point x="757" y="218" type="curve" smooth="yes"/>
+ <point x="563" y="218"/>
+ <point x="471" y="355"/>
+ <point x="471" y="558" type="curve" smooth="yes"/>
+ <point x="471" y="912"/>
+ <point x="677" y="1228"/>
+ <point x="969" y="1228" type="curve" smooth="yes"/>
+ <point x="1147" y="1228"/>
+ <point x="1246" y="1106"/>
+ <point x="1246" y="891" type="curve" smooth="yes"/>
+ <point x="1246" y="560"/>
+ <point x="1053" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..9133fd2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1360"/>
+ <unicode hex="0052"/>
+ <anchor x="630" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="982" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="534" y="579" type="line"/>
+ <point x="749" y="579" type="line" smooth="yes"/>
+ <point x="1071" y="579"/>
+ <point x="1378" y="761"/>
+ <point x="1378" y="1117" type="curve" smooth="yes"/>
+ <point x="1378" y="1332"/>
+ <point x="1199" y="1455"/>
+ <point x="932" y="1455" type="curve" smooth="yes"/>
+ <point x="698" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line"/>
+ <point x="164" y="236"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="236"/>
+ <point x="497" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="749" y="1231"/>
+ <point x="764" y="1233"/>
+ <point x="842" y="1233" type="curve" smooth="yes"/>
+ <point x="995" y="1233"/>
+ <point x="1089" y="1167"/>
+ <point x="1089" y="1060" type="curve" smooth="yes"/>
+ <point x="1089" y="899"/>
+ <point x="956" y="792"/>
+ <point x="782" y="792" type="curve" smooth="yes"/>
+ <point x="587" y="792" type="line"/>
+ </contour>
+ <contour>
+ <point x="652" y="629" type="line"/>
+ <point x="915" y="0" type="line"/>
+ <point x="1270" y="0" type="line"/>
+ <point x="1220" y="72"/>
+ <point x="962" y="623"/>
+ <point x="936" y="680" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..79fe933
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1223"/>
+ <unicode hex="0053"/>
+ <anchor x="556" y="0" name="H"/>
+ <anchor x="531" y="-100" name="L"/>
+ <anchor x="938" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1339" y="1361" type="line"/>
+ <point x="1232" y="1430"/>
+ <point x="1086" y="1470"/>
+ <point x="916" y="1470" type="curve" smooth="yes"/>
+ <point x="600" y="1470"/>
+ <point x="332" y="1333"/>
+ <point x="332" y="1053" type="curve" smooth="yes"/>
+ <point x="332" y="889"/>
+ <point x="413" y="800"/>
+ <point x="621" y="658" type="curve" smooth="yes"/>
+ <point x="829" y="516"/>
+ <point x="885" y="448"/>
+ <point x="885" y="374" type="curve" smooth="yes"/>
+ <point x="885" y="276"/>
+ <point x="772" y="218"/>
+ <point x="624" y="218" type="curve" smooth="yes"/>
+ <point x="463" y="218"/>
+ <point x="270" y="340"/>
+ <point x="184" y="461" type="curve"/>
+ <point x="67" y="189" type="line"/>
+ <point x="147" y="91"/>
+ <point x="394" y="-25"/>
+ <point x="573" y="-25" type="curve" smooth="yes"/>
+ <point x="923" y="-25"/>
+ <point x="1182" y="124"/>
+ <point x="1182" y="419" type="curve" smooth="yes"/>
+ <point x="1182" y="584"/>
+ <point x="1077" y="682"/>
+ <point x="881" y="831" type="curve" smooth="yes"/>
+ <point x="728" y="947"/>
+ <point x="628" y="1010"/>
+ <point x="628" y="1082" type="curve" smooth="yes"/>
+ <point x="628" y="1198"/>
+ <point x="790" y="1230"/>
+ <point x="877" y="1230" type="curve" smooth="yes"/>
+ <point x="1018" y="1230"/>
+ <point x="1119" y="1189"/>
+ <point x="1228" y="1099" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..b7aa4cd
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1255"/>
+ <unicode hex="0054"/>
+ <anchor x="572" y="0" name="H"/>
+ <anchor x="547" y="-100" name="L"/>
+ <anchor x="954" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="1445" type="line"/>
+ <point x="283" y="1198" type="line"/>
+ <point x="359" y="1215"/>
+ <point x="439" y="1218"/>
+ <point x="519" y="1218" type="curve" smooth="yes"/>
+ <point x="731" y="1218" type="line"/>
+ <point x="529" y="409" type="line" smooth="yes"/>
+ <point x="483" y="224"/>
+ <point x="443" y="75"/>
+ <point x="408" y="0" type="curve"/>
+ <point x="733" y="0" type="line"/>
+ <point x="734" y="75"/>
+ <point x="768" y="224"/>
+ <point x="814" y="409" type="curve" smooth="yes"/>
+ <point x="1016" y="1218" type="line"/>
+ <point x="1232" y="1218" type="line" smooth="yes"/>
+ <point x="1313" y="1218"/>
+ <point x="1390" y="1215"/>
+ <point x="1458" y="1198" type="curve"/>
+ <point x="1520" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..a01a283
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1470"/>
+ <unicode hex="0055"/>
+ <anchor x="672" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="890" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1315" y="1445" type="line"/>
+ <point x="1093" y="554" type="line" smooth="yes"/>
+ <point x="1040" y="341"/>
+ <point x="952" y="202"/>
+ <point x="735" y="202" type="curve" smooth="yes"/>
+ <point x="572" y="202"/>
+ <point x="515" y="305"/>
+ <point x="515" y="435" type="curve" smooth="yes"/>
+ <point x="515" y="482"/>
+ <point x="523" y="533"/>
+ <point x="535" y="583" type="curve" smooth="yes"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="249" y="570" type="line" smooth="yes"/>
+ <point x="235" y="512"/>
+ <point x="228" y="457"/>
+ <point x="228" y="404" type="curve" smooth="yes"/>
+ <point x="228" y="155"/>
+ <point x="385" y="-25"/>
+ <point x="698" y="-25" type="curve" smooth="yes"/>
+ <point x="1063" y="-25"/>
+ <point x="1275" y="148"/>
+ <point x="1356" y="470" type="curve" smooth="yes"/>
+ <point x="1493" y="1015" type="line" smooth="yes"/>
+ <point x="1544" y="1220"/>
+ <point x="1582" y="1366"/>
+ <point x="1615" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..07a71af
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1445"/>
+ <unicode hex="0056"/>
+ <anchor x="670" y="0" name="H"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="870" y="0" name="O"/>
+ <anchor x="1044" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1405" y="1445" type="line"/>
+ <point x="721" y="257" type="line"/>
+ <point x="620" y="1445" type="line"/>
+ <point x="325" y="1445" type="line"/>
+ <point x="339" y="1364"/>
+ <point x="354" y="1275"/>
+ <point x="375" y="1084" type="curve" smooth="yes"/>
+ <point x="495" y="0" type="line"/>
+ <point x="830" y="0" type="line"/>
+ <point x="1490" y="1084" type="line" smooth="yes"/>
+ <point x="1606" y="1276"/>
+ <point x="1664" y="1364"/>
+ <point x="1720" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..f0e3607
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2115"/>
+ <unicode hex="0057"/>
+ <anchor x="967" y="-100" name="L"/>
+ <anchor x="1374" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1430" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="2165" y="1084" type="line" smooth="yes"/>
+ <point x="2266" y="1277"/>
+ <point x="2318" y="1364"/>
+ <point x="2370" y="1445" type="curve"/>
+ <point x="2050" y="1445" type="line"/>
+ <point x="1432" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1220" y="1445" type="line"/>
+ <point x="1257" y="1292" type="line"/>
+ <point x="1280" y="0" type="line"/>
+ <point x="1450" y="0" type="line"/>
+ <point x="1492" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="540" y="0" type="line"/>
+ <point x="705" y="0" type="line"/>
+ <point x="1367" y="1292" type="line"/>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1210" y="1445" type="line"/>
+ <point x="542" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="630" y="1445" type="line"/>
+ <point x="330" y="1445" type="line"/>
+ <point x="341" y="1367"/>
+ <point x="349" y="1273"/>
+ <point x="355" y="1084" type="curve" smooth="yes"/>
+ <point x="390" y="0" type="line"/>
+ <point x="560" y="0" type="line"/>
+ <point x="602" y="129" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..633303c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1345"/>
+ <unicode hex="0058"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="930" y="0" type="line"/>
+ <point x="1240" y="0" type="line"/>
+ <point x="1199" y="81"/>
+ <point x="1172" y="125"/>
+ <point x="1096" y="333" type="curve" smooth="yes"/>
+ <point x="690" y="1445" type="line"/>
+ <point x="375" y="1445" type="line"/>
+ <point x="418" y="1362"/>
+ <point x="454" y="1304"/>
+ <point x="529" y="1099" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="768" y="938" type="line"/>
+ <point x="269" y="337" type="line" smooth="yes"/>
+ <point x="94" y="126"/>
+ <point x="44" y="85"/>
+ <point x="-40" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="790" y="603" type="line"/>
+ </contour>
+ <contour>
+ <point x="830" y="603" type="line"/>
+ <point x="1251" y="1099" type="line" smooth="yes"/>
+ <point x="1423" y="1302"/>
+ <point x="1492" y="1369"/>
+ <point x="1575" y="1445" type="curve"/>
+ <point x="1240" y="1445" type="line"/>
+ <point x="808" y="938" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..49af854
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1344"/>
+ <unicode hex="0059"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="325" y="1445" type="line"/>
+ <point x="400" y="1298"/>
+ <point x="438" y="1185"/>
+ <point x="482" y="1054" type="curve" smooth="yes"/>
+ <point x="653" y="554" type="line"/>
+ <point x="868" y="668" type="line"/>
+ <point x="637" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1282" y="1445" type="line"/>
+ <point x="668" y="668" type="line"/>
+ <point x="848" y="554" type="line"/>
+ <point x="1271" y="1054" type="line" smooth="yes"/>
+ <point x="1379" y="1183"/>
+ <point x="1459" y="1278"/>
+ <point x="1619" y="1445" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="0" type="line"/>
+ <point x="774" y="79"/>
+ <point x="813" y="236"/>
+ <point x="862" y="431" type="curve" smooth="yes"/>
+ <point x="926" y="688" type="line"/>
+ <point x="641" y="688" type="line"/>
+ <point x="577" y="431" type="line" smooth="yes"/>
+ <point x="528" y="236"/>
+ <point x="488" y="79"/>
+ <point x="455" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..0208140
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1185"/>
+ <unicode hex="0061"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="825" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1054" y="44"/>
+ <point x="1051" y="87"/>
+ <point x="1051" y="133" type="curve" smooth="yes"/>
+ <point x="1051" y="204"/>
+ <point x="1059" y="280"/>
+ <point x="1081" y="366" type="curve"/>
+ <point x="1128" y="557"/>
+ <point x="1156" y="665"/>
+ <point x="1170" y="722" type="curve"/>
+ <point x="1174" y="738"/>
+ <point x="1176" y="754"/>
+ <point x="1176" y="770" type="curve" smooth="yes"/>
+ <point x="1176" y="909"/>
+ <point x="1026" y="1030"/>
+ <point x="791" y="1030" type="curve" smooth="yes"/>
+ <point x="632" y="1030"/>
+ <point x="514" y="994"/>
+ <point x="389" y="940" type="curve"/>
+ <point x="363" y="859"/>
+ <point x="327" y="728"/>
+ <point x="315" y="684" type="curve"/>
+ <point x="452" y="765"/>
+ <point x="565" y="808"/>
+ <point x="673" y="808" type="curve" smooth="yes"/>
+ <point x="809" y="808"/>
+ <point x="885" y="760"/>
+ <point x="885" y="709" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="700"/>
+ <point x="883" y="696" type="curve" smooth="yes"/>
+ <point x="872" y="653" type="line"/>
+ <point x="831" y="652"/>
+ <point x="669" y="643"/>
+ <point x="598" y="636" type="curve" smooth="yes"/>
+ <point x="367" y="614"/>
+ <point x="109" y="474"/>
+ <point x="109" y="236" type="curve" smooth="yes"/>
+ <point x="109" y="97"/>
+ <point x="215" y="-25"/>
+ <point x="388" y="-25" type="curve" smooth="yes"/>
+ <point x="505" y="-25"/>
+ <point x="633" y="23"/>
+ <point x="773" y="134" type="curve"/>
+ <point x="773" y="78"/>
+ <point x="784" y="28"/>
+ <point x="790" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="797" y="351" type="line"/>
+ <point x="669" y="223"/>
+ <point x="590" y="203"/>
+ <point x="508" y="203" type="curve" smooth="yes"/>
+ <point x="438" y="203"/>
+ <point x="398" y="246"/>
+ <point x="398" y="299" type="curve" smooth="yes"/>
+ <point x="398" y="308"/>
+ <point x="399" y="317"/>
+ <point x="401" y="326" type="curve" smooth="yes"/>
+ <point x="417" y="391"/>
+ <point x="471" y="438"/>
+ <point x="612" y="452" type="curve" smooth="yes"/>
+ <point x="665" y="458"/>
+ <point x="786" y="469"/>
+ <point x="827" y="470" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..a91e18b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E1"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="899" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..c17afb1
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E2"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="916" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1155"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..af45db4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E4"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="947" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..2374c69
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E0"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="999" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..f8a7dcc
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E5"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="961" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..4a46027
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E3"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="860" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1215"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..92bd16b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1229"/>
+ <unicode hex="0062"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1405" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="482" y="432" type="line"/>
+ <point x="576" y="610"/>
+ <point x="726" y="787"/>
+ <point x="829" y="787" type="curve" smooth="yes"/>
+ <point x="911" y="787"/>
+ <point x="946" y="705"/>
+ <point x="946" y="590" type="curve" smooth="yes"/>
+ <point x="946" y="465"/>
+ <point x="897" y="350"/>
+ <point x="823" y="275" type="curve" smooth="yes"/>
+ <point x="769" y="221"/>
+ <point x="703" y="188"/>
+ <point x="631" y="188" type="curve" smooth="yes"/>
+ <point x="564" y="188"/>
+ <point x="502" y="202"/>
+ <point x="434" y="238" type="curve"/>
+ </contour>
+ <contour>
+ <point x="445" y="1585" type="line"/>
+ <point x="445" y="1439"/>
+ <point x="404" y="1242"/>
+ <point x="367" y="1095" type="curve" smooth="yes"/>
+ <point x="110" y="64" type="line"/>
+ <point x="252" y="16"/>
+ <point x="400" y="-25"/>
+ <point x="593" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="845" y="19"/>
+ <point x="942" y="91" type="curve" smooth="yes"/>
+ <point x="1122" y="224"/>
+ <point x="1229" y="453"/>
+ <point x="1229" y="672" type="curve" smooth="yes"/>
+ <point x="1229" y="906"/>
+ <point x="1138" y="1030"/>
+ <point x="985" y="1030" type="curve" smooth="yes"/>
+ <point x="822" y="1030"/>
+ <point x="684" y="906"/>
+ <point x="562" y="756" type="curve"/>
+ <point x="646" y="1095" type="line" smooth="yes"/>
+ <point x="686" y="1255"/>
+ <point x="725" y="1474"/>
+ <point x="725" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..62c096c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1019"/>
+ <unicode hex="0063"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="490" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="790" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1099" y="959" type="line"/>
+ <point x="1035" y="997"/>
+ <point x="928" y="1030"/>
+ <point x="796" y="1030" type="curve" smooth="yes"/>
+ <point x="446" y="1030"/>
+ <point x="150" y="774"/>
+ <point x="150" y="386" type="curve" smooth="yes"/>
+ <point x="150" y="137"/>
+ <point x="341" y="-25"/>
+ <point x="569" y="-25" type="curve" smooth="yes"/>
+ <point x="718" y="-25"/>
+ <point x="835" y="11"/>
+ <point x="927" y="69" type="curve"/>
+ <point x="937" y="311" type="line"/>
+ <point x="840" y="238"/>
+ <point x="755" y="203"/>
+ <point x="625" y="203" type="curve" smooth="yes"/>
+ <point x="494" y="203"/>
+ <point x="417" y="302"/>
+ <point x="417" y="416" type="curve" smooth="yes"/>
+ <point x="417" y="661"/>
+ <point x="588" y="802"/>
+ <point x="754" y="802" type="curve" smooth="yes"/>
+ <point x="857" y="802"/>
+ <point x="918" y="781"/>
+ <point x="993" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fa38d37
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="535" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1475" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="913" y="558" type="line"/>
+ <point x="861" y="438"/>
+ <point x="666" y="200"/>
+ <point x="560" y="200" type="curve" smooth="yes"/>
+ <point x="470" y="200"/>
+ <point x="427" y="263"/>
+ <point x="427" y="367" type="curve" smooth="yes"/>
+ <point x="427" y="480"/>
+ <point x="469" y="626"/>
+ <point x="554" y="714" type="curve" smooth="yes"/>
+ <point x="599" y="761"/>
+ <point x="657" y="792"/>
+ <point x="727" y="792" type="curve" smooth="yes"/>
+ <point x="820" y="792"/>
+ <point x="876" y="775"/>
+ <point x="957" y="731" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1144" y="1585" type="line"/>
+ <point x="1144" y="1471"/>
+ <point x="1116" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1020" y="935" type="line"/>
+ <point x="949" y="989"/>
+ <point x="845" y="1030"/>
+ <point x="756" y="1030" type="curve" smooth="yes"/>
+ <point x="630" y="1030"/>
+ <point x="518" y="987"/>
+ <point x="426" y="917" type="curve" smooth="yes"/>
+ <point x="250" y="784"/>
+ <point x="145" y="553"/>
+ <point x="145" y="341" type="curve" smooth="yes"/>
+ <point x="145" y="130"/>
+ <point x="258" y="-25"/>
+ <point x="448" y="-25" type="curve" smooth="yes"/>
+ <point x="597" y="-25"/>
+ <point x="785" y="145"/>
+ <point x="867" y="267" type="curve"/>
+ <point x="855" y="181"/>
+ <point x="855" y="72"/>
+ <point x="855" y="0" type="curve"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1126" y="23"/>
+ <point x="1125" y="63"/>
+ <point x="1125" y="100" type="curve" smooth="yes"/>
+ <point x="1125" y="200"/>
+ <point x="1142" y="340"/>
+ <point x="1185" y="520" type="curve" smooth="yes"/>
+ <point x="1345" y="1190" type="line" smooth="yes"/>
+ <point x="1387" y="1366"/>
+ <point x="1415" y="1490"/>
+ <point x="1415" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..49f5856
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1087"/>
+ <unicode hex="0065"/>
+ <anchor x="509" y="0" name="H"/>
+ <anchor x="555" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="752" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1013" y="303" type="line"/>
+ <point x="871" y="230"/>
+ <point x="739" y="198"/>
+ <point x="608" y="198" type="curve" smooth="yes"/>
+ <point x="459" y="198"/>
+ <point x="401" y="297"/>
+ <point x="401" y="428" type="curve" smooth="yes"/>
+ <point x="401" y="683"/>
+ <point x="552" y="822"/>
+ <point x="713" y="822" type="curve" smooth="yes"/>
+ <point x="811" y="822"/>
+ <point x="869" y="782"/>
+ <point x="869" y="720" type="curve" smooth="yes"/>
+ <point x="869" y="635"/>
+ <point x="777" y="580"/>
+ <point x="533" y="580" type="curve" smooth="yes"/>
+ <point x="461" y="580"/>
+ <point x="385" y="589"/>
+ <point x="283" y="610" type="curve"/>
+ <point x="283" y="437" type="line"/>
+ <point x="353" y="422"/>
+ <point x="487" y="413"/>
+ <point x="569" y="413" type="curve" smooth="yes"/>
+ <point x="935" y="413"/>
+ <point x="1125" y="583"/>
+ <point x="1125" y="774" type="curve" smooth="yes"/>
+ <point x="1125" y="922"/>
+ <point x="993" y="1030"/>
+ <point x="769" y="1030" type="curve" smooth="yes"/>
+ <point x="435" y="1030"/>
+ <point x="148" y="775"/>
+ <point x="148" y="388" type="curve" smooth="yes"/>
+ <point x="148" y="135"/>
+ <point x="332" y="-25"/>
+ <point x="556" y="-25" type="curve" smooth="yes"/>
+ <point x="712" y="-25"/>
+ <point x="835" y="2"/>
+ <point x="997" y="74" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..fd86bf3
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="859"/>
+ <unicode hex="0066"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="948" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="797" type="line"/>
+ <point x="915" y="797" type="line"/>
+ <point x="965" y="995" type="line"/>
+ <point x="230" y="995" type="line"/>
+ </contour>
+ <contour>
+ <point x="1189" y="1534" type="line"/>
+ <point x="1139" y="1572"/>
+ <point x="1040" y="1604"/>
+ <point x="966" y="1604" type="curve" smooth="yes"/>
+ <point x="719" y="1604"/>
+ <point x="535" y="1455"/>
+ <point x="460" y="1158" type="curve" smooth="yes"/>
+ <point x="416" y="983"/>
+ <point x="253" y="334"/>
+ <point x="232" y="0" type="curve"/>
+ <point x="542" y="0" type="line"/>
+ <point x="536" y="28"/>
+ <point x="533" y="66"/>
+ <point x="533" y="110" type="curve" smooth="yes"/>
+ <point x="533" y="213"/>
+ <point x="550" y="356"/>
+ <point x="581" y="489" type="curve" smooth="yes"/>
+ <point x="649" y="784"/>
+ <point x="682" y="926"/>
+ <point x="735" y="1147" type="curve" smooth="yes"/>
+ <point x="774" y="1309"/>
+ <point x="836" y="1373"/>
+ <point x="932" y="1373" type="curve" smooth="yes"/>
+ <point x="981" y="1373"/>
+ <point x="1043" y="1348"/>
+ <point x="1076" y="1309" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..c651c04
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1120"/>
+ <unicode hex="0067"/>
+ <anchor x="420" y="-465" name="H"/>
+ <anchor x="403" y="-535" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="782" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1027" y="-117" type="curve" smooth="yes"/>
+ <point x="1027" y="8"/>
+ <point x="938" y="114"/>
+ <point x="702" y="163" type="curve" smooth="yes"/>
+ <point x="473" y="210"/>
+ <point x="402" y="217"/>
+ <point x="402" y="249" type="curve" smooth="yes"/>
+ <point x="402" y="279"/>
+ <point x="493" y="321"/>
+ <point x="584" y="346" type="curve"/>
+ <point x="359" y="391" type="line"/>
+ <point x="263" y="354"/>
+ <point x="161" y="283"/>
+ <point x="161" y="188" type="curve" smooth="yes"/>
+ <point x="161" y="101"/>
+ <point x="230" y="4"/>
+ <point x="451" y="-23" type="curve" smooth="yes"/>
+ <point x="669" y="-50"/>
+ <point x="740" y="-97"/>
+ <point x="740" y="-157" type="curve" smooth="yes"/>
+ <point x="740" y="-245"/>
+ <point x="591" y="-299"/>
+ <point x="457" y="-299" type="curve" smooth="yes"/>
+ <point x="286" y="-299"/>
+ <point x="197" y="-233"/>
+ <point x="197" y="-180" type="curve" smooth="yes"/>
+ <point x="197" y="-74"/>
+ <point x="405" y="-4"/>
+ <point x="476" y="20" type="curve"/>
+ <point x="476" y="49"/>
+ <point x="250" y="74"/>
+ <point x="250" y="74" type="curve"/>
+ <point x="103" y="20"/>
+ <point x="-91" y="-65"/>
+ <point x="-91" y="-233" type="curve" smooth="yes"/>
+ <point x="-91" y="-409"/>
+ <point x="166" y="-500"/>
+ <point x="392" y="-500" type="curve" smooth="yes"/>
+ <point x="690" y="-500"/>
+ <point x="1027" y="-380"/>
+ </contour>
+ <contour>
+ <point x="1268" y="1030" type="line"/>
+ <point x="1168" y="1023"/>
+ <point x="1027" y="987"/>
+ <point x="924" y="931" type="curve"/>
+ <point x="946" y="762" type="line"/>
+ <point x="1048" y="800"/>
+ <point x="1132" y="815"/>
+ <point x="1205" y="817" type="curve"/>
+ </contour>
+ <contour>
+ <point x="198" y="627" type="curve" smooth="yes"/>
+ <point x="198" y="450"/>
+ <point x="353" y="302"/>
+ <point x="572" y="302" type="curve" smooth="yes"/>
+ <point x="824" y="302"/>
+ <point x="1087" y="444"/>
+ <point x="1087" y="702" type="curve" smooth="yes"/>
+ <point x="1087" y="874"/>
+ <point x="955" y="1030"/>
+ <point x="703" y="1030" type="curve" smooth="yes"/>
+ <point x="454" y="1030"/>
+ <point x="198" y="881"/>
+ </contour>
+ <contour>
+ <point x="663" y="829" type="curve" smooth="yes"/>
+ <point x="761" y="829"/>
+ <point x="842" y="762"/>
+ <point x="842" y="675" type="curve" smooth="yes"/>
+ <point x="842" y="559"/>
+ <point x="733" y="496"/>
+ <point x="620" y="496" type="curve" smooth="yes"/>
+ <point x="524" y="496"/>
+ <point x="450" y="569"/>
+ <point x="450" y="653" type="curve" smooth="yes"/>
+ <point x="450" y="769"/>
+ <point x="560" y="829"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..7160c61
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1273"/>
+ <unicode hex="0068"/>
+ <anchor x="220" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="968" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1140" y="0" type="line"/>
+ <point x="1135" y="29"/>
+ <point x="1129" y="60"/>
+ <point x="1129" y="90" type="curve" smooth="yes"/>
+ <point x="1129" y="135"/>
+ <point x="1134" y="170"/>
+ <point x="1141" y="215" type="curve" smooth="yes"/>
+ <point x="1171" y="400"/>
+ <point x="1253" y="590"/>
+ <point x="1253" y="725" type="curve" smooth="yes"/>
+ <point x="1253" y="900"/>
+ <point x="1183" y="1030"/>
+ <point x="990" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="694" y="902"/>
+ <point x="566" y="740" type="curve"/>
+ <point x="656" y="1095" type="line" smooth="yes"/>
+ <point x="696" y="1255"/>
+ <point x="735" y="1474"/>
+ <point x="735" y="1585" type="curve"/>
+ <point x="455" y="1585" type="line"/>
+ <point x="455" y="1439"/>
+ <point x="413" y="1242"/>
+ <point x="377" y="1095" type="curve" smooth="yes"/>
+ <point x="105" y="0" type="line"/>
+ <point x="385" y="0" type="line"/>
+ <point x="485" y="400" type="line"/>
+ <point x="580" y="596"/>
+ <point x="745" y="787"/>
+ <point x="850" y="787" type="curve" smooth="yes"/>
+ <point x="937" y="787"/>
+ <point x="953" y="722"/>
+ <point x="953" y="625" type="curve" smooth="yes"/>
+ <point x="953" y="529"/>
+ <point x="889" y="374"/>
+ <point x="863" y="213" type="curve" smooth="yes"/>
+ <point x="857" y="174"/>
+ <point x="853" y="134"/>
+ <point x="853" y="95" type="curve" smooth="yes"/>
+ <point x="853" y="63"/>
+ <point x="854" y="31"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..c19769e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="625"/>
+ <unicode hex="0069"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="520" y="0" name="O"/>
+ <anchor x="830" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1010" type="line"/>
+ <point x="341" y="877"/>
+ <point x="290" y="698"/>
+ <point x="252" y="547" type="curve" smooth="yes"/>
+ <point x="213" y="390" type="line" smooth="yes"/>
+ <point x="193" y="309"/>
+ <point x="170" y="191"/>
+ <point x="170" y="88" type="curve" smooth="yes"/>
+ <point x="170" y="57"/>
+ <point x="172" y="27"/>
+ <point x="177" y="0" type="curve"/>
+ <point x="472" y="0" type="line"/>
+ <point x="463" y="39"/>
+ <point x="459" y="82"/>
+ <point x="459" y="126" type="curve" smooth="yes"/>
+ <point x="459" y="217"/>
+ <point x="475" y="310"/>
+ <point x="486" y="358" type="curve" smooth="yes"/>
+ <point x="531" y="546" type="line" smooth="yes"/>
+ <point x="572" y="719"/>
+ <point x="621" y="875"/>
+ <point x="625" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="404" y="1341" type="curve" smooth="yes"/>
+ <point x="404" y="1259"/>
+ <point x="462" y="1197"/>
+ <point x="548" y="1197" type="curve" smooth="yes"/>
+ <point x="668" y="1197"/>
+ <point x="759" y="1292"/>
+ <point x="759" y="1403" type="curve" smooth="yes"/>
+ <point x="759" y="1483"/>
+ <point x="701" y="1544"/>
+ <point x="614" y="1544" type="curve" smooth="yes"/>
+ <point x="496" y="1544"/>
+ <point x="404" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..a454f7a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="695"/>
+ <unicode hex="006A"/>
+ <anchor x="-45" y="-500" name="L"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1010" type="line"/>
+ <point x="361" y="866"/>
+ <point x="284" y="395"/>
+ <point x="205" y="87" type="curve" smooth="yes"/>
+ <point x="148" y="-136"/>
+ <point x="54" y="-221"/>
+ <point x="-56" y="-221" type="curve" smooth="yes"/>
+ <point x="-137" y="-221"/>
+ <point x="-217" y="-187"/>
+ <point x="-252" y="-150" type="curve"/>
+ <point x="-355" y="-385" type="line"/>
+ <point x="-321" y="-417"/>
+ <point x="-172" y="-465"/>
+ <point x="-79" y="-465" type="curve" smooth="yes"/>
+ <point x="170" y="-465"/>
+ <point x="388" y="-295"/>
+ <point x="481" y="75" type="curve" smooth="yes"/>
+ <point x="501" y="157"/>
+ <point x="646" y="882"/>
+ <point x="646" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="395" y="1341" type="curve" smooth="yes"/>
+ <point x="395" y="1259"/>
+ <point x="453" y="1197"/>
+ <point x="539" y="1197" type="curve" smooth="yes"/>
+ <point x="659" y="1197"/>
+ <point x="750" y="1292"/>
+ <point x="750" y="1403" type="curve" smooth="yes"/>
+ <point x="750" y="1483"/>
+ <point x="692" y="1544"/>
+ <point x="605" y="1544" type="curve" smooth="yes"/>
+ <point x="487" y="1544"/>
+ <point x="395" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..ed9d720
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1209"/>
+ <unicode hex="006B"/>
+ <anchor x="880" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="943" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="964" y="1010" type="line"/>
+ <point x="920" y="864"/>
+ <point x="682" y="702"/>
+ <point x="483" y="576" type="curve"/>
+ <point x="676" y="518" type="line"/>
+ <point x="915" y="662"/>
+ <point x="1289" y="867"/>
+ <point x="1289" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1168" y="0" type="line"/>
+ <point x="992" y="302"/>
+ <point x="856" y="620"/>
+ <point x="633" y="620" type="curve"/>
+ <point x="442" y="529" type="line"/>
+ <point x="606" y="529"/>
+ <point x="722" y="252"/>
+ <point x="831" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="394" y="0" type="line"/>
+ <point x="669" y="1105" type="line" smooth="yes"/>
+ <point x="713" y="1280"/>
+ <point x="744" y="1497"/>
+ <point x="744" y="1585" type="curve"/>
+ <point x="462" y="1585" type="line"/>
+ <point x="462" y="1471"/>
+ <point x="431" y="1274"/>
+ <point x="393" y="1122" type="curve" smooth="yes"/>
+ <point x="345" y="928"/>
+ <point x="115" y="0"/>
+ <point x="115" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..3ecb48c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="641"/>
+ <unicode hex="006C"/>
+ <anchor x="275" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="850" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="461" y="1585" type="line"/>
+ <point x="461" y="1439"/>
+ <point x="420" y="1242"/>
+ <point x="383" y="1095" type="curve" smooth="yes"/>
+ <point x="232" y="488" type="line" smooth="yes"/>
+ <point x="208" y="394"/>
+ <point x="175" y="269"/>
+ <point x="175" y="116" type="curve" smooth="yes"/>
+ <point x="175" y="89"/>
+ <point x="178" y="30"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="470" y="0" type="line"/>
+ <point x="464" y="39"/>
+ <point x="461" y="80"/>
+ <point x="461" y="121" type="curve" smooth="yes"/>
+ <point x="461" y="277"/>
+ <point x="498" y="434"/>
+ <point x="518" y="515" type="curve" smooth="yes"/>
+ <point x="662" y="1095" type="line" smooth="yes"/>
+ <point x="702" y="1255"/>
+ <point x="741" y="1474"/>
+ <point x="741" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..6f5967a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1770"/>
+ <unicode hex="006D"/>
+ <anchor x="830" y="0" name="H"/>
+ <anchor x="805" y="-100" name="L"/>
+ <anchor x="1105" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1609" y="0" type="line"/>
+ <point x="1604" y="29"/>
+ <point x="1602" y="60"/>
+ <point x="1602" y="90" type="curve" smooth="yes"/>
+ <point x="1602" y="136"/>
+ <point x="1606" y="181"/>
+ <point x="1613" y="228" type="curve" smooth="yes"/>
+ <point x="1628" y="333"/>
+ <point x="1747" y="670"/>
+ <point x="1747" y="822" type="curve" smooth="yes"/>
+ <point x="1747" y="958"/>
+ <point x="1681" y="1030"/>
+ <point x="1547" y="1030" type="curve" smooth="yes"/>
+ <point x="1391" y="1030"/>
+ <point x="1227" y="876"/>
+ <point x="1120" y="705" type="curve"/>
+ <point x="1125" y="738"/>
+ <point x="1127" y="769"/>
+ <point x="1127" y="798" type="curve" smooth="yes"/>
+ <point x="1127" y="944"/>
+ <point x="1067" y="1030"/>
+ <point x="941" y="1030" type="curve" smooth="yes"/>
+ <point x="815" y="1030"/>
+ <point x="664" y="911"/>
+ <point x="537" y="715" type="curve"/>
+ <point x="553" y="840"/>
+ <point x="556" y="911"/>
+ <point x="556" y="955" type="curve" smooth="yes"/>
+ <point x="556" y="981"/>
+ <point x="554" y="998"/>
+ <point x="551" y="1010" type="curve"/>
+ <point x="291" y="1010" type="line"/>
+ <point x="293" y="999"/>
+ <point x="294" y="975"/>
+ <point x="294" y="942" type="curve" smooth="yes"/>
+ <point x="294" y="855"/>
+ <point x="286" y="710"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="390" y="0" type="line"/>
+ <point x="479" y="370" type="line"/>
+ <point x="541" y="552"/>
+ <point x="711" y="787"/>
+ <point x="791" y="787" type="curve" smooth="yes"/>
+ <point x="843" y="787"/>
+ <point x="857" y="741"/>
+ <point x="857" y="688" type="curve" smooth="yes"/>
+ <point x="857" y="625"/>
+ <point x="832" y="535"/>
+ <point x="819" y="483" type="curve" smooth="yes"/>
+ <point x="695" y="0" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1067" y="370" type="line"/>
+ <point x="1139" y="556"/>
+ <point x="1300" y="787"/>
+ <point x="1381" y="787" type="curve" smooth="yes"/>
+ <point x="1434" y="787"/>
+ <point x="1450" y="762"/>
+ <point x="1450" y="706" type="curve" smooth="yes"/>
+ <point x="1450" y="592"/>
+ <point x="1350" y="331"/>
+ <point x="1330" y="205" type="curve" smooth="yes"/>
+ <point x="1324" y="168"/>
+ <point x="1321" y="132"/>
+ <point x="1321" y="95" type="curve" smooth="yes"/>
+ <point x="1321" y="63"/>
+ <point x="1323" y="31"/>
+ <point x="1329" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..009224e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1281"/>
+ <unicode hex="006E"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="835" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="0" type="line"/>
+ <point x="1140" y="29"/>
+ <point x="1138" y="60"/>
+ <point x="1138" y="90" type="curve" smooth="yes"/>
+ <point x="1138" y="136"/>
+ <point x="1141" y="182"/>
+ <point x="1149" y="228" type="curve" smooth="yes"/>
+ <point x="1173" y="366"/>
+ <point x="1258" y="591"/>
+ <point x="1258" y="725" type="curve" smooth="yes"/>
+ <point x="1258" y="890"/>
+ <point x="1188" y="1030"/>
+ <point x="995" y="1030" type="curve" smooth="yes"/>
+ <point x="844" y="1030"/>
+ <point x="685" y="903"/>
+ <point x="546" y="715" type="curve"/>
+ <point x="555" y="771"/>
+ <point x="569" y="875"/>
+ <point x="569" y="933" type="curve" smooth="yes"/>
+ <point x="569" y="962"/>
+ <point x="568" y="988"/>
+ <point x="565" y="1010" type="curve"/>
+ <point x="290" y="1010" type="line"/>
+ <point x="290" y="962" type="line" smooth="yes"/>
+ <point x="290" y="859"/>
+ <point x="280" y="685"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="388" y="0" type="line"/>
+ <point x="490" y="405" type="line"/>
+ <point x="569" y="569"/>
+ <point x="740" y="787"/>
+ <point x="835" y="787" type="curve" smooth="yes"/>
+ <point x="922" y="787"/>
+ <point x="958" y="732"/>
+ <point x="958" y="625" type="curve" smooth="yes"/>
+ <point x="958" y="527"/>
+ <point x="891" y="369"/>
+ <point x="866" y="205" type="curve" smooth="yes"/>
+ <point x="860" y="168"/>
+ <point x="857" y="132"/>
+ <point x="857" y="95" type="curve" smooth="yes"/>
+ <point x="857" y="63"/>
+ <point x="859" y="31"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..d21fb58
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1139"/>
+ <unicode hex="006F"/>
+ <anchor x="518" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="730" y="0" name="O"/>
+ <anchor x="1350" y="1000" name="R"/>
+ <anchor x="795" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="370" type="curve" smooth="yes"/>
+ <point x="140" y="128"/>
+ <point x="289" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="906" y="-25"/>
+ <point x="1144" y="295"/>
+ <point x="1144" y="641" type="curve" smooth="yes"/>
+ <point x="1144" y="880"/>
+ <point x="1003" y="1030"/>
+ <point x="773" y="1030" type="curve" smooth="yes"/>
+ <point x="390" y="1030"/>
+ <point x="140" y="718"/>
+ </contour>
+ <contour>
+ <point x="718" y="807" type="curve" smooth="yes"/>
+ <point x="826" y="807"/>
+ <point x="879" y="737"/>
+ <point x="879" y="612" type="curve" smooth="yes"/>
+ <point x="879" y="413"/>
+ <point x="764" y="198"/>
+ <point x="566" y="198" type="curve" smooth="yes"/>
+ <point x="464" y="198"/>
+ <point x="404" y="264"/>
+ <point x="404" y="385" type="curve" smooth="yes"/>
+ <point x="404" y="570"/>
+ <point x="512" y="807"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..55c6e8b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1272"/>
+ <unicode hex="0070"/>
+ <anchor x="121" y="-435" name="H"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1425" y="1000" name="R"/>
+ <anchor x="855" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="523" y="500" type="line"/>
+ <point x="605" y="650"/>
+ <point x="765" y="794"/>
+ <point x="854" y="794" type="curve" smooth="yes"/>
+ <point x="932" y="794"/>
+ <point x="975" y="719"/>
+ <point x="975" y="609" type="curve" smooth="yes"/>
+ <point x="975" y="478"/>
+ <point x="924" y="334"/>
+ <point x="823" y="258" type="curve" smooth="yes"/>
+ <point x="778" y="224"/>
+ <point x="723" y="204"/>
+ <point x="658" y="204" type="curve" smooth="yes"/>
+ <point x="589" y="204"/>
+ <point x="517" y="243"/>
+ <point x="473" y="297" type="curve"/>
+ </contour>
+ <contour>
+ <point x="300" y="1010" type="line"/>
+ <point x="300" y="962" type="line" smooth="yes"/>
+ <point x="300" y="859"/>
+ <point x="290" y="685"/>
+ <point x="271" y="609" type="curve" smooth="yes"/>
+ <point x="75" y="-180" type="line" smooth="yes"/>
+ <point x="49" y="-286"/>
+ <point x="25" y="-403"/>
+ <point x="25" y="-485" type="curve"/>
+ <point x="314" y="-485" type="line"/>
+ <point x="314" y="-393"/>
+ <point x="328" y="-287"/>
+ <point x="362" y="-149" type="curve" smooth="yes"/>
+ <point x="415" y="64" type="line"/>
+ <point x="495" y="10"/>
+ <point x="562" y="-25"/>
+ <point x="667" y="-25" type="curve" smooth="yes"/>
+ <point x="750" y="-25"/>
+ <point x="833" y="-2"/>
+ <point x="909" y="40" type="curve" smooth="yes"/>
+ <point x="1112" y="152"/>
+ <point x="1267" y="398"/>
+ <point x="1267" y="685" type="curve" smooth="yes"/>
+ <point x="1267" y="884"/>
+ <point x="1176" y="1030"/>
+ <point x="1004" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="677" y="901"/>
+ <point x="565" y="752" type="curve"/>
+ <point x="574" y="808"/>
+ <point x="579" y="875"/>
+ <point x="579" y="933" type="curve" smooth="yes"/>
+ <point x="579" y="962"/>
+ <point x="578" y="988"/>
+ <point x="575" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..d3068d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1206"/>
+ <unicode hex="0071"/>
+ <anchor x="415" y="-500" name="L"/>
+ <anchor x="1400" y="1000" name="R"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="889" y="583" type="line"/>
+ <point x="832" y="467"/>
+ <point x="615" y="211"/>
+ <point x="520" y="211" type="curve" smooth="yes"/>
+ <point x="457" y="211"/>
+ <point x="429" y="263"/>
+ <point x="429" y="362" type="curve" smooth="yes"/>
+ <point x="429" y="484"/>
+ <point x="469" y="616"/>
+ <point x="551" y="702" type="curve" smooth="yes"/>
+ <point x="605" y="758"/>
+ <point x="676" y="794"/>
+ <point x="765" y="794" type="curve" smooth="yes"/>
+ <point x="806" y="794"/>
+ <point x="897" y="781"/>
+ <point x="933" y="762" type="curve"/>
+ </contour>
+ <contour>
+ <point x="936" y="-485" type="line"/>
+ <point x="936" y="-396"/>
+ <point x="951" y="-299"/>
+ <point x="978" y="-190" type="curve" smooth="yes"/>
+ <point x="1261" y="955" type="line"/>
+ <point x="1134" y="991"/>
+ <point x="972" y="1030"/>
+ <point x="819" y="1030" type="curve" smooth="yes"/>
+ <point x="678" y="1030"/>
+ <point x="516" y="969"/>
+ <point x="403" y="874" type="curve" smooth="yes"/>
+ <point x="244" y="739"/>
+ <point x="145" y="535"/>
+ <point x="145" y="331" type="curve" smooth="yes"/>
+ <point x="145" y="105"/>
+ <point x="275" y="-25"/>
+ <point x="391" y="-25" type="curve" smooth="yes"/>
+ <point x="529" y="-25"/>
+ <point x="729" y="134"/>
+ <point x="838" y="300" type="curve"/>
+ <point x="706" y="-185" type="line" smooth="yes"/>
+ <point x="675" y="-299"/>
+ <point x="661" y="-419"/>
+ <point x="661" y="-485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..48a3cc8
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="1021"/>
+ <unicode hex="0072"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="765" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="0" type="line"/>
+ <point x="494" y="420" type="line"/>
+ <point x="555" y="557"/>
+ <point x="727" y="773"/>
+ <point x="810" y="773" type="curve" smooth="yes"/>
+ <point x="864" y="773"/>
+ <point x="887" y="737"/>
+ <point x="887" y="678" type="curve" smooth="yes"/>
+ <point x="887" y="662"/>
+ <point x="885" y="644"/>
+ <point x="882" y="624" type="curve"/>
+ <point x="1114" y="658" type="line"/>
+ <point x="1123" y="706"/>
+ <point x="1136" y="752"/>
+ <point x="1136" y="794" type="curve" smooth="yes"/>
+ <point x="1136" y="931"/>
+ <point x="1084" y="1030"/>
+ <point x="963" y="1030" type="curve" smooth="yes"/>
+ <point x="828" y="1030"/>
+ <point x="670" y="883"/>
+ <point x="544" y="716" type="curve"/>
+ <point x="555" y="787"/>
+ <point x="570" y="960"/>
+ <point x="570" y="1010" type="curve"/>
+ <point x="295" y="1010" type="line"/>
+ <point x="295" y="962" type="line" smooth="yes"/>
+ <point x="295" y="894"/>
+ <point x="281" y="689"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..568c40a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1015"/>
+ <unicode hex="0073"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="745" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1058" y="952" type="line"/>
+ <point x="990" y="990"/>
+ <point x="854" y="1030"/>
+ <point x="691" y="1030" type="curve" smooth="yes"/>
+ <point x="457" y="1030"/>
+ <point x="217" y="936"/>
+ <point x="217" y="722" type="curve" smooth="yes"/>
+ <point x="217" y="593"/>
+ <point x="306" y="517"/>
+ <point x="501" y="430" type="curve" smooth="yes"/>
+ <point x="648" y="364"/>
+ <point x="710" y="345"/>
+ <point x="710" y="288" type="curve" smooth="yes"/>
+ <point x="710" y="224"/>
+ <point x="649" y="197"/>
+ <point x="549" y="197" type="curve" smooth="yes"/>
+ <point x="392" y="197"/>
+ <point x="276" y="280"/>
+ <point x="197" y="371" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="143" y="68"/>
+ <point x="319" y="-25"/>
+ <point x="498" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="979" y="104"/>
+ <point x="979" y="315" type="curve" smooth="yes"/>
+ <point x="979" y="440"/>
+ <point x="884" y="513"/>
+ <point x="695" y="600" type="curve" smooth="yes"/>
+ <point x="581" y="652"/>
+ <point x="477" y="688"/>
+ <point x="477" y="743" type="curve" smooth="yes"/>
+ <point x="477" y="785"/>
+ <point x="548" y="808"/>
+ <point x="646" y="808" type="curve" smooth="yes"/>
+ <point x="785" y="808"/>
+ <point x="895" y="764"/>
+ <point x="961" y="716" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..c6a02c1
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="900"/>
+ <unicode hex="0074"/>
+ <anchor x="470" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1075" y="1000" name="R"/>
+ <anchor x="640" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="831" y="278" type="line"/>
+ <point x="740" y="230"/>
+ <point x="670" y="204"/>
+ <point x="619" y="204" type="curve" smooth="yes"/>
+ <point x="556" y="204"/>
+ <point x="536" y="250"/>
+ <point x="536" y="318" type="curve" smooth="yes"/>
+ <point x="536" y="347"/>
+ <point x="539" y="380"/>
+ <point x="545" y="415" type="curve" smooth="yes"/>
+ <point x="567" y="549"/>
+ <point x="700" y="1039"/>
+ <point x="767" y="1307" type="curve"/>
+ <point x="487" y="1307" type="line"/>
+ <point x="419" y="1038"/>
+ <point x="265" y="471"/>
+ <point x="243" y="328" type="curve" smooth="yes"/>
+ <point x="239" y="302"/>
+ <point x="237" y="277"/>
+ <point x="237" y="253" type="curve" smooth="yes"/>
+ <point x="237" y="73"/>
+ <point x="351" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="590" y="-25"/>
+ <point x="703" y="-4"/>
+ <point x="812" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="945" y="797" type="line"/>
+ <point x="995" y="995" type="line"/>
+ <point x="220" y="995" type="line"/>
+ <point x="170" y="797" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5067d38
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1257"/>
+ <unicode hex="0075"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="630" y="0" name="O"/>
+ <anchor x="1448" y="1000" name="R"/>
+ <anchor x="830" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1117" y="0" type="line"/>
+ <point x="1113" y="29"/>
+ <point x="1112" y="62"/>
+ <point x="1112" y="100" type="curve" smooth="yes"/>
+ <point x="1112" y="206"/>
+ <point x="1131" y="341"/>
+ <point x="1157" y="455" type="curve" smooth="yes"/>
+ <point x="1212" y="689"/>
+ <point x="1274" y="905"/>
+ <point x="1282" y="1010" type="curve"/>
+ <point x="993" y="1010" type="line"/>
+ <point x="981" y="889"/>
+ <point x="992" y="918"/>
+ <point x="910" y="595" type="curve"/>
+ <point x="835" y="427"/>
+ <point x="618" y="205"/>
+ <point x="537" y="205" type="curve" smooth="yes"/>
+ <point x="491" y="205"/>
+ <point x="462" y="236"/>
+ <point x="462" y="308" type="curve" smooth="yes"/>
+ <point x="462" y="405"/>
+ <point x="536" y="663"/>
+ <point x="549" y="712" type="curve" smooth="yes"/>
+ <point x="583" y="847"/>
+ <point x="605" y="935"/>
+ <point x="610" y="1010" type="curve"/>
+ <point x="323" y="1010" type="line"/>
+ <point x="312" y="891"/>
+ <point x="296" y="819"/>
+ <point x="264" y="693" type="curve" smooth="yes"/>
+ <point x="191" y="401" type="line" smooth="yes"/>
+ <point x="173" y="330"/>
+ <point x="165" y="267"/>
+ <point x="165" y="214" type="curve" smooth="yes"/>
+ <point x="165" y="55"/>
+ <point x="252" y="-25"/>
+ <point x="381" y="-25" type="curve" smooth="yes"/>
+ <point x="545" y="-25"/>
+ <point x="769" y="160"/>
+ <point x="860" y="295" type="curve"/>
+ <point x="850" y="227"/>
+ <point x="842" y="53"/>
+ <point x="842" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..d7ceb46
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1049"/>
+ <unicode hex="0076"/>
+ <anchor x="505" y="0" name="H"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="695" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="881" y="1010" type="line"/>
+ <point x="881" y="788"/>
+ <point x="719" y="534"/>
+ <point x="507" y="270" type="curve"/>
+ <point x="516" y="353"/>
+ <point x="521" y="457"/>
+ <point x="521" y="564" type="curve" smooth="yes"/>
+ <point x="521" y="730"/>
+ <point x="507" y="903"/>
+ <point x="472" y="1010" type="curve"/>
+ <point x="195" y="1010" type="line"/>
+ <point x="259" y="758"/>
+ <point x="282" y="509"/>
+ <point x="282" y="262" type="curve" smooth="yes"/>
+ <point x="282" y="174"/>
+ <point x="279" y="87"/>
+ <point x="274" y="0" type="curve"/>
+ <point x="535" y="0" type="line"/>
+ <point x="823" y="314"/>
+ <point x="1159" y="766"/>
+ <point x="1159" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..02f3211
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1620"/>
+ <unicode hex="0077"/>
+ <anchor x="700" y="-100" name="L"/>
+ <anchor x="1000" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="1010" type="line"/>
+ <point x="758" y="793"/>
+ <point x="592" y="496"/>
+ <point x="438" y="242" type="curve"/>
+ <point x="459" y="351"/>
+ <point x="476" y="509"/>
+ <point x="476" y="669" type="curve" smooth="yes"/>
+ <point x="476" y="788"/>
+ <point x="468" y="908"/>
+ <point x="448" y="1010" type="curve"/>
+ <point x="190" y="1010" type="line"/>
+ <point x="230" y="831"/>
+ <point x="236" y="678"/>
+ <point x="236" y="494" type="curve" smooth="yes"/>
+ <point x="236" y="364"/>
+ <point x="228" y="211"/>
+ <point x="209" y="0" type="curve"/>
+ <point x="499" y="0" type="line"/>
+ <point x="624" y="181"/>
+ <point x="838" y="560"/>
+ <point x="901" y="690" type="curve"/>
+ <point x="919" y="477"/>
+ <point x="919" y="212"/>
+ <point x="919" y="0" type="curve"/>
+ <point x="1179" y="0" type="line"/>
+ <point x="1430" y="328"/>
+ <point x="1710" y="775"/>
+ <point x="1710" y="1010" type="curve"/>
+ <point x="1432" y="1010" type="line"/>
+ <point x="1432" y="995" type="line" smooth="yes"/>
+ <point x="1432" y="797"/>
+ <point x="1245" y="435"/>
+ <point x="1106" y="242" type="curve"/>
+ <point x="1108" y="298"/>
+ <point x="1108" y="355"/>
+ <point x="1108" y="411" type="curve" smooth="yes"/>
+ <point x="1108" y="637"/>
+ <point x="1096" y="860"/>
+ <point x="1070" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..2e620de
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1104"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="860" y="133"/>
+ <point x="655" y="882"/>
+ <point x="524" y="1010" type="curve"/>
+ <point x="186" y="1010" type="line"/>
+ <point x="425" y="832"/>
+ <point x="593" y="141"/>
+ <point x="713" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="509" y="572" type="line"/>
+ <point x="291" y="463"/>
+ <point x="62" y="230"/>
+ <point x="35" y="0" type="curve"/>
+ <point x="335" y="0" type="line"/>
+ <point x="336" y="156"/>
+ <point x="470" y="390"/>
+ <point x="658" y="477" type="curve"/>
+ </contour>
+ <contour>
+ <point x="764" y="471" type="line"/>
+ <point x="943" y="591"/>
+ <point x="1197" y="808"/>
+ <point x="1204" y="1010" type="curve"/>
+ <point x="894" y="1010" type="line"/>
+ <point x="894" y="852"/>
+ <point x="773" y="665"/>
+ <point x="616" y="571" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..f2ae46b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1041"/>
+ <unicode hex="0079"/>
+ <anchor x="810" y="-100" name="L"/>
+ <anchor x="1325" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="847" y="1010" type="line"/>
+ <point x="851" y="994"/>
+ <point x="852" y="977"/>
+ <point x="852" y="958" type="curve" smooth="yes"/>
+ <point x="852" y="786"/>
+ <point x="713" y="473"/>
+ <point x="596" y="260" type="curve"/>
+ <point x="596" y="478"/>
+ <point x="503" y="877"/>
+ <point x="403" y="1010" type="curve"/>
+ <point x="120" y="1010" type="line"/>
+ <point x="259" y="811"/>
+ <point x="401" y="401"/>
+ <point x="409" y="-18" type="curve"/>
+ <point x="283" y="-207"/>
+ <point x="183" y="-250"/>
+ <point x="114" y="-250" type="curve" smooth="yes"/>
+ <point x="48" y="-250"/>
+ <point x="-33" y="-201"/>
+ <point x="-63" y="-165" type="curve"/>
+ <point x="-195" y="-381" type="line"/>
+ <point x="-136" y="-435"/>
+ <point x="-13" y="-465"/>
+ <point x="78" y="-465" type="curve" smooth="yes"/>
+ <point x="260" y="-465"/>
+ <point x="447" y="-385"/>
+ <point x="684" y="0" type="curve" smooth="yes"/>
+ <point x="919" y="381"/>
+ <point x="1116" y="766"/>
+ <point x="1116" y="960" type="curve" smooth="yes"/>
+ <point x="1116" y="978"/>
+ <point x="1114" y="995"/>
+ <point x="1110" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..cd90adf
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="875"/>
+ <unicode hex="2011"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..1d3e5e9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="667" y="1346" type="line"/>
+ <point x="16" y="99" type="line"/>
+ <point x="256" y="99" type="line"/>
+ <point x="907" y="1346" type="line"/>
+ </contour>
+ <contour>
+ <point x="54" y="421" type="line"/>
+ <point x="1145" y="421" type="line"/>
+ <point x="1197" y="629" type="line"/>
+ <point x="106" y="629" type="line"/>
+ </contour>
+ <contour>
+ <point x="218" y="841" type="line"/>
+ <point x="1309" y="841" type="line"/>
+ <point x="1361" y="1049" type="line"/>
+ <point x="270" y="1049" type="line"/>
+ </contour>
+ <contour>
+ <point x="1142" y="1346" type="line"/>
+ <point x="491" y="99" type="line"/>
+ <point x="731" y="99" type="line"/>
+ <point x="1382" y="1346" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..f87ea9f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1545"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1375" y="1465" type="line"/>
+ <point x="221" y="-25" type="line"/>
+ <point x="435" y="-25" type="line"/>
+ <point x="1587" y="1465" type="line"/>
+ </contour>
+ <contour>
+ <point x="714" y="1043" type="curve" smooth="yes"/>
+ <point x="669" y="861"/>
+ <point x="611" y="807"/>
+ <point x="535" y="807" type="curve" smooth="yes"/>
+ <point x="486" y="807"/>
+ <point x="461" y="843"/>
+ <point x="461" y="917" type="curve" smooth="yes"/>
+ <point x="461" y="963"/>
+ <point x="471" y="1023"/>
+ <point x="490" y="1099" type="curve" smooth="yes"/>
+ <point x="535" y="1281"/>
+ <point x="580" y="1336"/>
+ <point x="657" y="1336" type="curve" smooth="yes"/>
+ <point x="710" y="1336"/>
+ <point x="739" y="1296"/>
+ <point x="739" y="1212" type="curve" smooth="yes"/>
+ <point x="739" y="1168"/>
+ <point x="731" y="1111"/>
+ </contour>
+ <contour>
+ <point x="926" y="1054" type="curve" smooth="yes"/>
+ <point x="939" y="1107"/>
+ <point x="946" y="1156"/>
+ <point x="946" y="1199" type="curve" smooth="yes"/>
+ <point x="946" y="1374"/>
+ <point x="842" y="1465"/>
+ <point x="694" y="1465" type="curve" smooth="yes"/>
+ <point x="510" y="1465"/>
+ <point x="346" y="1369"/>
+ <point x="277" y="1090" type="curve" smooth="yes"/>
+ <point x="262" y="1031"/>
+ <point x="255" y="979"/>
+ <point x="255" y="933" type="curve" smooth="yes"/>
+ <point x="255" y="761"/>
+ <point x="353" y="678"/>
+ <point x="499" y="678" type="curve" smooth="yes"/>
+ <point x="684" y="678"/>
+ <point x="853" y="762"/>
+ </contour>
+ <contour>
+ <point x="1314" y="337" type="curve" smooth="yes"/>
+ <point x="1268" y="155"/>
+ <point x="1220" y="104"/>
+ <point x="1144" y="104" type="curve" smooth="yes"/>
+ <point x="1093" y="104"/>
+ <point x="1065" y="144"/>
+ <point x="1065" y="227" type="curve" smooth="yes"/>
+ <point x="1065" y="272"/>
+ <point x="1073" y="329"/>
+ <point x="1090" y="398" type="curve" smooth="yes"/>
+ <point x="1136" y="580"/>
+ <point x="1190" y="634"/>
+ <point x="1267" y="634" type="curve" smooth="yes"/>
+ <point x="1317" y="634"/>
+ <point x="1342" y="596"/>
+ <point x="1342" y="520" type="curve" smooth="yes"/>
+ <point x="1342" y="473"/>
+ <point x="1333" y="412"/>
+ </contour>
+ <contour>
+ <point x="1526" y="350" type="curve" smooth="yes"/>
+ <point x="1540" y="406"/>
+ <point x="1546" y="456"/>
+ <point x="1546" y="501" type="curve" smooth="yes"/>
+ <point x="1546" y="673"/>
+ <point x="1450" y="762"/>
+ <point x="1303" y="762" type="curve" smooth="yes"/>
+ <point x="1119" y="762"/>
+ <point x="946" y="665"/>
+ <point x="876" y="386" type="curve" smooth="yes"/>
+ <point x="862" y="331"/>
+ <point x="856" y="281"/>
+ <point x="856" y="237" type="curve" smooth="yes"/>
+ <point x="856" y="60"/>
+ <point x="960" y="-25"/>
+ <point x="1108" y="-25" type="curve" smooth="yes"/>
+ <point x="1293" y="-25"/>
+ <point x="1453" y="58"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..bb54e70
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="722" y="1168" type="line"/>
+ <point x="500" y="282" type="line"/>
+ <point x="715" y="282" type="line"/>
+ <point x="936" y="1168" type="line"/>
+ </contour>
+ <contour>
+ <point x="250" y="624" type="line"/>
+ <point x="1140" y="624" type="line"/>
+ <point x="1192" y="832" type="line"/>
+ <point x="302" y="832" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5acaded
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1070"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="703" y="495" type="line"/>
+ <point x="745" y="664"/>
+ <point x="787" y="792"/>
+ <point x="931" y="933" type="curve" smooth="yes"/>
+ <point x="1034" y="1033"/>
+ <point x="1143" y="1118"/>
+ <point x="1143" y="1256" type="curve" smooth="yes"/>
+ <point x="1143" y="1404"/>
+ <point x="1022" y="1525"/>
+ <point x="800" y="1525" type="curve" smooth="yes"/>
+ <point x="675" y="1525"/>
+ <point x="508" y="1455"/>
+ <point x="427" y="1393" type="curve"/>
+ <point x="413" y="1156" type="line"/>
+ <point x="508" y="1235"/>
+ <point x="621" y="1282"/>
+ <point x="721" y="1282" type="curve" smooth="yes"/>
+ <point x="811" y="1282"/>
+ <point x="846" y="1238"/>
+ <point x="846" y="1189" type="curve" smooth="yes"/>
+ <point x="846" y="1109"/>
+ <point x="760" y="1086"/>
+ <point x="650" y="956" type="curve" smooth="yes"/>
+ <point x="564" y="855"/>
+ <point x="490" y="703"/>
+ <point x="438" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="306" y="116" type="curve" smooth="yes"/>
+ <point x="306" y="35"/>
+ <point x="367" y="-25"/>
+ <point x="453" y="-25" type="curve" smooth="yes"/>
+ <point x="571" y="-25"/>
+ <point x="666" y="71"/>
+ <point x="666" y="181" type="curve" smooth="yes"/>
+ <point x="666" y="261"/>
+ <point x="607" y="322"/>
+ <point x="520" y="322" type="curve" smooth="yes"/>
+ <point x="403" y="322"/>
+ <point x="306" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..f33fd18
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1065"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="648" y="1035" type="line"/>
+ <point x="687" y="1174"/>
+ <point x="726" y="1326"/>
+ <point x="816" y="1569" type="curve"/>
+ <point x="571" y="1569" type="line"/>
+ <point x="541" y="1326"/>
+ <point x="503" y="1174"/>
+ <point x="473" y="1035" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1008" y="1035" type="line"/>
+ <point x="1047" y="1174"/>
+ <point x="1086" y="1326"/>
+ <point x="1176" y="1569" type="curve"/>
+ <point x="931" y="1569" type="line"/>
+ <point x="901" y="1326"/>
+ <point x="863" y="1174"/>
+ <point x="833" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..0068c20
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="344" y="1584" type="line"/>
+ <point x="719" y="-243" type="line"/>
+ <point x="949" y="-243" type="line"/>
+ <point x="574" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..726adad
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="442" y="1395" type="line"/>
+ <point x="513" y="1366"/>
+ <point x="611" y="1344"/>
+ <point x="611" y="1296" type="curve" smooth="yes"/>
+ <point x="611" y="1200"/>
+ <point x="515" y="837"/>
+ <point x="515" y="782" type="curve" smooth="yes"/>
+ <point x="515" y="743"/>
+ <point x="633" y="649"/>
+ <point x="633" y="613" type="curve" smooth="yes"/>
+ <point x="633" y="573"/>
+ <point x="465" y="486"/>
+ <point x="429" y="441" type="curve" smooth="yes"/>
+ <point x="403" y="407"/>
+ <point x="300" y="-59"/>
+ <point x="255" y="-99" type="curve" smooth="yes"/>
+ <point x="230" y="-121"/>
+ <point x="97" y="-158"/>
+ <point x="25" y="-177" type="curve"/>
+ <point x="17" y="-406" type="line"/>
+ <point x="160" y="-379"/>
+ <point x="377" y="-330"/>
+ <point x="439" y="-282" type="curve" smooth="yes"/>
+ <point x="532" y="-211"/>
+ <point x="666" y="374"/>
+ <point x="696" y="406" type="curve" smooth="yes"/>
+ <point x="734" y="446"/>
+ <point x="947" y="559"/>
+ <point x="947" y="616" type="curve" smooth="yes"/>
+ <point x="947" y="676"/>
+ <point x="796" y="783"/>
+ <point x="796" y="819" type="curve" smooth="yes"/>
+ <point x="796" y="880"/>
+ <point x="896" y="1288"/>
+ <point x="896" y="1453" type="curve" smooth="yes"/>
+ <point x="896" y="1529"/>
+ <point x="709" y="1591"/>
+ <point x="549" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..544faff
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="476" y="1411" type="line"/>
+ <point x="572" y="1290"/>
+ <point x="616" y="1127"/>
+ <point x="616" y="944" type="curve" smooth="yes"/>
+ <point x="616" y="832"/>
+ <point x="599" y="712"/>
+ <point x="569" y="589" type="curve" smooth="yes"/>
+ <point x="491" y="275"/>
+ <point x="333" y="48"/>
+ <point x="75" y="-198" type="curve"/>
+ <point x="163" y="-406" type="line"/>
+ <point x="509" y="-124"/>
+ <point x="743" y="206"/>
+ <point x="844" y="609" type="curve" smooth="yes"/>
+ <point x="876" y="735"/>
+ <point x="891" y="858"/>
+ <point x="891" y="973" type="curve" smooth="yes"/>
+ <point x="891" y="1252"/>
+ <point x="803" y="1487"/>
+ <point x="649" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..804527d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="503" y="-406" type="line"/>
+ <point x="994" y="1584" type="line"/>
+ <point x="474" y="1584" type="line"/>
+ <point x="423" y="1376" type="line"/>
+ <point x="663" y="1376" type="line"/>
+ <point x="275" y="-198" type="line"/>
+ <point x="35" y="-198" type="line"/>
+ <point x="-17" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..1c9af02
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="690"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..0bac67c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1164" y="1584" type="line"/>
+ <point x="-120" y="-243" type="line"/>
+ <point x="129" y="-243" type="line"/>
+ <point x="1414" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..26c105f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1155"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="190" y="342" type="line"/>
+ <point x="207" y="390"/>
+ <point x="249" y="431"/>
+ <point x="327" y="431" type="curve" smooth="yes"/>
+ <point x="502" y="431"/>
+ <point x="676" y="327"/>
+ <point x="906" y="327" type="curve" smooth="yes"/>
+ <point x="1065" y="327"/>
+ <point x="1206" y="507"/>
+ <point x="1238" y="634" type="curve"/>
+ <point x="1093" y="634" type="line"/>
+ <point x="1074" y="588"/>
+ <point x="1031" y="535"/>
+ <point x="948" y="535" type="curve" smooth="yes"/>
+ <point x="712" y="535"/>
+ <point x="580" y="639"/>
+ <point x="359" y="639" type="curve" smooth="yes"/>
+ <point x="203" y="639"/>
+ <point x="75" y="462"/>
+ <point x="45" y="342" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..204ac86
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="574" y="1594" type="line"/>
+ <point x="83" y="-396" type="line"/>
+ <point x="293" y="-396" type="line"/>
+ <point x="784" y="1594" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist b/tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/lib.plist b/tests/reference/ufo/psfsetpsnames.ufo/lib.plist
new file mode 100644
index 0000000..28d3bd9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/lib.plist
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>AcuteAccent</key>
+ <string>acute</string>
+ <key>Bullet</key>
+ <string>bullet</string>
+ <key>BulletOperator</key>
+ <string>uni2219</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>DblAcuteAccent</key>
+ <string>hungarumlaut</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>LtnCapAAcute</key>
+ <string>Aacute</string>
+ <key>LtnCapEAcute</key>
+ <string>Eacute</string>
+ <key>LtnCapIAcute</key>
+ <string>Iacute</string>
+ <key>LtnCapOAcute</key>
+ <string>Oacute</string>
+ <key>LtnCapUAcute</key>
+ <string>Uacute</string>
+ <key>LtnCapYAcute</key>
+ <string>Yacute</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmEAcute</key>
+ <string>eacute</string>
+ <key>LtnSmIAcute</key>
+ <string>iacute</string>
+ <key>LtnSmOAcute</key>
+ <string>oacute</string>
+ <key>LtnSmUAcute</key>
+ <string>uacute</string>
+ <key>LtnSmYAcute</key>
+ <string>yacute</string>
+ <key>ModCircumAccent</key>
+ <string>circumflex</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>SupOne</key>
+ <string>onesuperior</string>
+ <key>SupThree</key>
+ <string>threesuperior</string>
+ <key>VulgFracOneHalf</key>
+ <string>onehalf</string>
+ <key>VulgFracOneQuarter</key>
+ <string>onequarter</string>
+ <key>VulgFracThreeQuarters</key>
+ <string>threequarters</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist b/tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.lg b/tests/reference/ufo/psfsetunicodes.lg
new file mode 100644
index 0000000..c1dac72
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.lg
@@ -0,0 +1,149 @@
+2021-06-29 14:42:23 Progress: Running: psfsetunicodes tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfsetunicodes.csv -l local/testresults/ufo/psfsetunicodes.log -p loglevel=v -p checkfix=fix
+2021-06-29 14:42:23 Progress: Opening file for input: tests/input/psfsetunicodes.csv
+2021-06-29 14:42:23 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:23 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:23 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:23 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:23 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:23 Warning: year removed from fontinfo. Old value: 2021
+2021-06-29 14:42:23 Info: Types: Old - int, New - NoneType
+2021-06-29 14:42:23 Warning: capHeight updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:23 Info: Types: Old - float, New - int
+2021-06-29 14:42:23 Warning: styleMapFamilyName uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:23 Info: Types: Old - string, New - string
+2021-06-29 14:42:23 Warning: openTypeOS2TypoLineGap updated Old value: 1, new value: 0
+2021-06-29 14:42:23 Info: Types: Old - int, New - int
+2021-06-29 14:42:23 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:23 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:23 Warning: openTypeNamePreferredFamilyName updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:23 Info: Types: Old - string, New - string
+2021-06-29 14:42:23 Progress: Checking lib.plist metadata
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:23 Progress: Check & fix results:- Errors: 0, Changes made: 9, Other warnings: 0
+2021-06-29 14:42:23 Progress: See log file for details
+2021-06-29 14:42:23 Info: Glyph 'Notthere' not in font; line 3 ignored.
+2021-06-29 14:42:23 Progress: Processing font for output
+2021-06-29 14:42:23 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:23 Progress: Writing font to local/testresults/ufo/psfsetunicodes.ufo
+2021-06-29 14:42:23 Info: Processing glyphs directory
+2021-06-29 14:42:23 Verbose: A_mpersand.glif
+2021-06-29 14:42:23 Verbose: A_pos.glif
+2021-06-29 14:42:23 Verbose: A_sterisk.glif
+2021-06-29 14:42:23 Verbose: A_tS_gn.glif
+2021-06-29 14:42:23 Verbose: C_ircumA_ccent.glif
+2021-06-29 14:42:23 Verbose: C_olon.glif
+2021-06-29 14:42:23 Verbose: C_ombA_cute.glif
+2021-06-29 14:42:23 Verbose: C_ombC_ircum.glif
+2021-06-29 14:42:23 Verbose: C_ombD_iaer.glif
+2021-06-29 14:42:23 Verbose: C_ombG_rave.glif
+2021-06-29 14:42:23 Verbose: C_ombR_ingA_bv.glif
+2021-06-29 14:42:23 Verbose: C_ombT_ilde.glif
+2021-06-29 14:42:23 Verbose: C_omma.glif
+2021-06-29 14:42:23 Verbose: D_igitE_ight.glif
+2021-06-29 14:42:23 Verbose: D_igitF_ive.glif
+2021-06-29 14:42:23 Verbose: D_igitF_our.glif
+2021-06-29 14:42:23 Verbose: D_igitN_ine.glif
+2021-06-29 14:42:23 Verbose: D_igitO_ne.glif
+2021-06-29 14:42:23 Verbose: D_igitS_even.glif
+2021-06-29 14:42:23 Verbose: D_igitS_ix.glif
+2021-06-29 14:42:23 Verbose: D_igitT_hree.glif
+2021-06-29 14:42:23 Verbose: D_igitT_wo.glif
+2021-06-29 14:42:23 Verbose: D_igitZ_ero.glif
+2021-06-29 14:42:23 Verbose: D_ollarS_gn.glif
+2021-06-29 14:42:23 Verbose: D_ottedC_irc.glif
+2021-06-29 14:42:23 Verbose: E_qS_gn.glif
+2021-06-29 14:42:23 Verbose: E_xclamationM_rk.glif
+2021-06-29 14:42:23 Verbose: F_ullS_top.glif
+2021-06-29 14:42:23 Verbose: G_T_S_gn.glif
+2021-06-29 14:42:23 Verbose: G_raveA_ccent.glif
+2021-06-29 14:42:23 Verbose: H_yphen.glif
+2021-06-29 14:42:23 Verbose: H_yphenM_inus.glif
+2021-06-29 14:42:23 Verbose: H_yphen_S_oft.glif
+2021-06-29 14:42:23 Verbose: L_T_S_gn.glif
+2021-06-29 14:42:23 Verbose: L_ftC_urlyB_rac.glif
+2021-06-29 14:42:23 Verbose: L_ftP_aren.glif
+2021-06-29 14:42:23 Verbose: L_ftS_qrB_rac.glif
+2021-06-29 14:42:23 Verbose: L_owL_ine.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apA_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apA_D_iaer.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apB_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apC_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apD_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apE_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apF_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apG_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apH_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apI_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apJ_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apK_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apL_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apM_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apN_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apO_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apP_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apQ_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apR_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apS_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apT_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apU_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apV_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apW_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apX_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apY_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_A_cute.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_C_ircum.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_D_iaer.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_G_rave.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_R_ingA_bv.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_T_ilde.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mB_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mC_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mD_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mE_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mF_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mG_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mH_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mI_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mJ_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mK_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mL_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mM_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mN_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mO_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mP_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mQ_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mR_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mS_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mT_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mU_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mV_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mW_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mX_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mY_.glif
+2021-06-29 14:42:23 Verbose: N_onB_reakingH_yphen.glif
+2021-06-29 14:42:23 Verbose: N_umS_gn.glif
+2021-06-29 14:42:23 Verbose: P_ercentS_gn.glif
+2021-06-29 14:42:23 Verbose: P_lusS_gn.glif
+2021-06-29 14:42:23 Verbose: Q_stnM_rk.glif
+2021-06-29 14:42:23 Verbose: Q_uotM_rk.glif
+2021-06-29 14:42:23 Verbose: R_everseS_olidus.glif
+2021-06-29 14:42:23 Verbose: R_tC_urlyB_rac.glif
+2021-06-29 14:42:23 Verbose: R_tP_aren.glif
+2021-06-29 14:42:23 Verbose: R_tS_qrB_rac.glif
+2021-06-29 14:42:23 Verbose: S_emicolon.glif
+2021-06-29 14:42:23 Verbose: S_olidus.glif
+2021-06-29 14:42:23 Verbose: S_pace.glif
+2021-06-29 14:42:23 Verbose: T_ilde.glif
+2021-06-29 14:42:23 Verbose: V_ertL_ine.glif
+2021-06-29 14:42:23 Verbose: _notdef.glif
+2021-06-29 14:42:23 Verbose: _null.glif
+2021-06-29 14:42:23 Verbose: contents.plist
+2021-06-29 14:42:23 Verbose: nonmarkingreturn.glif
+2021-06-29 14:42:23 Verbose: fontinfo.plist
+2021-06-29 14:42:23 Verbose: layercontents.plist
+2021-06-29 14:42:23 Verbose: lib.plist
+2021-06-29 14:42:23 Verbose: metainfo.plist
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist b/tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist
new file mode 100644
index 0000000..92c6d24
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:52</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..4108ea7
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..b2f15bd
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..80f2d6e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..987a167
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="002C"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist b/tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/lib.plist b/tests/reference/ufo/psfsetunicodes.ufo/lib.plist
new file mode 100644
index 0000000..fa77038
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/lib.plist
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist b/tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist b/tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist
new file mode 100644
index 0000000..4e412bf
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 11:19:45</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-Bold-lib.plist b/tests/reference/ufo/psfsyncmasters-Bold-lib.plist
new file mode 100644
index 0000000..03492dd
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-Bold-lib.plist
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist b/tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist
new file mode 100644
index 0000000..ae16540
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>macintoshFONDName</key>
+ <string>My Test</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 11:19:45</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-BoldItalic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold italic</string>
+ <key>styleName</key>
+ <string>Bold Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist b/tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist
new file mode 100644
index 0000000..93c215b
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 11:19:45</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters.lg b/tests/reference/ufo/psfsyncmasters.lg
new file mode 100644
index 0000000..dabd1cc
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters.lg
@@ -0,0 +1,12 @@
+2020-07-28 14:36:09 Progress: Running: psfsyncmasters -n tests/input/font-psf-test/source/PsfTestRoman.designspace tests/input/font-psf-test/source/PsfTestItalic.designspace -l local/testresults/ufo/psfsyncmasters.log
+2020-07-28 14:36:09 Warning: PsfTest-Bold.ufo com.schriftgestaltung.glyphOrder updated: Old value: ['.notdef', '.null',..., new value: ['.notdef', '.null',...
+2020-07-28 14:36:09 Progress: Writing updated lib.plist to lib_new.plist
+2020-07-28 14:36:09 Progress: Writing updated fontinfo.plist to fontinfo_new.plist
+2020-07-28 14:36:09 Warning: PsfTest-Italic.ufo openTypeNamePreferredFamilyName updated: Old value: Psf Testing, new value: Psf Test
+2020-07-28 14:36:09 Warning: PsfTest-Italic.ufo openTypeOS2TypoLineGap updated: Old value: 1, new value: 0
+2020-07-28 14:36:09 Warning: PsfTest-Italic.ufo styleMapFamilyName updated: Old value: Psf test, new value: Psf Test
+2020-07-28 14:36:09 Progress: Writing updated fontinfo.plist to fontinfo_new.plist
+2020-07-28 14:36:09 Warning: PsfTest-BoldItalic.ufo openTypeHheaAscender updated: Old value: 2200, new value: 2100
+2020-07-28 14:36:09 Warning: PsfTest-BoldItalic.ufo postscriptFamilyBlues removed: Old value: []
+2020-07-28 14:36:09 Progress: Writing updated fontinfo.plist to fontinfo_new.plist
+2020-07-28 14:36:09 Progress: psfsyncmasters completed
diff --git a/tests/reference/ufo/psfufo2ttf.lg b/tests/reference/ufo/psfufo2ttf.lg
new file mode 100644
index 0000000..53e7ee8
--- /dev/null
+++ b/tests/reference/ufo/psfufo2ttf.lg
@@ -0,0 +1,4 @@
+2020-07-28 14:36:09 Progress: Running: psfufo2ttf tests/input/font-psf-test/source/PsfTest-Regular.ufo local/testresults/ufo/psfufo2ttf.ttf -l local/testresults/ufo/psfufo2ttf.log
+2020-07-28 14:36:09 Progress: Converting UFO to ttf without OT
+2020-07-28 14:36:09 Progress: Saving ttf file
+2020-07-28 14:36:09 Progress: Done
diff --git a/tests/reference/ufo/psfufo2ttf.ttf b/tests/reference/ufo/psfufo2ttf.ttf
new file mode 100644
index 0000000..748c82b
--- /dev/null
+++ b/tests/reference/ufo/psfufo2ttf.ttf
Binary files differ