package com.github.liblevenshtein.transducer; import org.testng.annotations.Test; public class MergeAndSplitPositionTransitionFunctionTest extends AbstractPositionTransitionFunctionTest { @Override protected PositionTransitionFunction buildTransition() { return new MergeAndSplitPositionTransitionFunction(); } @Test public void testOf() { i = 0; e = 0; x = false; check(1 + i, e, false, new boolean[] {true, false, false, false}); check(i, 1 + e, false, i, 1 + e, true, 1 + i, 1 + e, false, 2 + i, 1 + e, false, new boolean[] {false, true, true, true}); i = W - 1; check(1 + i, e, false, new boolean[] {true, true, true, true}); check(i, 1 + e, false, i, 1 + e, true, 1 + i, 1 + e, false, new boolean[] {false, false, false, false}); i = 1; e = 1; check(1 + i, e, false, new boolean[] {true, true, false, false}); check(i, 1 + e, false, i, 1 + e, true, 1 + i, 1 + e, false, 2 + i, 1 + e, false, new boolean[] {false, false, true, true}); x = true; check(1 + i, e, false, new boolean[] {true, true, true, true}); i = W - 1; x = false; check(1 + i, e, false, new boolean[] {true, true, true, true}); check(i, 1 + e, false, i, 1 + e, true, 1 + i, 1 + e, false, new boolean[] {false, false, false, false}); x = true; check(1 + i, e, false, new boolean[] {true, true, true, true}); i = W; x = false; check(W, 1 + e, false, new boolean[] {true, true, true, true}); i = 1; e = N; check(1 + i, N, false, new boolean[] {true, true, true, true}); check(false, false, false, false); x = true; check(1 + i, e, false, new boolean[] {true, true, true, true}); i = W; x = false; check(true, true, true, true); } }