Skip to content

Commit

Permalink
Merge pull request #21 from InfiniteEnergy/token-bugs
Browse files Browse the repository at this point in the history
bugfix `token` match
  • Loading branch information
ryepup committed Apr 23, 2021
2 parents 91390c3 + a438052 commit c872e42
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
2 changes: 2 additions & 0 deletions src/XlsxCompare.Tests/MatchByTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public class MatchByTests
[DataRow(MatchBy.Tokens, "X Y", "Y X")]
[DataRow(MatchBy.Tokens, "X Y Z", " Z X Y")]
[DataRow(MatchBy.Tokens, "", "")]
[DataRow(MatchBy.Tokens, "X Y Z", "X Y Z")]
public void IsMatch_ThingsThatMatch_ReturnsTrue(MatchBy? match, string left, string right)
{
Assert.IsTrue(match.IsMatch(left, right));
Expand All @@ -44,6 +45,7 @@ public void IsMatch_ThingsThatMatch_ReturnsTrue(MatchBy? match, string left, str
[DataRow(MatchBy.StringRightStartsWithLeft, "asdf but no", "asdf and then some")]
[DataRow(MatchBy.Tokens, "X Y", "Y Z")]
[DataRow(MatchBy.Tokens, "X", " ")]
[DataRow(MatchBy.Tokens, "X Y Z", "X Y Z AA")]
public void IsMatch_ThingsThatDoNotMatch_ReturnsFalse(MatchBy? match, string left, string right)
{
Assert.IsFalse(match.IsMatch(left, right));
Expand Down
11 changes: 5 additions & 6 deletions src/XlsxCompare/MatchBy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,11 @@ private static bool IsDecimalMatch(string left, string right)
&& leftInt == rightInt);

private static bool IsTokenMatch(string left, string right)
=> IsTokenMatch(Tokenize(left), Tokenize(right));
=> Tokenize(left).SetEquals(Tokenize(right));

private static bool IsTokenMatch(IEnumerable<string> left, IEnumerable<string> right)
=> !left.Except(right, StringComparer.OrdinalIgnoreCase).Any();

private static IEnumerable<string> Tokenize(string value)
=> value.Split(' ').Select(x => x.Trim());
private static ISet<string> Tokenize(string value)
=> new HashSet<string>(
value.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries),
StringComparer.OrdinalIgnoreCase);
}
}

0 comments on commit c872e42

Please sign in to comment.