// Path: collatex-core/src/main/java/eu/interedition/collatex/matching/StrictEqualityTokenComparator.java
// public class StrictEqualityTokenComparator implements Comparator<Token> {
// 
//     @Override
//     public int compare(Token base, Token witness) {
//         final String baseContent = ((SimpleToken) base).getContent();
//         final String witnessContent = ((SimpleToken) witness).getContent();
//         return baseContent.compareTo(witnessContent);
//     }
// 
// }


import java.util.logging.Level;
import java.util.stream.Collectors;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import eu.interedition.collatex.*;
import eu.interedition.collatex.dekker.DekkerAlgorithm;
import eu.interedition.collatex.dekker.Match;
import eu.interedition.collatex.dekker.PhraseMatchDetector;
import eu.interedition.collatex.matching.EqualityTokenComparator;
import eu.interedition.collatex.matching.StrictEqualityTokenComparator;
import eu.interedition.collatex.simple.SimpleWitness;
import org.junit.Test;
import javax.xml.stream.XMLStreamException;
import java.util.*;
        assertTrue(tokensAsString.contains("C:4:'voer'"));
        assertTrue(tokensAsString.contains("C:5:'een'"));
        assertTrue(tokensAsString.contains("C:7:'grote'"));
        assertTrue(tokensAsString.contains("C:8:'stomer'"));
    }

    //  String newLine = System.getProperty("line.separator");

    @Test
    public void test1() {
        SimpleWitness[] sw = createWitnesses("A B C A B", "A B C A B");
        VariantGraph vg = collate(sw[0]);
        MatchTableLinker linker = new MatchTableLinker();
        Map<Token, VariantGraph.Vertex> linkedTokens = linker.link(vg, sw[1], new EqualityTokenComparator());

        Set<Token> tokens = linkedTokens.keySet();
        Set<String> tokensAsString = new LinkedHashSet<>();
        for (Token token : tokens) {
            tokensAsString.add(token.toString());
        }
        assertTrue(tokensAsString.contains("B:0:'a'"));
        assertTrue(tokensAsString.contains("B:1:'b'"));
        assertTrue(tokensAsString.contains("B:2:'c'"));
        assertTrue(tokensAsString.contains("B:3:'a'"));
        assertTrue(tokensAsString.contains("B:4:'b'"));
    }

    @Test
    public void testOverDeAtlantischeOceaan() {
        int outlierTranspositionsSizeLimit = 1;
// Path: collatex-core/src/main/java/eu/interedition/collatex/matching/StrictEqualityTokenComparator.java
// public class StrictEqualityTokenComparator implements Comparator<Token> {
// 
//     @Override
//     public int compare(Token base, Token witness) {
//         final String baseContent = ((SimpleToken) base).getContent();
//         final String witnessContent = ((SimpleToken) witness).getContent();
//         return baseContent.compareTo(witnessContent);
//     }
// 
// }


// Path: collatex-core/src/test/java/eu/interedition/collatex/dekker/legacy/MatchTableLinkerTest.java
import java.util.logging.Level;
import java.util.stream.Collectors;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import eu.interedition.collatex.*;
import eu.interedition.collatex.dekker.DekkerAlgorithm;
import eu.interedition.collatex.dekker.Match;
import eu.interedition.collatex.dekker.PhraseMatchDetector;
import eu.interedition.collatex.matching.EqualityTokenComparator;
import eu.interedition.collatex.matching.StrictEqualityTokenComparator;
import eu.interedition.collatex.simple.SimpleWitness;
import org.junit.Test;
import javax.xml.stream.XMLStreamException;
import java.util.*;

        assertTrue(tokensAsString.contains("C:4:'voer'"));
        assertTrue(tokensAsString.contains("C:5:'een'"));
        assertTrue(tokensAsString.contains("C:7:'grote'"));
        assertTrue(tokensAsString.contains("C:8:'stomer'"));
    }

    //  String newLine = System.getProperty("line.separator");

    @Test
    public void test1() {
        SimpleWitness[] sw = createWitnesses("A B C A B", "A B C A B");
        VariantGraph vg = collate(sw[0]);
        MatchTableLinker linker = new MatchTableLinker();
        Map<Token, VariantGraph.Vertex> linkedTokens = linker.link(vg, sw[1], new EqualityTokenComparator());

        Set<Token> tokens = linkedTokens.keySet();
        Set<String> tokensAsString = new LinkedHashSet<>();
        for (Token token : tokens) {
            tokensAsString.add(token.toString());
        }
        assertTrue(tokensAsString.contains("B:0:'a'"));
        assertTrue(tokensAsString.contains("B:1:'b'"));
        assertTrue(tokensAsString.contains("B:2:'c'"));
        assertTrue(tokensAsString.contains("B:3:'a'"));
        assertTrue(tokensAsString.contains("B:4:'b'"));
    }

    @Test
    public void testOverDeAtlantischeOceaan() {
        int outlierTranspositionsSizeLimit = 1;
        collationAlgorithm = new DekkerAlgorithm(new StrictEqualityTokenComparator());