public bool IsExceptionThreeAndCanSkipSecondCheck()
 {
     return(WeightMappings.Second()
            .Exception == 3 &&
            (AccountNumber.IntegerAt(2) == 6 ||
             AccountNumber.IntegerAt(2) == 9));
 }
 public int[] GetExceptionTwoAlternativeWeights(int[] originalWeights)
 {
     if (AccountNumber.IntegerAt(0) != 0)
     {
         return(AccountNumber.IntegerAt(6) == 9
                                       ? AisNotZeroAndGisNineWeights
                                       : AisNotZeroAndGisNotNineWeights);
     }
     return(originalWeights);
 }
 private void ExceptionSevenPreprocessing()
 {
     if (WeightMappings.First().Exception != 7)
     {
         return;
     }
     if (AccountNumber.IntegerAt(6) != 9)
     {
         return;
     }
     ZeroiseUtoB(WeightMappings.First());
 }
        private IList <ModulusWeightMapping> ExceptionSevenPreprocessing(IList <ModulusWeightMapping> mappings)
        {
            if (mappings.First().Exception != 7)
            {
                return(mappings);
            }
            if (AccountNumber.IntegerAt(6) != 9)
            {
                return(mappings);
            }

            return(mappings.Select((m, index) => index == 0 ? ZeroiseUtoB(m) : m).ToList());
        }