/*
* Copyright 2013, 2014 Deutsche Nationalbibliothek
*
* Licensed under the Apache License, Version 2.0 the "License";
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.culturegraph.mf.commons.tries;
import static org.junit.Assert.assertEquals;
import org.culturegraph.mf.commons.tries.SetMatcher.Match;
import org.junit.Test;
/**
* tests {@link SetMatcher}
*
* @author Markus Michael Geipel
*
*/
public final class SetMatchTest {
@Test
public void testSetMatch() {
final SetMatcher<String> setMatch = new SetMatcher<String>();
final String[] cities = { "Perth", "York", "York Town", "München", "New York City", "New York", "Petersburg",
"ert", };
final int[] matches = { 7, 0, 7, 5, 1, 4, 1, 1, 2, 3 };
final String text = "Pexrt Perth Peerth New York City York York Town München";
for (int i = 0; i < cities.length; ++i) {
final String city = cities[i];
setMatch.put(city, city);
}
int index = 0;
//System.out.println(text);
for (Match<String> match : setMatch.match(text)) {
//System.out.println(match.getValue() + " " + match.getStart());
assertEquals(cities[matches[index]], match.getValue());
++index;
}
// setMatch.printDebug(System.err);
assertEquals("missing matches", matches.length, index);
}
}