]> git.leonardobizzoni.com Git - astar-visualizer/commitdiff
Added animation during pathfinding
authorleo <leo@EnvyPhoenix.lan>
Fri, 19 Nov 2021 20:05:03 +0000 (21:05 +0100)
committerleo <leo@EnvyPhoenix.lan>
Fri, 19 Nov 2021 20:05:03 +0000 (21:05 +0100)
14 files changed:
src/main/java/Main/AStar.java
src/main/java/Main/Map.java
target/PathVisualizer-1.0-SNAPSHOT.jar
target/classes/Main/AStar.class
target/classes/Main/App.class
target/classes/Main/Map.class
target/classes/Main/Node.class
target/classes/Main/PathfinderUtils.class
target/maven-archiver/pom.properties
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
target/surefire-reports/Main.AppTest.txt
target/surefire-reports/TEST-Main.AppTest.xml
target/test-classes/Main/AppTest.class

index e86a96796497194af6495ed7570deb89c9b2889d..063931291bf89b9472c377a49e40f3555929b84a 100644 (file)
@@ -1,6 +1,8 @@
 package Main;
 
-public class AStar{
+import javax.swing.JOptionPane;
+
+public class AStar implements Runnable {
     private Map map;
     private int x, y;
 
@@ -9,26 +11,33 @@ public class AStar{
         PathfinderUtils.path.clear();
     }
 
-    public void start() {
+    @Override
+    public void run() {
         searchPath(PathfinderUtils.startNode);
     }
     
     public void searchPath(Node parent) {
-        for (int i = 0; i < 4; i++) {
-            x = (int) Math.round(parent.getX() + (-map.getNodeSize()* Math.cos((Math.PI / 2) * i)));
-            y = (int) Math.round(parent.getY() + (-map.getNodeSize() * Math.sin((Math.PI / 2) * i)));
+        while (!map.isFinished()) {
+            for (int i = 0; i < 4; i++) {
+                x = (int) Math.round(parent.getX() + (-map.getNodeSize() * Math.cos((Math.PI / 2) * i)));
+                y = (int) Math.round(parent.getY() + (-map.getNodeSize() * Math.sin((Math.PI / 2) * i)));
 
-            calculateOpenNode(x, y, parent);
-        }
+                calculateOpenNode(x, y, parent);
+            }
 
-        if((parent = getNextBestNode()) == null)
-            return;
+            if ((parent = getNextBestNode()) == null)
+                return;
 
-        PathfinderUtils.closedNodes.add(parent);
-        PathfinderUtils.openNodes.remove(parent);
+            PathfinderUtils.closedNodes.add(parent);
+            PathfinderUtils.openNodes.remove(parent);
 
-        if (!map.isFinished())
-            searchPath(parent);
+            map.repaint();
+            try {
+                Thread.sleep(map.speed);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
     }
 
     public void calculateOpenNode(int nextX, int nextY, Node parent) {
@@ -44,7 +53,6 @@ public class AStar{
             PathfinderUtils.drawPath();
             map.setFinished(true);
             map.setRunning(false);
-            map.repaint();
             return;
         }
 
@@ -85,6 +93,7 @@ public class AStar{
         openNode.setF(f);
 
         PathfinderUtils.openNodes.add(openNode);
+        map.repaint();
     }
 
     public Node getNextBestNode() {
@@ -94,7 +103,8 @@ public class AStar{
         }
 
         map.setFinished(true);
-        map.repaint();
+        map.setRunning(false);
+        JOptionPane.showMessageDialog(null, "No path found!", "Pathfinder error", JOptionPane.ERROR_MESSAGE);
         return null;
     }
 }
index 1d307111cf24291e5869ae5e898a2003227183b1..6b15afcd20edb716023010292d877bb21ec5af55 100644 (file)
@@ -20,7 +20,9 @@ class Map extends JPanel implements MouseListener, MouseMotionListener, KeyListe
 
     private boolean isFinished = false;
     private boolean running = false;
+
     private int size = 20;
+    int speed = 10;
 
     public Map() {
         this.setBackground(new Color(40, 40, 40));
@@ -72,16 +74,18 @@ class Map extends JPanel implements MouseListener, MouseMotionListener, KeyListe
             g.fillRect(node.getX() + 1, node.getY() + 1, size - 1, size - 1);
         }
 
-        // Draws open nodes
+        // Draws external nodes
         g.setColor(new Color(69, 133, 136));
-        for (Node node : PathfinderUtils.openNodes) {
-            g.fillRect(node.getX() + 1, node.getY() + 1, size - 1, size - 1);
+        for (int i = 0; i < PathfinderUtils.openNodes.size(); i++) {
+            g.fillRect(PathfinderUtils.openNodes.get(i).getX() + 1, PathfinderUtils.openNodes.get(i).getY() + 1,
+                    size - 1, size - 1);
         }
 
-        // Draws closed nodes
+        // Draws internal nodes
         g.setColor(new Color(77, 77, 77));
-        for (Node node : PathfinderUtils.closedNodes) {
-            g.fillRect(node.getX() + 1, node.getY() + 1, size - 1, size - 1);
+        for (int i = 0; i < PathfinderUtils.closedNodes.size(); i++) {
+            g.fillRect(PathfinderUtils.closedNodes.get(i).getX() + 1, PathfinderUtils.closedNodes.get(i).getY() + 1,
+                    size - 1, size - 1);
         }
 
         // if path is found start drawing the shortest path
@@ -96,77 +100,93 @@ class Map extends JPanel implements MouseListener, MouseMotionListener, KeyListe
     // Drawing on the grid
     public void mapDrawing(MouseEvent e) {
         // Creating nodes
+        Node node = new Node(e.getX() - (e.getX() % size), e.getY() - (e.getY() % size));
+
         if (SwingUtilities.isLeftMouseButton(e)) {
+            // Start node
             if (key == 's') {
-                int posX = e.getX() - (e.getX() % size);
-                int posY = e.getY() - (e.getY() % size);
-
-                if (PathfinderUtils.startNode == null && PathfinderUtils.endNode == null) {
-                    PathfinderUtils.startNode = new Node(posX, posY);
-                } else if (PathfinderUtils.endNode != null && PathfinderUtils.startNode == null) {
-                    if (posX == PathfinderUtils.endNode.getX() && posY == PathfinderUtils.endNode.getY()) {
-                        JOptionPane.showMessageDialog(null, "Same node error",
-                                "End node and start node can't be the same node", JOptionPane.ERROR_MESSAGE);
+                // If both start and end node don't exist just create the start node
+                if (PathfinderUtils.startNode == null && PathfinderUtils.endNode == null)
+                    // Set the node as the start node
+                    PathfinderUtils.startNode = node;
+
+                // If the end node exists check if the node is the same else create the start
+                // node
+                else if (PathfinderUtils.endNode != null && PathfinderUtils.startNode == null) {
+                    if (PathfinderUtils.isSameNode(node, PathfinderUtils.endNode)) {
+                        // Send an error message saying that start and end node are the same
+                        JOptionPane.showMessageDialog(null, "End node and start node can't be the same node",
+                                "Same node error", JOptionPane.ERROR_MESSAGE);
                         return;
                     }
-                    PathfinderUtils.startNode = new Node(posX, posY);
-                } else {
-                    if (posX == PathfinderUtils.endNode.getX() && posY == PathfinderUtils.endNode.getY()) {
-                        JOptionPane.showMessageDialog(null, "Same node error",
-                                "End node and start node can't be the same node", JOptionPane.ERROR_MESSAGE);
+
+                    // Set the node as the start node
+                    PathfinderUtils.startNode = node;
+
+                }
+
+                // If they both exist check if same node else move che start node
+                else {
+                    if (PathfinderUtils.isSameNode(node, PathfinderUtils.endNode)) {
+                        JOptionPane.showMessageDialog(null, "End node and start node can't be the same node",
+                                "Same node error", JOptionPane.ERROR_MESSAGE);
                         return;
                     }
 
-                    PathfinderUtils.startNode.setX(posX);
-                    PathfinderUtils.startNode.setY(posY);
+                    // Change start node coordinates without creating a new node
+                    PathfinderUtils.startNode.setX(node.getX());
+                    PathfinderUtils.startNode.setY(node.getY());
                 }
-
-                repaint();
             }
 
+            // End node
             else if (key == 'e') {
-                int posX = e.getX() - (e.getX() % size);
-                int posY = e.getY() - (e.getY() % size);
-
-                if (PathfinderUtils.startNode == null && PathfinderUtils.endNode == null) {
-                    PathfinderUtils.endNode = new Node(posX, posY);
-                } else if (PathfinderUtils.startNode != null && PathfinderUtils.endNode == null) {
-                    if (posX == PathfinderUtils.startNode.getX() && posY == PathfinderUtils.startNode.getY()) {
-                        JOptionPane.showMessageDialog(null, "Same node error",
-                                "End node and start node can't be the same node", JOptionPane.ERROR_MESSAGE);
+                // If both start and end node don't exist just create the end node
+                if (PathfinderUtils.startNode == null && PathfinderUtils.endNode == null)
+                    // Set the node as the end node
+                    PathfinderUtils.endNode = node;
+
+                // If the start node exists check if the node is the same else create the end node
+                else if (PathfinderUtils.startNode != null && PathfinderUtils.endNode == null) {
+                    if (PathfinderUtils.isSameNode(node, PathfinderUtils.startNode)) {
+                        // Send an error message saying that start and end node are the same
+                        JOptionPane.showMessageDialog(null, "End node and start node can't be the same node",
+                                "Same node error", JOptionPane.ERROR_MESSAGE);
                         return;
                     }
-                    PathfinderUtils.endNode = new Node(posX, posY);
-                } else {
-                    if (posX == PathfinderUtils.startNode.getX() && posY == PathfinderUtils.startNode.getY()) {
-                        JOptionPane.showMessageDialog(null, "Same node error",
-                                "End node and start node can't be the same node", JOptionPane.ERROR_MESSAGE);
+
+                    // Set the node as the end node
+                    PathfinderUtils.endNode = node;
+
+                }
+                // If they both exist check if same node else move the end node
+                else {
+                    if (PathfinderUtils.startNode != null && PathfinderUtils.endNode == null) {
+                        JOptionPane.showMessageDialog(null, "End node and start node can't be the same node",
+                                "Same node error", JOptionPane.ERROR_MESSAGE);
                         return;
                     }
 
-                    PathfinderUtils.endNode.setX(posX);
-                    PathfinderUtils.endNode.setY(posY);
+                    // Change end node coordinates without creating a new node
+                    PathfinderUtils.endNode.setX(node.getX());
+                    PathfinderUtils.endNode.setY(node.getY());
                 }
-
-                repaint();
             }
 
+            // Barriers
             else {
-                int posX = e.getX() - (e.getX() % size);
-                int posY = e.getY() - (e.getY() % size);
-                Node barrierNode = new Node(posX, posY);
-
-                if (PathfinderUtils.startNode != null)
-                    if (PathfinderUtils.isSameNode(barrierNode, PathfinderUtils.startNode))
-                        return;
-                if (PathfinderUtils.endNode != null)
-                    if (PathfinderUtils.isSameNode(barrierNode, PathfinderUtils.endNode))
-                        return;
-
-                PathfinderUtils.barriers.add(barrierNode);
+                // If the start/end node exists check if the node is the same
+                // If it is return
+                if (PathfinderUtils.startNode != null && PathfinderUtils.isSameNode(node, PathfinderUtils.startNode))
+                    return;
+                if (PathfinderUtils.endNode != null && PathfinderUtils.isSameNode(node, PathfinderUtils.endNode))
+                    return;
 
-                repaint();
+                PathfinderUtils.barriers.add(node);
             }
+
+            // Update the UI with barrier/start/end node
+            repaint();
         }
 
         // Deleting nodes
@@ -177,14 +197,12 @@ class Map extends JPanel implements MouseListener, MouseMotionListener, KeyListe
             if (key == 's' && PathfinderUtils.startNode != null) {
                 if (PathfinderUtils.startNode.getX() == posX && PathfinderUtils.startNode.getY() == posY) {
                     PathfinderUtils.startNode = null;
-                    repaint();
                 }
             }
 
             else if (key == 'e' && PathfinderUtils.endNode != null) {
                 if (PathfinderUtils.endNode.getX() == posX && PathfinderUtils.endNode.getY() == posY) {
                     PathfinderUtils.endNode = null;
-                    repaint();
                 }
             }
 
@@ -194,8 +212,9 @@ class Map extends JPanel implements MouseListener, MouseMotionListener, KeyListe
                 if (nodeID != -1) {
                     PathfinderUtils.remove(nodeID);
                 }
-                repaint();
             }
+
+            repaint();
         }
     }
 
@@ -206,13 +225,15 @@ class Map extends JPanel implements MouseListener, MouseMotionListener, KeyListe
         if (key == KeyEvent.VK_SPACE) {
             if (running == false && isFinished == false) {
                 if (PathfinderUtils.startNode == null || PathfinderUtils.endNode == null) {
-                    JOptionPane.showMessageDialog(null, "Missing node", "Missing start or end node",
+                    JOptionPane.showMessageDialog(null, "Missing start or end node", "Missing node",
                             JOptionPane.ERROR_MESSAGE);
                     return;
                 }
 
                 running = true;
-                new AStar(this).start();
+
+                // AStar needs to extend runnable because otherwise map.repaint() will wait to update the UI
+                new Thread(new AStar(this)).start();
             } else if (running == false && isFinished == true) {
                 PathfinderUtils.barriers.clear();
                 PathfinderUtils.openNodes.clear();
index 50e97bdefc1d0ed4cfae0326cfde30096c43a866..81eb8c0ada0e33f68b060c4da339c9e355039d83 100644 (file)
Binary files a/target/PathVisualizer-1.0-SNAPSHOT.jar and b/target/PathVisualizer-1.0-SNAPSHOT.jar differ
index 8fb8818aff4edf656e403ce47a97af8e4ca2942b..7861da64f30328ba1b25fe820d9e6273654f0f17 100644 (file)
Binary files a/target/classes/Main/AStar.class and b/target/classes/Main/AStar.class differ
index 13e30fb49cd7e219d5a1971c5fd60b4b030bce85..5d655f5fae37bf711c33d7669b921f5e047bb031 100644 (file)
Binary files a/target/classes/Main/App.class and b/target/classes/Main/App.class differ
index e9a80609cf21e651e858263d52b8786b7d5f097d..d0ad2d530fe71fa2d3126e86d2b3719f4cae464a 100644 (file)
Binary files a/target/classes/Main/Map.class and b/target/classes/Main/Map.class differ
index 3ec59642ea54906e9c08fe2950a1b61fdfd1aeb9..930f2951c3a36fe849966c6cd6a37e211530f7d2 100644 (file)
Binary files a/target/classes/Main/Node.class and b/target/classes/Main/Node.class differ
index ef6af34278c55708becea6b8c7a6f6d7b5051c9c..a6ec0004bc6c2aa82a17eeb2102208067abaf160 100644 (file)
Binary files a/target/classes/Main/PathfinderUtils.class and b/target/classes/Main/PathfinderUtils.class differ
index 6be0d6d483e7237fe4d14966a32ee46e65ff948b..b1908d5aae554ec18d513c35086d6ba86a3b3d68 100644 (file)
@@ -1,4 +1,4 @@
-#Created by Apache Maven 3.3.9
+#Created by Apache Maven 3.6.3
 groupId=Main
 artifactId=PathVisualizer
 version=1.0-SNAPSHOT
index a00021999858409f7ae62dd6dc7d703667ad1654..cbf65bb88f1eb5ea1ba4bd4e75b93f268ad6fb0d 100644 (file)
@@ -1,5 +1,5 @@
-/home/leo/Docs/Proj/pathfinding-visualizer/src/main/java/Main/PathfinderUtils.java
-/home/leo/Docs/Proj/pathfinding-visualizer/src/main/java/Main/Node.java
-/home/leo/Docs/Proj/pathfinding-visualizer/src/main/java/Main/App.java
-/home/leo/Docs/Proj/pathfinding-visualizer/src/main/java/Main/Map.java
-/home/leo/Docs/Proj/pathfinding-visualizer/src/main/java/Main/AStar.java
+/home/leo/Docs/Proj/Pathfinder/src/main/java/Main/Node.java
+/home/leo/Docs/Proj/Pathfinder/src/main/java/Main/App.java
+/home/leo/Docs/Proj/Pathfinder/src/main/java/Main/PathfinderUtils.java
+/home/leo/Docs/Proj/Pathfinder/src/main/java/Main/Map.java
+/home/leo/Docs/Proj/Pathfinder/src/main/java/Main/AStar.java
index e1f0ebcdb4a4eaf0bb06834f67fc31462b9cdbd9..2af0a5f36e8fb758fe24bf011035915e35cf37aa 100644 (file)
@@ -1 +1 @@
-/home/leo/Docs/Proj/pathfinding-visualizer/src/test/java/Main/AppTest.java
+/home/leo/Docs/Proj/Pathfinder/src/test/java/Main/AppTest.java
index 53a7fdf1db980457e65f21a15d71f10953505a79..49e3cc667a56ec8fabe44d229ab17f49ad612220 100644 (file)
@@ -1,4 +1,4 @@
 -------------------------------------------------------------------------------
 Test set: Main.AppTest
 -------------------------------------------------------------------------------
-Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.036 s - in Main.AppTest
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.03 s - in Main.AppTest
index d0700b05f7c44df29f4b257e17a7aa95a9769dc4..bc761a0eeda639a8965866d06dc8f01a64402977 100644 (file)
@@ -1,54 +1,61 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="Main.AppTest" time="0.036" tests="1" errors="0" skipped="0" failures="0">
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="Main.AppTest" time="0.03" tests="1" errors="0" skipped="0" failures="0">
   <properties>
-    <property name="java.specification.version" value="16"/>
+    <property name="awt.toolkit" value="sun.awt.X11.XToolkit"/>
+    <property name="java.specification.version" value="11"/>
+    <property name="sun.cpu.isalist" value=""/>
     <property name="sun.jnu.encoding" value="ANSI_X3.4-1968"/>
-    <property name="java.class.path" value="/home/leo/Docs/Proj/pathfinding-visualizer/target/test-classes:/home/leo/Docs/Proj/pathfinding-visualizer/target/classes:/home/leo/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/leo/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:"/>
+    <property name="java.class.path" value="/home/leo/Docs/Proj/Pathfinder/target/test-classes:/home/leo/Docs/Proj/Pathfinder/target/classes:/home/leo/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/leo/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:"/>
     <property name="java.vm.vendor" value="Oracle Corporation"/>
     <property name="sun.arch.data.model" value="64"/>
-    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="java.vendor.url" value="http://java.oracle.com/"/>
+    <property name="user.timezone" value=""/>
+    <property name="java.vm.specification.version" value="11"/>
     <property name="os.name" value="Linux"/>
-    <property name="java.vm.specification.version" value="16"/>
     <property name="sun.java.launcher" value="SUN_STANDARD"/>
     <property name="user.country" value="US"/>
-    <property name="sun.boot.library.path" value="/home/leo/.config/jdks/openjdk-16.0.2/lib"/>
-    <property name="sun.java.command" value="/home/leo/Docs/Proj/pathfinding-visualizer/target/surefire/surefirebooter16569093588158702030.jar /home/leo/Docs/Proj/pathfinding-visualizer/target/surefire 2021-08-08T09-03-56_502-jvmRun1 surefire6723173350746780523tmp surefire_013466448355498983315tmp"/>
+    <property name="sun.boot.library.path" value="/usr/lib/jvm/openjdk11-bin/lib"/>
+    <property name="sun.java.command" value="/home/leo/Docs/Proj/Pathfinder/target/surefire/surefirebooter4082728071684051500.jar /home/leo/Docs/Proj/Pathfinder/target/surefire 2021-11-19T20-44-45_157-jvmRun1 surefire17835783201909300860tmp surefire_02185374437203797851tmp"/>
     <property name="jdk.debug" value="release"/>
-    <property name="surefire.test.class.path" value="/home/leo/Docs/Proj/pathfinding-visualizer/target/test-classes:/home/leo/Docs/Proj/pathfinding-visualizer/target/classes:/home/leo/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/leo/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:"/>
+    <property name="surefire.test.class.path" value="/home/leo/Docs/Proj/Pathfinder/target/test-classes:/home/leo/Docs/Proj/Pathfinder/target/classes:/home/leo/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/leo/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:"/>
     <property name="sun.cpu.endian" value="little"/>
     <property name="user.home" value="/home/leo"/>
     <property name="user.language" value="en"/>
     <property name="java.specification.vendor" value="Oracle Corporation"/>
-    <property name="java.version.date" value="2021-07-20"/>
-    <property name="java.home" value="/home/leo/.config/jdks/openjdk-16.0.2"/>
+    <property name="java.version.date" value="2018-09-25"/>
+    <property name="java.home" value="/usr/lib/jvm/openjdk11-bin"/>
     <property name="file.separator" value="/"/>
-    <property name="basedir" value="/home/leo/Docs/Proj/pathfinding-visualizer"/>
-    <property name="java.vm.compressedOopsMode" value="32-bit"/>
+    <property name="basedir" value="/home/leo/Docs/Proj/Pathfinder"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
     <property name="line.separator" value="&#10;"/>
-    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
     <property name="java.specification.name" value="Java Platform API Specification"/>
-    <property name="surefire.real.class.path" value="/home/leo/Docs/Proj/pathfinding-visualizer/target/surefire/surefirebooter16569093588158702030.jar"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
+    <property name="surefire.real.class.path" value="/home/leo/Docs/Proj/Pathfinder/target/surefire/surefirebooter4082728071684051500.jar"/>
     <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
-    <property name="java.runtime.version" value="16.0.2+7-67"/>
+    <property name="java.runtime.version" value="11+28"/>
     <property name="user.name" value="leo"/>
     <property name="path.separator" value=":"/>
-    <property name="os.version" value="5.13.8_1"/>
+    <property name="os.version" value="5.13.19_1"/>
     <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
     <property name="file.encoding" value="ANSI_X3.4-1968"/>
     <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="18.9"/>
     <property name="localRepository" value="/home/leo/.m2/repository"/>
-    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.vendor.url.bug" value="http://bugreport.java.com/bugreport/"/>
     <property name="java.io.tmpdir" value="/tmp"/>
-    <property name="java.version" value="16.0.2"/>
-    <property name="user.dir" value="/home/leo/Docs/Proj/pathfinding-visualizer"/>
+    <property name="java.version" value="11"/>
+    <property name="user.dir" value="/home/leo/Docs/Proj/Pathfinder"/>
     <property name="os.arch" value="amd64"/>
     <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
+    <property name="sun.os.patch.level" value="unknown"/>
     <property name="java.library.path" value="/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib"/>
-    <property name="java.vm.info" value="mixed mode, sharing"/>
     <property name="java.vendor" value="Oracle Corporation"/>
-    <property name="java.vm.version" value="16.0.2+7-67"/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vm.version" value="11+28"/>
     <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
-    <property name="java.class.version" value="60.0"/>
+    <property name="java.class.version" value="55.0"/>
   </properties>
   <testcase name="shouldAnswerWithTrue" classname="Main.AppTest" time="0.001"/>
 </testsuite>
\ No newline at end of file
index a08e3e3772afae6fdfb00e95ffc185c606b4b1fa..6b3f4e2a47ae644aee71876320b08afdf766f7ab 100644 (file)
Binary files a/target/test-classes/Main/AppTest.class and b/target/test-classes/Main/AppTest.class differ