@Override
    protected Map<String, GroupInfo> createGroupInfos() {
        AbstractSeriesSelector seriesSelector = new AbstractSeriesSelector() {
            @Override
            public Iterable<String> select(Sample sample) {
                return Collections.singletonList(sampleVariableName);
            }
        };

        GraphValueSelector graphValueSelector = (series, sample) -> {
            String value;
            if (isNativeSampleVariableName) {
                value = sample.getData(sampleVariableName);
            } else {
                value = sample.getData(CSVSaveService.VARIABLE_NAME_QUOTE_CHAR
                        + sampleVariableName
                        + CSVSaveService.VARIABLE_NAME_QUOTE_CHAR);
            }

            if (StringUtils.isEmpty(value) || "null".equals(value)) {
                return null;
            }

            try {
                return Converters.convert(Double.class, value);
            } catch (ConvertException e) {
                throw new IllegalArgumentException("Double converter failed", e);
            }
        };

        return Collections.singletonMap(
                AbstractGraphConsumer.DEFAULT_GROUP,
                new GroupInfo(
                        new MeanAggregatorFactory(),
                        seriesSelector,
                        // We ignore Transaction Controller results
                        graphValueSelector, false, false));
    }
@Test
    public void testCreateGroupInfos() {
        // Testing defaults values
        assertThat(map.containsKey("Generic group"), equalTo(true));
        assertThat(map.containsKey("foo"), equalTo(false));
        assertThat(map.get("Generic group").getAggregatorFactory().getClass(),
                equalTo(org.apache.jmeter.report.processor.MeanAggregatorFactory.class));
        GroupData groupData = map.get("Generic group").getGroupData();
        assertThat(groupData.getOverallSeries(), equalTo(null));
        assertThat(groupData.getSeriesInfo(), equalTo(new HashMap<String, SeriesData>()));

        // Testing native sample variable
        customGraphConsumer.setSampleVariableName("bytes");
        Sample sample = new Sample(0, sampleMetaData, data);
        Double testedValue = map.get("Generic group").getValueSelector().select("bytes", sample);
        assertThat(testedValue, equalTo(492.0));

        // Testing non-native sample variable
        customGraphConsumer.setSampleVariableName("mm-miss");
        testedValue = map.get("Generic group").getValueSelector().select("mm-miss", sample);
        assertThat(testedValue, equalTo(null));

        // Testing empty data value, the change between data and data2
        // is on the last value that switchs from "null" to ""
        String[] data2 = {"1527089951383", "0", "Read-compute", "200", "OK", "setupRegion 1-1", "true", "", "492", "0", "1", "1",
                "null", "0", "0", "0", "/stream1a/master.m3u8?e=0&h=56345c61b7b415e0260c19963a153092", "null", "5500000", "null",
                "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", ""};
        sample = new Sample(0, sampleMetaData, data2);
        testedValue = map.get("Generic group").getValueSelector().select("mm-miss", sample);
        assertThat(testedValue, equalTo(null));
    }