Исправлены тесты

This commit is contained in:
sshkurov
2022-02-03 03:27:58 +03:00
parent 61cabaaa3b
commit cf90c1e758

View File

@@ -1,7 +1,7 @@
package ru.serega6531.packmate; package ru.serega6531.packmate;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.util.Assert;
import ru.serega6531.packmate.model.FoundPattern; import ru.serega6531.packmate.model.FoundPattern;
import ru.serega6531.packmate.model.Pattern; import ru.serega6531.packmate.model.Pattern;
import ru.serega6531.packmate.model.enums.PatternSearchType; import ru.serega6531.packmate.model.enums.PatternSearchType;
@@ -27,13 +27,14 @@ public class PatternMatcherTest {
.build()); .build());
final Pattern pattern = new Pattern(); final Pattern pattern = new Pattern();
pattern.setId(1);
pattern.setValue("[a-f]{3}"); pattern.setValue("[a-f]{3}");
pattern.setSearchType(PatternSearchType.REGEX); pattern.setSearchType(PatternSearchType.REGEX);
final PatternMatcher matcher = new PatternMatcher(content.getBytes(), List.of(pattern)); final PatternMatcher matcher = new PatternMatcher(content.getBytes(), List.of(pattern));
final Set<FoundPattern> matches = matcher.findMatches(); final Set<FoundPattern> matches = matcher.findMatches();
Assert.isTrue(matches.equals(correctMatches), "Incorrect search: " + matches.toString()); assertMatchesAreCorrect(correctMatches, matches);
} }
@Test @Test
@@ -50,13 +51,14 @@ public class PatternMatcherTest {
.build()); .build());
final Pattern pattern = new Pattern(); final Pattern pattern = new Pattern();
pattern.setId(1);
pattern.setValue("bbb"); pattern.setValue("bbb");
pattern.setSearchType(PatternSearchType.SUBSTRING); pattern.setSearchType(PatternSearchType.SUBSTRING);
final PatternMatcher matcher = new PatternMatcher(content.getBytes(), List.of(pattern)); final PatternMatcher matcher = new PatternMatcher(content.getBytes(), List.of(pattern));
final Set<FoundPattern> matches = matcher.findMatches(); final Set<FoundPattern> matches = matcher.findMatches();
Assert.isTrue(matches.equals(correctMatches), "Incorrect search: " + matches.toString()); assertMatchesAreCorrect(correctMatches, matches);
} }
@Test @Test
@@ -73,13 +75,27 @@ public class PatternMatcherTest {
.build()); .build());
final Pattern pattern = new Pattern(); final Pattern pattern = new Pattern();
pattern.setId(1);
pattern.setValue("AAaa"); pattern.setValue("AAaa");
pattern.setSearchType(PatternSearchType.SUBBYTES); pattern.setSearchType(PatternSearchType.SUBBYTES);
final PatternMatcher matcher = new PatternMatcher(content, List.of(pattern)); final PatternMatcher matcher = new PatternMatcher(content, List.of(pattern));
final Set<FoundPattern> matches = matcher.findMatches(); final Set<FoundPattern> matches = matcher.findMatches();
Assert.isTrue(matches.equals(correctMatches), "Incorrect search: " + matches.toString()); assertMatchesAreCorrect(correctMatches, matches);
}
private void assertMatchesAreCorrect(Set<FoundPattern> correctMatches, Set<FoundPattern> 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();
} }
} }