diff options
-rw-r--r-- | core/source/main/scala/com/rockymadden/stringmetric/Transform.scala | 2 | ||||
-rw-r--r-- | core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala | 11 | ||||
-rwxr-xr-x | readme.md | 4 |
3 files changed, 15 insertions, 2 deletions
diff --git a/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala b/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala index 390c4f2..c2cdace 100644 --- a/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala +++ b/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala @@ -65,5 +65,7 @@ object Transform { val filterUpperCase: StringTransform = (ca) => filter(ca, c => UpperCase.contains(c.toInt)) val filterNotUpperCase: StringTransform = (ca) => filterNot(ca, c => UpperCase.contains(c.toInt)) + + val ignoreAlphaCase: StringTransform = (ca) => ca.map(c => if (c >= 65 && c <= 90) (c + 32).toChar else c) } } diff --git a/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala b/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala index 5b93cfa..2349a6a 100644 --- a/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala +++ b/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala @@ -167,4 +167,15 @@ final class TransformSpec extends ScalaTest { "StringTransform" should provide { } } } + "ignoreAlphaCase()" when passed { + "String" should returns { + "transformed String" in { + StringTransform.ignoreAlphaCase( + ("aBc123" + 0x250.toChar).toCharArray + ) should equal ( + ("abc123" + 0x250.toChar).toCharArray + ) + } + } + } }} @@ -264,9 +264,9 @@ Single filter, so that we only examine alphabetical characters: --- -Functionally composed filter, so that we only examine uppercase characters: +Functionally composed filter, so that we only examine alphabetical characters but the case won't matter: ```scala -val composedTransform = (StringTransform.filterAlpha andThen StringTransform.filterUpperCase) +val composedTransform = (StringTransform.filterAlpha andThen StringTransform.ignoreAlphaCase) (MetaphoneAlgorithm withTransform composedTransform).compute("abc123") (MetaphoneMetric withTransform composedTransform).compare("abc123", "abc456") |