public override PatternResult Test(List <Pattern> patterns) { if (patterns.Count == 0) { return(null); } DoubleVector actual; double error = 0.0; double correct = 0; foreach (Pattern p in patterns) { actual = sann.FeedForward(p.Inputs.Scale(0.02, 0.98)); error += sann.GetMeanSquareError(p.Outputs, actual); if (GetOutputCharacter(actual) == GetOutputCharacter(p.Outputs)) { correct++; } } return(new PatternResult(error, (correct / patterns.Count) * 100.0)); }