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