private static int CalculateChecksum(int[] weights, StringNumber number, bool tverrsum) { int checksum = 0; for (int i = 0; i < weights.Length; i++) { int weight = weights[i]; int currentNumber = number.GetAt(weights.Length - 1 - i); int product = weight * currentNumber; if (tverrsum) { if (product > 9) { checksum += product - 9; } else { checksum += product; } } else { checksum += product; } } return(checksum); }
protected static int CalculateMod10CheckSum(int[] weights, StringNumber number) { int checksum = CalculateChecksum(weights, number, true)%10; if (checksum == 0) return 0; else return 10 - checksum; }
protected static int[] GetMod11Weights(StringNumber k) { var weights = new int[k.GetLength() - 1]; for (int i = 0; i < weights.Length; i++) { int j = i%BaseMod11Weights.Length; weights[i] = BaseMod11Weights[j]; } return weights; }
protected static int CalculateMod11CheckSum(int[] weights, StringNumber number) { int c = CalculateChecksum(weights, number, false) % 11; if (c == 1) { throw new ArgumentException(ERROR_INVALID_CHECKSUM + number); } return(c == 0 ? 0 : 11 - c); }
protected static int CalculateMod11CheckSum(int[] weights, StringNumber number) { int checksum = CalculateChecksum(weights, number, false)%11; if (checksum == 1) throw new ArgumentException(InvalidChecksumErrorMessage + number); if (checksum == 0) return 0; else return 11 - checksum; }
protected static int[] GetMod11Weights(StringNumber k) { var weights = new int[k.GetLength() - 1]; for (int i = 0; i < weights.Length; i++) { int j = i % BaseMod11Weights.Length; weights[i] = BaseMod11Weights[j]; } return(weights); }
protected static int[] GetMod10Weights(StringNumber k) { var weights = new int[k.GetLength() - 1]; for (int i = 0; i < weights.Length; i++) { if ((i%2) == 0) weights[i] = 2; else weights[i] = 1; } return weights; }
protected static int CalculateMod10CheckSum(int[] weights, StringNumber number) { int checksum = CalculateChecksum(weights, number, true) % 10; if (checksum == 0) { return(0); } else { return(10 - checksum); } }
protected static int[] GetMod10Weights(StringNumber k) { var weights = new int[k.GetLength() - 1]; for (int i = 0; i < weights.Length; i++) { if ((i % 2) == 0) { weights[i] = 2; } else { weights[i] = 1; } } return(weights); }
protected static int CalculateMod11CheckSum(int[] weights, StringNumber number) { int checksum = CalculateChecksum(weights, number, false) % 11; if (checksum == 1) { throw new ArgumentException(InvalidChecksumErrorMessage + number); } if (checksum == 0) { return(0); } else { return(11 - checksum); } }
private static int CalculateChecksum(int[] weights, StringNumber number, bool tverrsum) { int checkSum = 0; for (int i = 0; i < weights.Length; i++) { int product = weights[i] * number.GetAt(weights.Length - 1 - i); if (tverrsum) { checkSum += (product > 9 ? product - 9 : product); } else { checkSum += product; } } return(checkSum); }
private static int CalculateChecksum(int[] weights, StringNumber number, bool tverrsum) { int checksum = 0; for (int i = 0; i < weights.Length; i++) { int weight = weights[i]; int currentNumber = number.GetAt(weights.Length - 1 - i); int product = weight*currentNumber; if (tverrsum) { if (product > 9) checksum += product - 9; else checksum += product; } else { checksum += product; } } return checksum; }
protected static int CalculateMod10CheckSum(int[] weights, StringNumber number) { int c = CalculateChecksum(weights, number, true) % 10; return(c == 0 ? 0 : 10 - c); }