Algorithm
The algorithm returns:
- an exception if either argument is null (Score catches and handles this)
- the result of NormalizedDamerauLevenshteinDifference if both strings are of length > 1
- the result of CaseInsensitiveInitialTest otherwise
The algorithm returns: