From cf90c1e7586f47d16a13b94adb282180185e0f2f Mon Sep 17 00:00:00 2001 From: sshkurov Date: Thu, 3 Feb 2022 03:27:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packmate/PatternMatcherTest.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/test/java/ru/serega6531/packmate/PatternMatcherTest.java b/src/test/java/ru/serega6531/packmate/PatternMatcherTest.java index f550c0f..f4e450f 100644 --- a/src/test/java/ru/serega6531/packmate/PatternMatcherTest.java +++ b/src/test/java/ru/serega6531/packmate/PatternMatcherTest.java @@ -1,7 +1,7 @@ package ru.serega6531.packmate; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import org.springframework.util.Assert; import ru.serega6531.packmate.model.FoundPattern; import ru.serega6531.packmate.model.Pattern; import ru.serega6531.packmate.model.enums.PatternSearchType; @@ -27,13 +27,14 @@ public class PatternMatcherTest { .build()); final Pattern pattern = new Pattern(); + pattern.setId(1); pattern.setValue("[a-f]{3}"); pattern.setSearchType(PatternSearchType.REGEX); final PatternMatcher matcher = new PatternMatcher(content.getBytes(), List.of(pattern)); final Set matches = matcher.findMatches(); - Assert.isTrue(matches.equals(correctMatches), "Incorrect search: " + matches.toString()); + assertMatchesAreCorrect(correctMatches, matches); } @Test @@ -50,13 +51,14 @@ public class PatternMatcherTest { .build()); final Pattern pattern = new Pattern(); + pattern.setId(1); pattern.setValue("bbb"); pattern.setSearchType(PatternSearchType.SUBSTRING); final PatternMatcher matcher = new PatternMatcher(content.getBytes(), List.of(pattern)); final Set matches = matcher.findMatches(); - Assert.isTrue(matches.equals(correctMatches), "Incorrect search: " + matches.toString()); + assertMatchesAreCorrect(correctMatches, matches); } @Test @@ -73,13 +75,27 @@ public class PatternMatcherTest { .build()); final Pattern pattern = new Pattern(); + pattern.setId(1); pattern.setValue("AAaa"); pattern.setSearchType(PatternSearchType.SUBBYTES); final PatternMatcher matcher = new PatternMatcher(content, List.of(pattern)); final Set matches = matcher.findMatches(); - Assert.isTrue(matches.equals(correctMatches), "Incorrect search: " + matches.toString()); + assertMatchesAreCorrect(correctMatches, matches); + } + + private void assertMatchesAreCorrect(Set correctMatches, Set foundMatches) { + Assertions.assertEquals(correctMatches.size(), foundMatches.size()); + + Assertions.assertTrue(correctMatches.stream().allMatch(correct -> + foundMatches.stream().anyMatch(found -> matchesEqual(correct, found)) + )); + } + + private boolean matchesEqual(FoundPattern one, FoundPattern two) { + return one.getStartPosition() == two.getStartPosition() && + one.getEndPosition() == two.getEndPosition(); } }