// Path: src/main/java/de/tuebingen/uni/sfs/germanet/api/GermaNet.java
// public static final int GNROOT_ID = 51001;


import javax.xml.stream.XMLStreamException;
import java.io.IOException;
import java.util.*;
import java.util.stream.Stream;
import static de.tuebingen.uni.sfs.germanet.api.GermaNet.GNROOT_ID;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import com.google.common.collect.Sets;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

        for (Synset synset : allSynsets) {
            allOrthFormsSet = synset.getAllOrthForms(); // uses a Set
            allOrthFormsList = new ArrayList<>();
            for (LexUnit lexUnit : synset.getLexUnits()) {
                allOrthFormsList.addAll(lexUnit.getOrthForms()); // uses a List
            }
            if (allOrthFormsSet.size() != allOrthFormsList.size()) {
                Collections.sort(allOrthFormsList);
                Collections.sort(allOrthFormsSet);
                LOGGER.warn("Synset {} \tcontains duplicate orthForms\n\t{}\n\t{}", synset.getId(), allOrthFormsSet, allOrthFormsList);
            }
        }
    }

    //@Test
    // Find all verb synsets that have exactly 1 hypernym,
    // and whose wordClass does not match that of its hypernym.
    // For informational purposes only, since this can sometimes happen.
    void wordClassOneHyperDoesntMatchVerbTest() {
        List<Synset> synsetList = gnet.getSynsets();

        int cnt = 0;
        for (Synset synset : synsetList) {
            if (!synset.inWordCategory(WordCategory.verben)) {
                continue;
            }
            List<Synset> hypernyms = synset.getRelatedSynsets(ConRel.has_hypernym);
            if (hypernyms.size() == 1) {
                Synset hyper = hypernyms.get(0);
// Path: src/main/java/de/tuebingen/uni/sfs/germanet/api/GermaNet.java
// public static final int GNROOT_ID = 51001;


// Path: src/test/java/de/tuebingen/uni/sfs/germanet/api/R14SemanticUtilsTest.java
import javax.xml.stream.XMLStreamException;
import java.io.IOException;
import java.util.*;
import java.util.stream.Stream;
import static de.tuebingen.uni.sfs.germanet.api.GermaNet.GNROOT_ID;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import com.google.common.collect.Sets;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


        for (Synset synset : allSynsets) {
            allOrthFormsSet = synset.getAllOrthForms(); // uses a Set
            allOrthFormsList = new ArrayList<>();
            for (LexUnit lexUnit : synset.getLexUnits()) {
                allOrthFormsList.addAll(lexUnit.getOrthForms()); // uses a List
            }
            if (allOrthFormsSet.size() != allOrthFormsList.size()) {
                Collections.sort(allOrthFormsList);
                Collections.sort(allOrthFormsSet);
                LOGGER.warn("Synset {} \tcontains duplicate orthForms\n\t{}\n\t{}", synset.getId(), allOrthFormsSet, allOrthFormsList);
            }
        }
    }

    //@Test
    // Find all verb synsets that have exactly 1 hypernym,
    // and whose wordClass does not match that of its hypernym.
    // For informational purposes only, since this can sometimes happen.
    void wordClassOneHyperDoesntMatchVerbTest() {
        List<Synset> synsetList = gnet.getSynsets();

        int cnt = 0;
        for (Synset synset : synsetList) {
            if (!synset.inWordCategory(WordCategory.verben)) {
                continue;
            }
            List<Synset> hypernyms = synset.getRelatedSynsets(ConRel.has_hypernym);
            if (hypernyms.size() == 1) {
                Synset hyper = hypernyms.get(0);
                if ((hyper.getId() != GNROOT_ID)