diff --git a/src/StringDistances.jl b/src/StringDistances.jl index 74cb3c0..c1a37f0 100644 --- a/src/StringDistances.jl +++ b/src/StringDistances.jl @@ -68,7 +68,7 @@ function Base.chr2ind(s::GraphemeIterator, i::Integer) end end Base.endof(g::GraphemeIterator) = endof(g.s) -Base.SubString(x::GraphemeIterator, i, j) = SubString(x.s, i, j) +Base.SubString(x::GraphemeIterator, i, j) = graphemes(SubString(x.s, i, j)) typealias GraphemeOrString Union{GraphemeIterator, AbstractString} diff --git a/test/distances.jl b/test/distances.jl index b7c919b..24e704b 100644 --- a/test/distances.jl +++ b/test/distances.jl @@ -149,4 +149,7 @@ for x in solutions for i in 1:length(solution) @test_approx_eq_eps evaluate(t, strings[i]...) solution[i] 1e-4 end -end \ No newline at end of file +end + +@test evaluate(Hamming(), "b\u0300", "a") == 2 +@test evaluate(Hamming(), graphemes("b\u0300"), graphemes("a")) == 1 \ No newline at end of file