TextFrontendTest.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package jplag.text;
  2. import static org.junit.jupiter.api.Assertions.assertEquals;
  3. import static org.junit.jupiter.api.Assertions.assertTrue;
  4. import java.io.File;
  5. import java.nio.file.Path;
  6. import java.util.Arrays;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9. import java.util.stream.StreamSupport;
  10. import org.junit.jupiter.api.BeforeEach;
  11. import org.junit.jupiter.api.Test;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import de.jplag.Token;
  15. import de.jplag.TokenList;
  16. import de.jplag.TokenPrinter;
  17. import de.jplag.text.Language;
  18. class TextFrontendTest {
  19. private final Logger logger = LoggerFactory.getLogger("JPlag-Test");
  20. private static final Path BASE_PATH = Path.of("src", "test", "resources");
  21. private static final String TEST_SUBJECT = "FutureJavaDoc.txt";
  22. private de.jplag.Language frontend;
  23. private File baseDirectory;
  24. @BeforeEach
  25. public void setUp() {
  26. frontend = new Language();
  27. baseDirectory = BASE_PATH.toFile();
  28. assertTrue(baseDirectory.exists(), "Could not find base directory!");
  29. }
  30. @Test
  31. void testParsingJavaDoc() {
  32. // Parse test input
  33. String[] input = new String[] {TEST_SUBJECT};
  34. TokenList result = frontend.parse(baseDirectory, input);
  35. logger.info(TokenPrinter.printTokens(result, baseDirectory, Arrays.asList(input)));
  36. // Compare parsed tokens:
  37. Map<Integer, Token> tokenTypes = new HashMap<>();
  38. StreamSupport.stream(result.allTokens().spliterator(), false).forEach(it -> tokenTypes.put(it.getType(), it));
  39. assertEquals(293, result.size());
  40. assertEquals(156, tokenTypes.values().size());
  41. }
  42. }