public void testCanFindClosestTokens() { TokenPair expected = null; TokenPair actual = null; try { expected = new TokenPair(new Token("a", 0), new Token("b", 2)); actual = new FindClosestTokens( "a b", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); actual = new FindClosestTokens( "a b", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("b", 0), new Token("a", 2)); actual = new FindClosestTokens( "b a", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); actual = new FindClosestTokens( "b a", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("a", 0), new Token("b", 2)); actual = new FindClosestTokens( "a b c", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); actual = new FindClosestTokens( "a b c", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("b", 2), new Token("a", 4)); actual = new FindClosestTokens( "c b a", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); expected = new TokenPair(new Token("c", 0), new Token("b", 2)); actual = new FindClosestTokens( "c b a", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("a", 2), new Token("b", 4)); actual = new FindClosestTokens( "c a b", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); expected = new TokenPair(new Token("c", 0), new Token("a", 2)); actual = new FindClosestTokens( "c a b", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("b", 0), new Token("a", 2)); actual = new FindClosestTokens( "b a c", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); actual = new FindClosestTokens( "b a c", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("a", 0), new Token("b", 4)); actual = new FindClosestTokens( "a c b", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); expected = new TokenPair(new Token("a", 0), new Token("c", 2)); actual = new FindClosestTokens( "a c b", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("a", 8), new Token("b", 10)); actual = new FindClosestTokens( "a a a a a b b b b b b b", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); actual = new FindClosestTokens( "a a a a a b b b b b b b", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("a", 0), new Token("b", 20)); actual = new FindClosestTokens( "a c d e f g h i j k b", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); expected = new TokenPair(new Token("a", 0), new Token("c", 2)); actual = new FindClosestTokens( "a c d e f g h i j k b", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("a", 8), new Token("b", 12)); actual = new FindClosestTokens( "a a a a a c b b b b b b b", new HashSet<>(Arrays.asList(new String[] {"a", "b"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); expected = new TokenPair(new Token("a", 8), new Token("c", 10)); actual = new FindClosestTokens( "a a a a a c b b b b b b b", new HashSet<>(Arrays.asList(new String[] {"a", "b", "c"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } expected = actual = null; try { expected = new TokenPair(new Token("e", 28), new Token("f", 30)); actual = new FindClosestTokens( "a x x x x b x x x c x x d x e f x g x x h x x x i x x x x j", new HashSet<>( Arrays.asList( new String[] {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); expected = new TokenPair(new Token("c", 18), new Token("d", 24)); actual = new FindClosestTokens( "a x x x x b x x x c x x d x x e x x f x x g x x h x x x i x x x x j", new HashSet<>( Arrays.asList( new String[] {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"})), tokenizer) .execute(); assertNotNull(actual); assertEquals(actual, expected); } catch (Exception e) { StringBuilder.buildString(expected, actual); } }