From 06da2c565d15a2d7963a18540f9179fda72a55f8 Mon Sep 17 00:00:00 2001 From: bancika Date: Wed, 15 Apr 2020 13:32:07 +0200 Subject: [PATCH] add unit test for LP switch --- .../org/diylc/components/guitar/LPSwitch.java | 2 +- .../netlist/GuitarNetlistAnalyzerTests.java | 22 +++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java b/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java index 223b4728..73097b04 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/LPSwitch.java @@ -360,7 +360,7 @@ public class LPSwitch extends AbstractTransparentComponent implements IS case 0: return index1 == 1 && index2 == 2; case 1: - return index1 > 0; + return index1 > 0 && index2 > 0 && index1 < index2; case 2: return index1 == 2 && index2 == 3; } diff --git a/diylc/diylc-library/test/org/diylc/netlist/GuitarNetlistAnalyzerTests.java b/diylc/diylc-library/test/org/diylc/netlist/GuitarNetlistAnalyzerTests.java index 3d16202c..07d5c382 100644 --- a/diylc/diylc-library/test/org/diylc/netlist/GuitarNetlistAnalyzerTests.java +++ b/diylc/diylc-library/test/org/diylc/netlist/GuitarNetlistAnalyzerTests.java @@ -22,14 +22,13 @@ package org.diylc.netlist; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.Arrays; -import java.util.Collections; import org.diylc.components.electromechanical.OpenJack1_4; import org.diylc.components.guitar.HumbuckerPickup; +import org.diylc.components.guitar.LPSwitch; import org.diylc.components.guitar.LeverSwitch; import org.diylc.components.guitar.LeverSwitch.LeverSwitchType; import org.diylc.components.guitar.SingleCoilPickup; @@ -315,4 +314,23 @@ public class GuitarNetlistAnalyzerTests { 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); + } + } }