/** * Returns an array of codes with invalid check digits. * * @param codes Codes with valid check digits * @return Codes with invalid check digits */ protected String[] createInvalidCodes(String[] codes) { List<String> list = new ArrayList<String>(); // create invalid check digit values for (String fullCode : codes) { String code = removeCheckDigit(fullCode); String check = checkDigit(fullCode); for (int j = 0; j < POSSIBLE_CHECK_DIGITS.length(); j++) { String curr = POSSIBLE_CHECK_DIGITS.substring(j, j + 1);//"" + Character.forDigit(j, 10); if (!curr.equals(check)) { list.add(code + curr); } } } return list.toArray(new String[list.size()]); }
/** * Test calculate() for valid values. */ public void testCalculateValid() { if (log.isDebugEnabled()) { log.debug("testCalculateValid() for " + routine.getClass().getName()); } // test valid values for (int i = 0; i < valid.length; i++) { String code = removeCheckDigit(valid[i]); String expected = checkDigit(valid[i]); try { if (log.isDebugEnabled()) { log.debug(" " + i + " Testing Valid Check Digit, Code=[" + code + "] expected=[" + expected + "]"); } assertEquals("valid[" + i +"]: " + valid[i], expected, routine.calculate(code)); } catch (Exception e) { fail("valid[" + i +"]=" + valid[i] + " threw " + e); } } }
log.debug(" " + i + " Testing Invalid Check Digit, Code=[" + code + "]"); String expected = checkDigit(code); String actual = routine.calculate(removeCheckDigit(code));