/// <summary>
 /// Instantiate with provided character substitution, insertion, and
 /// deletion weights.
 /// </summary>
 /// <param name="characterSubstitution">The strategy to determine character substitution weights.</param>
 /// <param name="characterInsDel">The strategy to determine character insertion/deletion weights.</param>
 public WeightedLevenshtein(ICharacterSubstitution characterSubstitution,
                            ICharacterInsDel characterInsDel)
 {
     _characterSubstitution = characterSubstitution;
     _characterInsDel       = characterInsDel;
 }
 /// <summary>
 /// Create a new instance with provided character substitution.
 /// </summary>
 /// <param name="characterSubstitution">The strategy to determine character substitution weights.</param>
 public WeightedLevenshtein(ICharacterSubstitution characterSubstitution)
 {
     _characterSubstitution = characterSubstitution;
 }
 /// <summary>
 /// Instantiate with provided character substitution.
 /// </summary>
 /// <param name="characterSubstitution">The strategy to determine character substitution weights.</param>
 public WeightedLevenshtein(ICharacterSubstitution characterSubstitution)
     : this(characterSubstitution, null)
 {
 }