@Override
    public int getGlyphId(int characterCode)
    {
        Integer glyphId = characterCodeToGlyphId.get(characterCode);
        return glyphId == null ? 0 : glyphId;
    }
@Test
    void testVerticalSubstitution() throws IOException
    {
        File ipaFont = new File("target/fonts/ipag00303", "ipag.ttf");
        TrueTypeFont ttf = new TTFParser().parse(new RandomAccessReadBufferedFile(ipaFont));
        
        CmapLookup unicodeCmapLookup1 = ttf.getUnicodeCmapLookup();
        int hgid1 = unicodeCmapLookup1.getGlyphId('「');
        int hgid2 = unicodeCmapLookup1.getGlyphId('」');
        ttf.enableVerticalSubstitutions();
        CmapLookup unicodeCmapLookup2 = ttf.getUnicodeCmapLookup();
        int vgid1 = unicodeCmapLookup2.getGlyphId('「');
        int vgid2 = unicodeCmapLookup2.getGlyphId('」');
        System.out.println(hgid1 + " " + hgid2);
        System.out.println(vgid1 + " " + vgid2);
        Assertions.assertEquals(441, hgid1);
        Assertions.assertEquals(442, hgid2);
        Assertions.assertEquals(7392, vgid1);
        Assertions.assertEquals(7393, vgid2);
    }