add unit test for LP switch

This commit is contained in:
bancika
2020-04-15 13:32:07 +02:00
parent 3ae44ca040
commit 06da2c565d
2 changed files with 21 additions and 3 deletions
@@ -360,7 +360,7 @@ public class LPSwitch extends AbstractTransparentComponent<String> implements IS
case 0: case 0:
return index1 == 1 && index2 == 2; return index1 == 1 && index2 == 2;
case 1: case 1:
return index1 > 0; return index1 > 0 && index2 > 0 && index1 < index2;
case 2: case 2:
return index1 == 2 && index2 == 3; return index1 == 2 && index2 == 3;
} }
@@ -22,14 +22,13 @@
package org.diylc.netlist; package org.diylc.netlist;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import org.diylc.components.electromechanical.OpenJack1_4; import org.diylc.components.electromechanical.OpenJack1_4;
import org.diylc.components.guitar.HumbuckerPickup; import org.diylc.components.guitar.HumbuckerPickup;
import org.diylc.components.guitar.LPSwitch;
import org.diylc.components.guitar.LeverSwitch; import org.diylc.components.guitar.LeverSwitch;
import org.diylc.components.guitar.LeverSwitch.LeverSwitchType; import org.diylc.components.guitar.LeverSwitch.LeverSwitchType;
import org.diylc.components.guitar.SingleCoilPickup; import org.diylc.components.guitar.SingleCoilPickup;
@@ -315,4 +314,23 @@ public class GuitarNetlistAnalyzerTests {
fail("Bad connection for p=" + p + ", i=" + i + ",j=" + j); fail("Bad connection for p=" + p + ", i=" + i + ",j=" + j);
} }
} }
@Test
public void testLPSwitch() {
LPSwitch lpSwitch = new LPSwitch();
String[] validCombinations = new String[] {
"0,1,2", "1,1,2", "1,2,3", "1,1,3", "2,2,3"
};
Arrays.sort(validCombinations);
for (int p = 0; p < lpSwitch.getPositionCount(); p++)
for (int i = 0; i < lpSwitch.getControlPointCount(); i++)
for (int j = 0; j < lpSwitch.getControlPointCount(); j++) {
String test = p + "," + i + "," + j;
boolean isConnected = lpSwitch.arePointsConnected(i, j, p);
boolean isOk = (isConnected && Arrays.binarySearch(validCombinations, test) >= 0) ||
!isConnected && Arrays.binarySearch(validCombinations, test) < 0;
if (!isOk)
fail("Bad connection for p=" + p + ", i=" + i + ",j=" + j);
}
}
} }