I’ve found two thing wrong in the implementation of the jaro algorithm and since i am not familiar with the cvs i thought i should post‘em here.
1) In the computation of distance the line should be
this.Distance = Math.Min(string1.Length, string2.Length) / 2 + Math.Min(string1.Length, string2.Length) % 2; in order to have a proper rounding
2) and to avoid the left vs right distance difference that shows up sometimes we have to edit the following line:
//compare char with range of characters to either side
for (int j = Math.Max (0, i - distance); !foundIt && j <= Math.Min(i + distance, string2.Length - 1 ); j++)
Keep up the good work!