Skip to content
Snippets Groups Projects
Select Git revision
  • 6a407f80595b6d275ec06b36a63d4a34c2bb5247
  • main default protected
  • feature/waiting
  • feature/control
  • feature/tracing
  • feature/demo
  • wip
7 results

ParserTest.java

Blame
  • ParserTest.java 1.32 KiB
    package de.tudresden.inf.st.mg;
    
    import de.tudresden.inf.st.mg.common.MotionGrammarParser;
    import de.tudresden.inf.st.mg.jastadd.model.T1;
    import de.tudresden.inf.st.mg.jastadd.model.World;
    import org.junit.jupiter.api.BeforeAll;
    import org.junit.jupiter.api.Test;
    
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.util.Comparator;
    import java.util.Random;
    
    import static org.assertj.core.api.Assertions.assertThat;
    
    public class ParserTest {
    
      public static final Path AST_DIAGRAM_DIR = Path.of("src", "gen", "resources", "diagrams", "parsing");
    
      @BeforeAll
      static void prepareOutputPath() throws IOException {
        try {
          Files.walk(AST_DIAGRAM_DIR)
                  .sorted(Comparator.reverseOrder())
                  .map(Path::toFile)
                  .forEach(File::delete);
        } catch (IOException e) {
          // do nothing
        }
        Files.createDirectories(AST_DIAGRAM_DIR);
      }
    
      @Test
      void runParser() throws MotionGrammarParser.ParseException {
    
        // for some reason, the best random seed value here is 1 and not 0???
        World world = World.initialWorld(new Random(1));
    
        WorldParser parser = new WorldParser(world);
        parser.setDebugDiagramDir(AST_DIAGRAM_DIR);
    
        var result = parser.parse();
    
        assertThat(result).isNotNull().isInstanceOf(T1.class);
      }
    
    }