public GsubData getGsubData()
    {
        return gsubData;
    }
@Test
    void testGetGsubData() throws IOException
    {
        // given
        RandomAccessReadBuffer randomAccessReadBuffer = new RandomAccessReadBuffer(
                GSUBTableDebugger.class.getResourceAsStream("/ttf/Lohit-Bengali.ttf"));
        RandomAccessReadDataStream randomAccessReadBufferDataStream = new RandomAccessReadDataStream(
                randomAccessReadBuffer);
        randomAccessReadBufferDataStream.seek(DATA_POSITION_FOR_GSUB_TABLE);

        GlyphSubstitutionTable testClass = new GlyphSubstitutionTable();

        // when
        testClass.read(null, randomAccessReadBufferDataStream);

        // then
        GsubData gsubData = testClass.getGsubData();
        assertNotNull(gsubData);
        assertNotEquals(GsubData.NO_DATA_FOUND, gsubData);
        assertEquals(Language.BENGALI, gsubData.getLanguage());
        assertEquals("bng2", gsubData.getActiveScriptName());

        assertEquals(new HashSet<>(EXPECTED_FEATURE_NAMES), gsubData.getSupportedFeatures());

        String templatePathToFile = "/gsub/lohit_bengali/bng2/%s.txt";

        for (String featureName : EXPECTED_FEATURE_NAMES)
        {
            System.out.println("******* Testing feature: " + featureName);
            Map<List<Integer>, List<Integer>> expectedGsubTableRawData = getExpectedGsubTableRawData(
                    String.format(templatePathToFile, featureName));
            ScriptFeature scriptFeature = new MapBackedScriptFeature(featureName,
                    expectedGsubTableRawData);
            assertEquals(scriptFeature, gsubData.getFeature(featureName));
        }

    }