@Override
    public void observe(MultiLabel output) {
        if (output == MultiLabelFactory.UNKNOWN_MULTILABEL) {
            unknownCount++;
        } else {
            for (String label : output.getNameSet()) {
                if (label.contains(",")) {
                    throw new IllegalStateException("MultiLabel cannot use a Label which contains ','. The supplied label was " + label + ".");
                }
                MutableLong value = labelCounts.computeIfAbsent(label, k -> new MutableLong());
                labels.computeIfAbsent(label, MultiLabel::new);
                value.increment();
            }
            totalCount++;
        }
    }
@Test
    public void test() {
        MutableMultiLabelInfo info = new MutableMultiLabelInfo();

        info.observe(label("a"));
        assertEquals(1, info.size());

        ImmutableOutputInfo<MultiLabel> imm = info.generateImmutableOutputInfo();
        assertEquals(1, imm.size());
    }