diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 651d5d0..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.classpath
-.project
-build
-dist
-.externalToolBuilders
-.settings
-disttemp
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..20f1a28
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,11 @@
+.idea/
+target/
+
+.classpath
+.project
+build/
+dist/
+.externalToolBuilders
+.settings/
+disttemp/
+
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..c6feb8b
Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..6637ced
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
\ No newline at end of file
diff --git a/lib/Jama-1.0.2.jar b/lib/Jama-1.0.2.jar
deleted file mode 100644
index 824d133..0000000
Binary files a/lib/Jama-1.0.2.jar and /dev/null differ
diff --git a/lib/junit.jar b/lib/junit.jar
deleted file mode 100644
index 914a5cf..0000000
Binary files a/lib/junit.jar and /dev/null differ
diff --git a/mvnw b/mvnw
new file mode 100755
index 0000000..6ecc150
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,236 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ #
+ # Look for the Apple JDKs first to preserve the existing behaviour, and then look
+ # for the new JDKs provided by Oracle.
+ #
+ if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
+ #
+ # Apple JDKs
+ #
+ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
+ fi
+
+ if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
+ #
+ # Apple JDKs
+ #
+ export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
+ fi
+
+ if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
+ #
+ # Oracle JDKs
+ #
+ export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
+ fi
+
+ if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
+ #
+ # Apple JDKs
+ #
+ export JAVA_HOME=`/usr/libexec/java_home`
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+ # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+ local basedir=$(pwd)
+ local wdir=$(pwd)
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ wdir=$(cd "$wdir/.."; pwd)
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in $@
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..8bb8275
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,146 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %*
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar""
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in %*
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..9c3e073
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,75 @@
+
+ 4.0.0
+
+ com.github.cstroe
+ JEP
+ 2.4.2-SNAPSHOT
+ jar
+
+
+ UTF-8
+ 1.8
+ 5.0.0-M3
+ 1.0.0-M3
+
+
+
+
+
+ maven-compiler-plugin
+ 3.1
+
+ ${java.version}
+ ${java.version}
+
+
+
+ maven-surefire-plugin
+ 2.19.1
+
+
+ **/Test*.java
+ **/*Test.java
+ **/*Tests.java
+ **/*TestCase.java
+
+
+
+
+ org.junit.platform
+ junit-platform-surefire-provider
+ ${junit.platform.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit.jupiter.version}
+
+
+
+
+
+
+
+
+ com.github.cstroe
+ jama
+ 1.0.4-SNAPSHOT
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.jupiter.version}
+ test
+
+
+ org.hamcrest
+ hamcrest-all
+ 1.3
+ test
+
+
+
diff --git a/bin/AllTests.bat b/src/main/bin/AllTests.bat
similarity index 100%
rename from bin/AllTests.bat
rename to src/main/bin/AllTests.bat
diff --git a/bin/AllTests.sh b/src/main/bin/AllTests.sh
similarity index 100%
rename from bin/AllTests.sh
rename to src/main/bin/AllTests.sh
diff --git a/bin/Console.bat b/src/main/bin/Console.bat
similarity index 100%
rename from bin/Console.bat
rename to src/main/bin/Console.bat
diff --git a/bin/Console.sh b/src/main/bin/Console.sh
similarity index 100%
rename from bin/Console.sh
rename to src/main/bin/Console.sh
diff --git a/bin/Evaluator.bat b/src/main/bin/Evaluator.bat
similarity index 100%
rename from bin/Evaluator.bat
rename to src/main/bin/Evaluator.bat
diff --git a/bin/Evaluator.sh b/src/main/bin/Evaluator.sh
similarity index 100%
rename from bin/Evaluator.sh
rename to src/main/bin/Evaluator.sh
diff --git a/bin/Fractal.bat b/src/main/bin/Fractal.bat
similarity index 100%
rename from bin/Fractal.bat
rename to src/main/bin/Fractal.bat
diff --git a/bin/Fractal.sh b/src/main/bin/Fractal.sh
similarity index 100%
rename from bin/Fractal.sh
rename to src/main/bin/Fractal.sh
diff --git a/bin/FunctionPlotter.bat b/src/main/bin/FunctionPlotter.bat
similarity index 100%
rename from bin/FunctionPlotter.bat
rename to src/main/bin/FunctionPlotter.bat
diff --git a/bin/JEPTest.bat b/src/main/bin/JEPTest.bat
similarity index 100%
rename from bin/JEPTest.bat
rename to src/main/bin/JEPTest.bat
diff --git a/bin/JEPTest.sh b/src/main/bin/JEPTest.sh
similarity index 100%
rename from bin/JEPTest.sh
rename to src/main/bin/JEPTest.sh
diff --git a/bin/ThreadTest.bat b/src/main/bin/ThreadTest.bat
similarity index 100%
rename from bin/ThreadTest.bat
rename to src/main/bin/ThreadTest.bat
diff --git a/bin/ThreadTest.sh b/src/main/bin/ThreadTest.sh
similarity index 100%
rename from bin/ThreadTest.sh
rename to src/main/bin/ThreadTest.sh
diff --git a/doc/.cvsignore b/src/main/doc/.cvsignore
similarity index 100%
rename from doc/.cvsignore
rename to src/main/doc/.cvsignore
diff --git a/doc/Library/top bar.lbi b/src/main/doc/Library/top bar.lbi
similarity index 100%
rename from doc/Library/top bar.lbi
rename to src/main/doc/Library/top bar.lbi
diff --git a/doc/Templates/maintemplate.dwt b/src/main/doc/Templates/maintemplate.dwt
similarity index 100%
rename from doc/Templates/maintemplate.dwt
rename to src/main/doc/Templates/maintemplate.dwt
diff --git a/doc/html/CustFunc.java b/src/main/doc/html/CustFunc.java
similarity index 100%
rename from doc/html/CustFunc.java
rename to src/main/doc/html/CustFunc.java
diff --git a/doc/html/Half.java b/src/main/doc/html/Half.java
similarity index 100%
rename from doc/html/Half.java
rename to src/main/doc/html/Half.java
diff --git a/doc/html/advanced.html b/src/main/doc/html/advanced.html
similarity index 100%
rename from doc/html/advanced.html
rename to src/main/doc/html/advanced.html
diff --git a/doc/html/extensions/djep.html b/src/main/doc/html/extensions/djep.html
similarity index 100%
rename from doc/html/extensions/djep.html
rename to src/main/doc/html/extensions/djep.html
diff --git a/doc/html/extensions/groupjep.html b/src/main/doc/html/extensions/groupjep.html
similarity index 100%
rename from doc/html/extensions/groupjep.html
rename to src/main/doc/html/extensions/groupjep.html
diff --git a/doc/html/extensions/index.html b/src/main/doc/html/extensions/index.html
similarity index 100%
rename from doc/html/extensions/index.html
rename to src/main/doc/html/extensions/index.html
diff --git a/doc/html/extensions/rpe.html b/src/main/doc/html/extensions/rpe.html
similarity index 100%
rename from doc/html/extensions/rpe.html
rename to src/main/doc/html/extensions/rpe.html
diff --git a/doc/html/extensions/vectorjep.html b/src/main/doc/html/extensions/vectorjep.html
similarity index 100%
rename from doc/html/extensions/vectorjep.html
rename to src/main/doc/html/extensions/vectorjep.html
diff --git a/doc/html/extensions/version.html b/src/main/doc/html/extensions/version.html
similarity index 100%
rename from doc/html/extensions/version.html
rename to src/main/doc/html/extensions/version.html
diff --git a/doc/html/extensions/xjep.html b/src/main/doc/html/extensions/xjep.html
similarity index 100%
rename from doc/html/extensions/xjep.html
rename to src/main/doc/html/extensions/xjep.html
diff --git a/doc/html/faq.html b/src/main/doc/html/faq.html
similarity index 100%
rename from doc/html/faq.html
rename to src/main/doc/html/faq.html
diff --git a/doc/html/functions.html b/src/main/doc/html/functions.html
similarity index 100%
rename from doc/html/functions.html
rename to src/main/doc/html/functions.html
diff --git a/doc/html/grammar.html b/src/main/doc/html/grammar.html
similarity index 100%
rename from doc/html/grammar.html
rename to src/main/doc/html/grammar.html
diff --git a/doc/html/img/.cvsignore b/src/main/doc/html/img/.cvsignore
similarity index 100%
rename from doc/html/img/.cvsignore
rename to src/main/doc/html/img/.cvsignore
diff --git a/doc/html/img/checkmark.gif b/src/main/doc/html/img/checkmark.gif
similarity index 100%
rename from doc/html/img/checkmark.gif
rename to src/main/doc/html/img/checkmark.gif
diff --git a/doc/html/img/new-window-icon.gif b/src/main/doc/html/img/new-window-icon.gif
similarity index 100%
rename from doc/html/img/new-window-icon.gif
rename to src/main/doc/html/img/new-window-icon.gif
diff --git a/doc/html/img/top.gif b/src/main/doc/html/img/top.gif
similarity index 100%
rename from doc/html/img/top.gif
rename to src/main/doc/html/img/top.gif
diff --git a/doc/html/index.html b/src/main/doc/html/index.html
similarity index 100%
rename from doc/html/index.html
rename to src/main/doc/html/index.html
diff --git a/doc/html/main.css b/src/main/doc/html/main.css
similarity index 100%
rename from doc/html/main.css
rename to src/main/doc/html/main.css
diff --git a/doc/html/operators.html b/src/main/doc/html/operators.html
similarity index 100%
rename from doc/html/operators.html
rename to src/main/doc/html/operators.html
diff --git a/doc/html/types.html b/src/main/doc/html/types.html
similarity index 100%
rename from doc/html/types.html
rename to src/main/doc/html/types.html
diff --git a/doc/html/variables.html b/src/main/doc/html/variables.html
similarity index 100%
rename from doc/html/variables.html
rename to src/main/doc/html/variables.html
diff --git a/doc/html/version.html b/src/main/doc/html/version.html
similarity index 100%
rename from doc/html/version.html
rename to src/main/doc/html/version.html
diff --git a/src/org/lsmp/djep/djep/DJep.java b/src/main/java/org/lsmp/djep/djep/DJep.java
similarity index 100%
rename from src/org/lsmp/djep/djep/DJep.java
rename to src/main/java/org/lsmp/djep/djep/DJep.java
diff --git a/src/org/lsmp/djep/djep/DPrintVisitor.java b/src/main/java/org/lsmp/djep/djep/DPrintVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/djep/DPrintVisitor.java
rename to src/main/java/org/lsmp/djep/djep/DPrintVisitor.java
diff --git a/src/org/lsmp/djep/djep/DSymbolTable.java b/src/main/java/org/lsmp/djep/djep/DSymbolTable.java
similarity index 100%
rename from src/org/lsmp/djep/djep/DSymbolTable.java
rename to src/main/java/org/lsmp/djep/djep/DSymbolTable.java
diff --git a/src/org/lsmp/djep/djep/DVariable.java b/src/main/java/org/lsmp/djep/djep/DVariable.java
similarity index 100%
rename from src/org/lsmp/djep/djep/DVariable.java
rename to src/main/java/org/lsmp/djep/djep/DVariable.java
diff --git a/src/org/lsmp/djep/djep/DVariableFactory.java b/src/main/java/org/lsmp/djep/djep/DVariableFactory.java
similarity index 100%
rename from src/org/lsmp/djep/djep/DVariableFactory.java
rename to src/main/java/org/lsmp/djep/djep/DVariableFactory.java
diff --git a/src/org/lsmp/djep/djep/Diff.java b/src/main/java/org/lsmp/djep/djep/Diff.java
similarity index 100%
rename from src/org/lsmp/djep/djep/Diff.java
rename to src/main/java/org/lsmp/djep/djep/Diff.java
diff --git a/src/org/lsmp/djep/djep/DiffRulesI.java b/src/main/java/org/lsmp/djep/djep/DiffRulesI.java
similarity index 100%
rename from src/org/lsmp/djep/djep/DiffRulesI.java
rename to src/main/java/org/lsmp/djep/djep/DiffRulesI.java
diff --git a/src/org/lsmp/djep/djep/DifferentiationVisitor.java b/src/main/java/org/lsmp/djep/djep/DifferentiationVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/djep/DifferentiationVisitor.java
rename to src/main/java/org/lsmp/djep/djep/DifferentiationVisitor.java
diff --git a/src/org/lsmp/djep/djep/PartialDerivative.java b/src/main/java/org/lsmp/djep/djep/PartialDerivative.java
similarity index 100%
rename from src/org/lsmp/djep/djep/PartialDerivative.java
rename to src/main/java/org/lsmp/djep/djep/PartialDerivative.java
diff --git a/src/org/lsmp/djep/djep/diffRules/AdditionDiffRule.java b/src/main/java/org/lsmp/djep/djep/diffRules/AdditionDiffRule.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/AdditionDiffRule.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/AdditionDiffRule.java
diff --git a/src/org/lsmp/djep/djep/diffRules/ChainRuleDiffRules.java b/src/main/java/org/lsmp/djep/djep/diffRules/ChainRuleDiffRules.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/ChainRuleDiffRules.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/ChainRuleDiffRules.java
diff --git a/src/org/lsmp/djep/djep/diffRules/DivideDiffRule.java b/src/main/java/org/lsmp/djep/djep/diffRules/DivideDiffRule.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/DivideDiffRule.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/DivideDiffRule.java
diff --git a/src/org/lsmp/djep/djep/diffRules/MacroDiffRules.java b/src/main/java/org/lsmp/djep/djep/diffRules/MacroDiffRules.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/MacroDiffRules.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/MacroDiffRules.java
diff --git a/src/org/lsmp/djep/djep/diffRules/MacroFunctionDiffRules.java b/src/main/java/org/lsmp/djep/djep/diffRules/MacroFunctionDiffRules.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/MacroFunctionDiffRules.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/MacroFunctionDiffRules.java
diff --git a/src/org/lsmp/djep/djep/diffRules/MultiplyDiffRule.java b/src/main/java/org/lsmp/djep/djep/diffRules/MultiplyDiffRule.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/MultiplyDiffRule.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/MultiplyDiffRule.java
diff --git a/src/org/lsmp/djep/djep/diffRules/PassThroughDiffRule.java b/src/main/java/org/lsmp/djep/djep/diffRules/PassThroughDiffRule.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/PassThroughDiffRule.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/PassThroughDiffRule.java
diff --git a/src/org/lsmp/djep/djep/diffRules/PowerDiffRule.java b/src/main/java/org/lsmp/djep/djep/diffRules/PowerDiffRule.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/PowerDiffRule.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/PowerDiffRule.java
diff --git a/src/org/lsmp/djep/djep/diffRules/SubtractDiffRule.java b/src/main/java/org/lsmp/djep/djep/diffRules/SubtractDiffRule.java
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/SubtractDiffRule.java
rename to src/main/java/org/lsmp/djep/djep/diffRules/SubtractDiffRule.java
diff --git a/src/org/lsmp/djep/djep/diffRules/package.html b/src/main/java/org/lsmp/djep/djep/diffRules/package.html
similarity index 100%
rename from src/org/lsmp/djep/djep/diffRules/package.html
rename to src/main/java/org/lsmp/djep/djep/diffRules/package.html
diff --git a/src/org/lsmp/djep/djep/package.html b/src/main/java/org/lsmp/djep/djep/package.html
similarity index 100%
rename from src/org/lsmp/djep/djep/package.html
rename to src/main/java/org/lsmp/djep/djep/package.html
diff --git a/src/org/lsmp/djep/groupJep/GOperatorSet.java b/src/main/java/org/lsmp/djep/groupJep/GOperatorSet.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/GOperatorSet.java
rename to src/main/java/org/lsmp/djep/groupJep/GOperatorSet.java
diff --git a/src/org/lsmp/djep/groupJep/GroupI.java b/src/main/java/org/lsmp/djep/groupJep/GroupI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/GroupI.java
rename to src/main/java/org/lsmp/djep/groupJep/GroupI.java
diff --git a/src/org/lsmp/djep/groupJep/GroupJep.java b/src/main/java/org/lsmp/djep/groupJep/GroupJep.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/GroupJep.java
rename to src/main/java/org/lsmp/djep/groupJep/GroupJep.java
diff --git a/src/org/lsmp/djep/groupJep/PolynomialVisitor.java b/src/main/java/org/lsmp/djep/groupJep/PolynomialVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/PolynomialVisitor.java
rename to src/main/java/org/lsmp/djep/groupJep/PolynomialVisitor.java
diff --git a/src/org/lsmp/djep/groupJep/function/GAdd.java b/src/main/java/org/lsmp/djep/groupJep/function/GAdd.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GAdd.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GAdd.java
diff --git a/src/org/lsmp/djep/groupJep/function/GComparative.java b/src/main/java/org/lsmp/djep/groupJep/function/GComparative.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GComparative.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GComparative.java
diff --git a/src/org/lsmp/djep/groupJep/function/GDivide.java b/src/main/java/org/lsmp/djep/groupJep/function/GDivide.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GDivide.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GDivide.java
diff --git a/src/org/lsmp/djep/groupJep/function/GList.java b/src/main/java/org/lsmp/djep/groupJep/function/GList.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GList.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GList.java
diff --git a/src/org/lsmp/djep/groupJep/function/GLogical.java b/src/main/java/org/lsmp/djep/groupJep/function/GLogical.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GLogical.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GLogical.java
diff --git a/src/org/lsmp/djep/groupJep/function/GMod.java b/src/main/java/org/lsmp/djep/groupJep/function/GMod.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GMod.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GMod.java
diff --git a/src/org/lsmp/djep/groupJep/function/GMultiply.java b/src/main/java/org/lsmp/djep/groupJep/function/GMultiply.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GMultiply.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GMultiply.java
diff --git a/src/org/lsmp/djep/groupJep/function/GNot.java b/src/main/java/org/lsmp/djep/groupJep/function/GNot.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GNot.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GNot.java
diff --git a/src/org/lsmp/djep/groupJep/function/GPower.java b/src/main/java/org/lsmp/djep/groupJep/function/GPower.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GPower.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GPower.java
diff --git a/src/org/lsmp/djep/groupJep/function/GSubtract.java b/src/main/java/org/lsmp/djep/groupJep/function/GSubtract.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GSubtract.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GSubtract.java
diff --git a/src/org/lsmp/djep/groupJep/function/GUMinus.java b/src/main/java/org/lsmp/djep/groupJep/function/GUMinus.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/GUMinus.java
rename to src/main/java/org/lsmp/djep/groupJep/function/GUMinus.java
diff --git a/src/org/lsmp/djep/groupJep/function/package.html b/src/main/java/org/lsmp/djep/groupJep/function/package.html
similarity index 100%
rename from src/org/lsmp/djep/groupJep/function/package.html
rename to src/main/java/org/lsmp/djep/groupJep/function/package.html
diff --git a/src/org/lsmp/djep/groupJep/groups/AlgebraicExtension.java b/src/main/java/org/lsmp/djep/groupJep/groups/AlgebraicExtension.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/AlgebraicExtension.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/AlgebraicExtension.java
diff --git a/src/org/lsmp/djep/groupJep/groups/BigReals.java b/src/main/java/org/lsmp/djep/groupJep/groups/BigReals.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/BigReals.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/BigReals.java
diff --git a/src/org/lsmp/djep/groupJep/groups/ExtendedFreeGroup.java b/src/main/java/org/lsmp/djep/groupJep/groups/ExtendedFreeGroup.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/ExtendedFreeGroup.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/ExtendedFreeGroup.java
diff --git a/src/org/lsmp/djep/groupJep/groups/FreeGroup.java b/src/main/java/org/lsmp/djep/groupJep/groups/FreeGroup.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/FreeGroup.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/FreeGroup.java
diff --git a/src/org/lsmp/djep/groupJep/groups/Group.java b/src/main/java/org/lsmp/djep/groupJep/groups/Group.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/Group.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/Group.java
diff --git a/src/org/lsmp/djep/groupJep/groups/Integers.java b/src/main/java/org/lsmp/djep/groupJep/groups/Integers.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/Integers.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/Integers.java
diff --git a/src/org/lsmp/djep/groupJep/groups/PermutationGroup.java b/src/main/java/org/lsmp/djep/groupJep/groups/PermutationGroup.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/PermutationGroup.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/PermutationGroup.java
diff --git a/src/org/lsmp/djep/groupJep/groups/Quaternions.java b/src/main/java/org/lsmp/djep/groupJep/groups/Quaternions.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/Quaternions.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/Quaternions.java
diff --git a/src/org/lsmp/djep/groupJep/groups/Rationals.java b/src/main/java/org/lsmp/djep/groupJep/groups/Rationals.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/Rationals.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/Rationals.java
diff --git a/src/org/lsmp/djep/groupJep/groups/Reals.java b/src/main/java/org/lsmp/djep/groupJep/groups/Reals.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/Reals.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/Reals.java
diff --git a/src/org/lsmp/djep/groupJep/groups/Zn.java b/src/main/java/org/lsmp/djep/groupJep/groups/Zn.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/Zn.java
rename to src/main/java/org/lsmp/djep/groupJep/groups/Zn.java
diff --git a/src/org/lsmp/djep/groupJep/groups/package.html b/src/main/java/org/lsmp/djep/groupJep/groups/package.html
similarity index 100%
rename from src/org/lsmp/djep/groupJep/groups/package.html
rename to src/main/java/org/lsmp/djep/groupJep/groups/package.html
diff --git a/src/org/lsmp/djep/groupJep/interfaces/AbelianGroupI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/AbelianGroupI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/AbelianGroupI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/AbelianGroupI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/FieldI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/FieldI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/FieldI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/FieldI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/HasDivI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/HasDivI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/HasDivI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/HasDivI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/HasListI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/HasListI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/HasListI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/HasListI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/HasModI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/HasModI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/HasModI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/HasModI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/HasPowerI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/HasPowerI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/HasPowerI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/HasPowerI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/IntegralDomainI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/IntegralDomainI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/IntegralDomainI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/IntegralDomainI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/OrderedSetI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/OrderedSetI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/OrderedSetI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/OrderedSetI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/RingI.java b/src/main/java/org/lsmp/djep/groupJep/interfaces/RingI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/RingI.java
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/RingI.java
diff --git a/src/org/lsmp/djep/groupJep/interfaces/package.html b/src/main/java/org/lsmp/djep/groupJep/interfaces/package.html
similarity index 100%
rename from src/org/lsmp/djep/groupJep/interfaces/package.html
rename to src/main/java/org/lsmp/djep/groupJep/interfaces/package.html
diff --git a/src/org/lsmp/djep/groupJep/package.html b/src/main/java/org/lsmp/djep/groupJep/package.html
similarity index 100%
rename from src/org/lsmp/djep/groupJep/package.html
rename to src/main/java/org/lsmp/djep/groupJep/package.html
diff --git a/src/org/lsmp/djep/groupJep/values/AlgebraicExtensionElement.java b/src/main/java/org/lsmp/djep/groupJep/values/AlgebraicExtensionElement.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/values/AlgebraicExtensionElement.java
rename to src/main/java/org/lsmp/djep/groupJep/values/AlgebraicExtensionElement.java
diff --git a/src/org/lsmp/djep/groupJep/values/FreeGroupElement.java b/src/main/java/org/lsmp/djep/groupJep/values/FreeGroupElement.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/values/FreeGroupElement.java
rename to src/main/java/org/lsmp/djep/groupJep/values/FreeGroupElement.java
diff --git a/src/org/lsmp/djep/groupJep/values/HasComplexValueI.java b/src/main/java/org/lsmp/djep/groupJep/values/HasComplexValueI.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/values/HasComplexValueI.java
rename to src/main/java/org/lsmp/djep/groupJep/values/HasComplexValueI.java
diff --git a/src/org/lsmp/djep/groupJep/values/Permutation.java b/src/main/java/org/lsmp/djep/groupJep/values/Permutation.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/values/Permutation.java
rename to src/main/java/org/lsmp/djep/groupJep/values/Permutation.java
diff --git a/src/org/lsmp/djep/groupJep/values/Polynomial.java b/src/main/java/org/lsmp/djep/groupJep/values/Polynomial.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/values/Polynomial.java
rename to src/main/java/org/lsmp/djep/groupJep/values/Polynomial.java
diff --git a/src/org/lsmp/djep/groupJep/values/Rational.java b/src/main/java/org/lsmp/djep/groupJep/values/Rational.java
similarity index 100%
rename from src/org/lsmp/djep/groupJep/values/Rational.java
rename to src/main/java/org/lsmp/djep/groupJep/values/Rational.java
diff --git a/src/org/lsmp/djep/groupJep/values/package.html b/src/main/java/org/lsmp/djep/groupJep/values/package.html
similarity index 100%
rename from src/org/lsmp/djep/groupJep/values/package.html
rename to src/main/java/org/lsmp/djep/groupJep/values/package.html
diff --git a/src/org/lsmp/djep/jama/Inverse.java b/src/main/java/org/lsmp/djep/jama/Inverse.java
similarity index 100%
rename from src/org/lsmp/djep/jama/Inverse.java
rename to src/main/java/org/lsmp/djep/jama/Inverse.java
diff --git a/src/org/lsmp/djep/jama/JamaUtil.java b/src/main/java/org/lsmp/djep/jama/JamaUtil.java
similarity index 100%
rename from src/org/lsmp/djep/jama/JamaUtil.java
rename to src/main/java/org/lsmp/djep/jama/JamaUtil.java
diff --git a/src/org/lsmp/djep/jama/Rank.java b/src/main/java/org/lsmp/djep/jama/Rank.java
similarity index 100%
rename from src/org/lsmp/djep/jama/Rank.java
rename to src/main/java/org/lsmp/djep/jama/Rank.java
diff --git a/src/org/lsmp/djep/jama/Solve.java b/src/main/java/org/lsmp/djep/jama/Solve.java
similarity index 100%
rename from src/org/lsmp/djep/jama/Solve.java
rename to src/main/java/org/lsmp/djep/jama/Solve.java
diff --git a/src/org/lsmp/djep/jama/package.html b/src/main/java/org/lsmp/djep/jama/package.html
similarity index 100%
rename from src/org/lsmp/djep/jama/package.html
rename to src/main/java/org/lsmp/djep/jama/package.html
diff --git a/src/org/lsmp/djep/matrixJep/MatrixEvaluator.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixEvaluator.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixEvaluator.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixEvaluator.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixJep.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixJep.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixJep.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixJep.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixNodeFactory.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixNodeFactory.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixNodeFactory.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixNodeFactory.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixOperatorSet.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixOperatorSet.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixOperatorSet.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixOperatorSet.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixPartialDerivative.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixPartialDerivative.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixPartialDerivative.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixPartialDerivative.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixPreprocessor.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixPreprocessor.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixPreprocessor.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixPreprocessor.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixSpecialEvaluationI.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixSpecialEvaluationI.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixSpecialEvaluationI.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixSpecialEvaluationI.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixVariable.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixVariable.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixVariable.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixVariable.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixVariableFactory.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixVariableFactory.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixVariableFactory.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixVariableFactory.java
diff --git a/src/org/lsmp/djep/matrixJep/MatrixVariableI.java b/src/main/java/org/lsmp/djep/matrixJep/MatrixVariableI.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/MatrixVariableI.java
rename to src/main/java/org/lsmp/djep/matrixJep/MatrixVariableI.java
diff --git a/src/org/lsmp/djep/matrixJep/SpecialPreProcessorI.java b/src/main/java/org/lsmp/djep/matrixJep/SpecialPreProcessorI.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/SpecialPreProcessorI.java
rename to src/main/java/org/lsmp/djep/matrixJep/SpecialPreProcessorI.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MArrayAccess.java b/src/main/java/org/lsmp/djep/matrixJep/function/MArrayAccess.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MArrayAccess.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MArrayAccess.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MAssign.java b/src/main/java/org/lsmp/djep/matrixJep/function/MAssign.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MAssign.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MAssign.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MDiff.java b/src/main/java/org/lsmp/djep/matrixJep/function/MDiff.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MDiff.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MDiff.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MIf.java b/src/main/java/org/lsmp/djep/matrixJep/function/MIf.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MIf.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MIf.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MList.java b/src/main/java/org/lsmp/djep/matrixJep/function/MList.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MList.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MList.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MMap.java b/src/main/java/org/lsmp/djep/matrixJep/function/MMap.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MMap.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MMap.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MPower.java b/src/main/java/org/lsmp/djep/matrixJep/function/MPower.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MPower.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MPower.java
diff --git a/src/org/lsmp/djep/matrixJep/function/MSum.java b/src/main/java/org/lsmp/djep/matrixJep/function/MSum.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/MSum.java
rename to src/main/java/org/lsmp/djep/matrixJep/function/MSum.java
diff --git a/src/org/lsmp/djep/matrixJep/function/package.html b/src/main/java/org/lsmp/djep/matrixJep/function/package.html
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/function/package.html
rename to src/main/java/org/lsmp/djep/matrixJep/function/package.html
diff --git a/src/org/lsmp/djep/matrixJep/nodeTypes/ASTMConstant.java b/src/main/java/org/lsmp/djep/matrixJep/nodeTypes/ASTMConstant.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/nodeTypes/ASTMConstant.java
rename to src/main/java/org/lsmp/djep/matrixJep/nodeTypes/ASTMConstant.java
diff --git a/src/org/lsmp/djep/matrixJep/nodeTypes/ASTMFunNode.java b/src/main/java/org/lsmp/djep/matrixJep/nodeTypes/ASTMFunNode.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/nodeTypes/ASTMFunNode.java
rename to src/main/java/org/lsmp/djep/matrixJep/nodeTypes/ASTMFunNode.java
diff --git a/src/org/lsmp/djep/matrixJep/nodeTypes/ASTMVarNode.java b/src/main/java/org/lsmp/djep/matrixJep/nodeTypes/ASTMVarNode.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/nodeTypes/ASTMVarNode.java
rename to src/main/java/org/lsmp/djep/matrixJep/nodeTypes/ASTMVarNode.java
diff --git a/src/org/lsmp/djep/matrixJep/nodeTypes/MatrixNodeI.java b/src/main/java/org/lsmp/djep/matrixJep/nodeTypes/MatrixNodeI.java
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/nodeTypes/MatrixNodeI.java
rename to src/main/java/org/lsmp/djep/matrixJep/nodeTypes/MatrixNodeI.java
diff --git a/src/org/lsmp/djep/matrixJep/nodeTypes/package.html b/src/main/java/org/lsmp/djep/matrixJep/nodeTypes/package.html
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/nodeTypes/package.html
rename to src/main/java/org/lsmp/djep/matrixJep/nodeTypes/package.html
diff --git a/src/org/lsmp/djep/matrixJep/package.html b/src/main/java/org/lsmp/djep/matrixJep/package.html
similarity index 100%
rename from src/org/lsmp/djep/matrixJep/package.html
rename to src/main/java/org/lsmp/djep/matrixJep/package.html
diff --git a/src/org/lsmp/djep/mrpe/MRpCommandList.java b/src/main/java/org/lsmp/djep/mrpe/MRpCommandList.java
similarity index 100%
rename from src/org/lsmp/djep/mrpe/MRpCommandList.java
rename to src/main/java/org/lsmp/djep/mrpe/MRpCommandList.java
diff --git a/src/org/lsmp/djep/mrpe/MRpEval.java b/src/main/java/org/lsmp/djep/mrpe/MRpEval.java
similarity index 100%
rename from src/org/lsmp/djep/mrpe/MRpEval.java
rename to src/main/java/org/lsmp/djep/mrpe/MRpEval.java
diff --git a/src/org/lsmp/djep/mrpe/MRpRes.java b/src/main/java/org/lsmp/djep/mrpe/MRpRes.java
similarity index 100%
rename from src/org/lsmp/djep/mrpe/MRpRes.java
rename to src/main/java/org/lsmp/djep/mrpe/MRpRes.java
diff --git a/src/org/lsmp/djep/mrpe/package.html b/src/main/java/org/lsmp/djep/mrpe/package.html
similarity index 100%
rename from src/org/lsmp/djep/mrpe/package.html
rename to src/main/java/org/lsmp/djep/mrpe/package.html
diff --git a/src/org/lsmp/djep/package.html b/src/main/java/org/lsmp/djep/package.html
similarity index 100%
rename from src/org/lsmp/djep/package.html
rename to src/main/java/org/lsmp/djep/package.html
diff --git a/src/org/lsmp/djep/rewrite/AbstractRewrite.java b/src/main/java/org/lsmp/djep/rewrite/AbstractRewrite.java
similarity index 100%
rename from src/org/lsmp/djep/rewrite/AbstractRewrite.java
rename to src/main/java/org/lsmp/djep/rewrite/AbstractRewrite.java
diff --git a/src/org/lsmp/djep/rewrite/CollectPowers.java b/src/main/java/org/lsmp/djep/rewrite/CollectPowers.java
similarity index 100%
rename from src/org/lsmp/djep/rewrite/CollectPowers.java
rename to src/main/java/org/lsmp/djep/rewrite/CollectPowers.java
diff --git a/src/org/lsmp/djep/rewrite/ExpandBrackets.java b/src/main/java/org/lsmp/djep/rewrite/ExpandBrackets.java
similarity index 100%
rename from src/org/lsmp/djep/rewrite/ExpandBrackets.java
rename to src/main/java/org/lsmp/djep/rewrite/ExpandBrackets.java
diff --git a/src/org/lsmp/djep/rewrite/ExpandPower.java b/src/main/java/org/lsmp/djep/rewrite/ExpandPower.java
similarity index 100%
rename from src/org/lsmp/djep/rewrite/ExpandPower.java
rename to src/main/java/org/lsmp/djep/rewrite/ExpandPower.java
diff --git a/src/org/lsmp/djep/rewrite/RewriteRuleI.java b/src/main/java/org/lsmp/djep/rewrite/RewriteRuleI.java
similarity index 100%
rename from src/org/lsmp/djep/rewrite/RewriteRuleI.java
rename to src/main/java/org/lsmp/djep/rewrite/RewriteRuleI.java
diff --git a/src/org/lsmp/djep/rewrite/RewriteVisitor.java b/src/main/java/org/lsmp/djep/rewrite/RewriteVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/rewrite/RewriteVisitor.java
rename to src/main/java/org/lsmp/djep/rewrite/RewriteVisitor.java
diff --git a/src/org/lsmp/djep/rewrite/package.html b/src/main/java/org/lsmp/djep/rewrite/package.html
similarity index 100%
rename from src/org/lsmp/djep/rewrite/package.html
rename to src/main/java/org/lsmp/djep/rewrite/package.html
diff --git a/src/org/lsmp/djep/rpe/RpCommand.java b/src/main/java/org/lsmp/djep/rpe/RpCommand.java
similarity index 100%
rename from src/org/lsmp/djep/rpe/RpCommand.java
rename to src/main/java/org/lsmp/djep/rpe/RpCommand.java
diff --git a/src/org/lsmp/djep/rpe/RpCommandList.java b/src/main/java/org/lsmp/djep/rpe/RpCommandList.java
similarity index 100%
rename from src/org/lsmp/djep/rpe/RpCommandList.java
rename to src/main/java/org/lsmp/djep/rpe/RpCommandList.java
diff --git a/src/org/lsmp/djep/rpe/RpEval.java b/src/main/java/org/lsmp/djep/rpe/RpEval.java
similarity index 100%
rename from src/org/lsmp/djep/rpe/RpEval.java
rename to src/main/java/org/lsmp/djep/rpe/RpEval.java
diff --git a/src/org/lsmp/djep/rpe/package.html b/src/main/java/org/lsmp/djep/rpe/package.html
similarity index 100%
rename from src/org/lsmp/djep/rpe/package.html
rename to src/main/java/org/lsmp/djep/rpe/package.html
diff --git a/src/org/lsmp/djep/sjep/AbstractPNode.java b/src/main/java/org/lsmp/djep/sjep/AbstractPNode.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/AbstractPNode.java
rename to src/main/java/org/lsmp/djep/sjep/AbstractPNode.java
diff --git a/src/org/lsmp/djep/sjep/Monomial.java b/src/main/java/org/lsmp/djep/sjep/Monomial.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/Monomial.java
rename to src/main/java/org/lsmp/djep/sjep/Monomial.java
diff --git a/src/org/lsmp/djep/sjep/MutiableMonomial.java b/src/main/java/org/lsmp/djep/sjep/MutiableMonomial.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/MutiableMonomial.java
rename to src/main/java/org/lsmp/djep/sjep/MutiableMonomial.java
diff --git a/src/org/lsmp/djep/sjep/MutiablePolynomial.java b/src/main/java/org/lsmp/djep/sjep/MutiablePolynomial.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/MutiablePolynomial.java
rename to src/main/java/org/lsmp/djep/sjep/MutiablePolynomial.java
diff --git a/src/org/lsmp/djep/sjep/PConstant.java b/src/main/java/org/lsmp/djep/sjep/PConstant.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/PConstant.java
rename to src/main/java/org/lsmp/djep/sjep/PConstant.java
diff --git a/src/org/lsmp/djep/sjep/PFunction.java b/src/main/java/org/lsmp/djep/sjep/PFunction.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/PFunction.java
rename to src/main/java/org/lsmp/djep/sjep/PFunction.java
diff --git a/src/org/lsmp/djep/sjep/PNodeI.java b/src/main/java/org/lsmp/djep/sjep/PNodeI.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/PNodeI.java
rename to src/main/java/org/lsmp/djep/sjep/PNodeI.java
diff --git a/src/org/lsmp/djep/sjep/POperator.java b/src/main/java/org/lsmp/djep/sjep/POperator.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/POperator.java
rename to src/main/java/org/lsmp/djep/sjep/POperator.java
diff --git a/src/org/lsmp/djep/sjep/PVariable.java b/src/main/java/org/lsmp/djep/sjep/PVariable.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/PVariable.java
rename to src/main/java/org/lsmp/djep/sjep/PVariable.java
diff --git a/src/org/lsmp/djep/sjep/Polynomial.java b/src/main/java/org/lsmp/djep/sjep/Polynomial.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/Polynomial.java
rename to src/main/java/org/lsmp/djep/sjep/Polynomial.java
diff --git a/src/org/lsmp/djep/sjep/PolynomialCreator.java b/src/main/java/org/lsmp/djep/sjep/PolynomialCreator.java
similarity index 100%
rename from src/org/lsmp/djep/sjep/PolynomialCreator.java
rename to src/main/java/org/lsmp/djep/sjep/PolynomialCreator.java
diff --git a/src/org/lsmp/djep/sjep/package.html b/src/main/java/org/lsmp/djep/sjep/package.html
similarity index 100%
rename from src/org/lsmp/djep/sjep/package.html
rename to src/main/java/org/lsmp/djep/sjep/package.html
diff --git a/src/org/lsmp/djep/vectorJep/Dimensions.java b/src/main/java/org/lsmp/djep/vectorJep/Dimensions.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/Dimensions.java
rename to src/main/java/org/lsmp/djep/vectorJep/Dimensions.java
diff --git a/src/org/lsmp/djep/vectorJep/VOperatorSet.java b/src/main/java/org/lsmp/djep/vectorJep/VOperatorSet.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/VOperatorSet.java
rename to src/main/java/org/lsmp/djep/vectorJep/VOperatorSet.java
diff --git a/src/org/lsmp/djep/vectorJep/VectorEvaluator.java b/src/main/java/org/lsmp/djep/vectorJep/VectorEvaluator.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/VectorEvaluator.java
rename to src/main/java/org/lsmp/djep/vectorJep/VectorEvaluator.java
diff --git a/src/org/lsmp/djep/vectorJep/VectorJep.java b/src/main/java/org/lsmp/djep/vectorJep/VectorJep.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/VectorJep.java
rename to src/main/java/org/lsmp/djep/vectorJep/VectorJep.java
diff --git a/src/org/lsmp/djep/vectorJep/function/ArrayAccess.java b/src/main/java/org/lsmp/djep/vectorJep/function/ArrayAccess.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/ArrayAccess.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/ArrayAccess.java
diff --git a/src/org/lsmp/djep/vectorJep/function/BinaryOperatorI.java b/src/main/java/org/lsmp/djep/vectorJep/function/BinaryOperatorI.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/BinaryOperatorI.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/BinaryOperatorI.java
diff --git a/src/org/lsmp/djep/vectorJep/function/Determinant.java b/src/main/java/org/lsmp/djep/vectorJep/function/Determinant.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/Determinant.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/Determinant.java
diff --git a/src/org/lsmp/djep/vectorJep/function/Diagonal.java b/src/main/java/org/lsmp/djep/vectorJep/function/Diagonal.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/Diagonal.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/Diagonal.java
diff --git a/src/org/lsmp/djep/vectorJep/function/ElementComparative.java b/src/main/java/org/lsmp/djep/vectorJep/function/ElementComparative.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/ElementComparative.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/ElementComparative.java
diff --git a/src/org/lsmp/djep/vectorJep/function/ElementDivide.java b/src/main/java/org/lsmp/djep/vectorJep/function/ElementDivide.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/ElementDivide.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/ElementDivide.java
diff --git a/src/org/lsmp/djep/vectorJep/function/ElementMultiply.java b/src/main/java/org/lsmp/djep/vectorJep/function/ElementMultiply.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/ElementMultiply.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/ElementMultiply.java
diff --git a/src/org/lsmp/djep/vectorJep/function/ExteriorProduct.java b/src/main/java/org/lsmp/djep/vectorJep/function/ExteriorProduct.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/ExteriorProduct.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/ExteriorProduct.java
diff --git a/src/org/lsmp/djep/vectorJep/function/GenMat.java b/src/main/java/org/lsmp/djep/vectorJep/function/GenMat.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/GenMat.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/GenMat.java
diff --git a/src/org/lsmp/djep/vectorJep/function/GetDiagonal.java b/src/main/java/org/lsmp/djep/vectorJep/function/GetDiagonal.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/GetDiagonal.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/GetDiagonal.java
diff --git a/src/org/lsmp/djep/vectorJep/function/Id.java b/src/main/java/org/lsmp/djep/vectorJep/function/Id.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/Id.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/Id.java
diff --git a/src/org/lsmp/djep/vectorJep/function/Length.java b/src/main/java/org/lsmp/djep/vectorJep/function/Length.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/Length.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/Length.java
diff --git a/src/org/lsmp/djep/vectorJep/function/MAdd.java b/src/main/java/org/lsmp/djep/vectorJep/function/MAdd.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/MAdd.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/MAdd.java
diff --git a/src/org/lsmp/djep/vectorJep/function/MDivide.java b/src/main/java/org/lsmp/djep/vectorJep/function/MDivide.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/MDivide.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/MDivide.java
diff --git a/src/org/lsmp/djep/vectorJep/function/MDot.java b/src/main/java/org/lsmp/djep/vectorJep/function/MDot.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/MDot.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/MDot.java
diff --git a/src/org/lsmp/djep/vectorJep/function/MMultiply.java b/src/main/java/org/lsmp/djep/vectorJep/function/MMultiply.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/MMultiply.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/MMultiply.java
diff --git a/src/org/lsmp/djep/vectorJep/function/MSubtract.java b/src/main/java/org/lsmp/djep/vectorJep/function/MSubtract.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/MSubtract.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/MSubtract.java
diff --git a/src/org/lsmp/djep/vectorJep/function/MUMinus.java b/src/main/java/org/lsmp/djep/vectorJep/function/MUMinus.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/MUMinus.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/MUMinus.java
diff --git a/src/org/lsmp/djep/vectorJep/function/NaryOperatorI.java b/src/main/java/org/lsmp/djep/vectorJep/function/NaryOperatorI.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/NaryOperatorI.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/NaryOperatorI.java
diff --git a/src/org/lsmp/djep/vectorJep/function/Size.java b/src/main/java/org/lsmp/djep/vectorJep/function/Size.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/Size.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/Size.java
diff --git a/src/org/lsmp/djep/vectorJep/function/Trace.java b/src/main/java/org/lsmp/djep/vectorJep/function/Trace.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/Trace.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/Trace.java
diff --git a/src/org/lsmp/djep/vectorJep/function/Transpose.java b/src/main/java/org/lsmp/djep/vectorJep/function/Transpose.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/Transpose.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/Transpose.java
diff --git a/src/org/lsmp/djep/vectorJep/function/UnaryOperatorI.java b/src/main/java/org/lsmp/djep/vectorJep/function/UnaryOperatorI.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/UnaryOperatorI.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/UnaryOperatorI.java
diff --git a/src/org/lsmp/djep/vectorJep/function/VEle.java b/src/main/java/org/lsmp/djep/vectorJep/function/VEle.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/VEle.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/VEle.java
diff --git a/src/org/lsmp/djep/vectorJep/function/VList.java b/src/main/java/org/lsmp/djep/vectorJep/function/VList.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/VList.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/VList.java
diff --git a/src/org/lsmp/djep/vectorJep/function/VMap.java b/src/main/java/org/lsmp/djep/vectorJep/function/VMap.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/VMap.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/VMap.java
diff --git a/src/org/lsmp/djep/vectorJep/function/VPower.java b/src/main/java/org/lsmp/djep/vectorJep/function/VPower.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/VPower.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/VPower.java
diff --git a/src/org/lsmp/djep/vectorJep/function/VRange.java b/src/main/java/org/lsmp/djep/vectorJep/function/VRange.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/VRange.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/VRange.java
diff --git a/src/org/lsmp/djep/vectorJep/function/VSum.java b/src/main/java/org/lsmp/djep/vectorJep/function/VSum.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/VSum.java
rename to src/main/java/org/lsmp/djep/vectorJep/function/VSum.java
diff --git a/src/org/lsmp/djep/vectorJep/function/package.html b/src/main/java/org/lsmp/djep/vectorJep/function/package.html
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/function/package.html
rename to src/main/java/org/lsmp/djep/vectorJep/function/package.html
diff --git a/src/org/lsmp/djep/vectorJep/package.html b/src/main/java/org/lsmp/djep/vectorJep/package.html
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/package.html
rename to src/main/java/org/lsmp/djep/vectorJep/package.html
diff --git a/src/org/lsmp/djep/vectorJep/values/MVector.java b/src/main/java/org/lsmp/djep/vectorJep/values/MVector.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/values/MVector.java
rename to src/main/java/org/lsmp/djep/vectorJep/values/MVector.java
diff --git a/src/org/lsmp/djep/vectorJep/values/Matrix.java b/src/main/java/org/lsmp/djep/vectorJep/values/Matrix.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/values/Matrix.java
rename to src/main/java/org/lsmp/djep/vectorJep/values/Matrix.java
diff --git a/src/org/lsmp/djep/vectorJep/values/MatrixValueI.java b/src/main/java/org/lsmp/djep/vectorJep/values/MatrixValueI.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/values/MatrixValueI.java
rename to src/main/java/org/lsmp/djep/vectorJep/values/MatrixValueI.java
diff --git a/src/org/lsmp/djep/vectorJep/values/Scaler.java b/src/main/java/org/lsmp/djep/vectorJep/values/Scaler.java
similarity index 93%
rename from src/org/lsmp/djep/vectorJep/values/Scaler.java
rename to src/main/java/org/lsmp/djep/vectorJep/values/Scaler.java
index 64f8471..a7c2071 100644
--- a/src/org/lsmp/djep/vectorJep/values/Scaler.java
+++ b/src/main/java/org/lsmp/djep/vectorJep/values/Scaler.java
@@ -14,6 +14,7 @@
* TODO don't implement number! So what if a scaler is a boolean
*/
public class Scaler extends Number implements MatrixValueI {
+ public static final double PRECISION = 0.00000000000001;
private static final long serialVersionUID = 336717881577257953L;
Object value;
@@ -69,10 +70,13 @@ public boolean equals(Object obj) {
if(!(obj instanceof Scaler)) return false;
Scaler s = (Scaler) obj;
if(!s.getDim().equals(getDim())) return false;
- if(!value.equals(s.value)) return false;
- return true;
+
+ double diff = Math.abs((Double)value - (Double)s.value);
+ if(diff > PRECISION) return false;
+
+ return true;
}
-
+
/**
* Always override hashCode when you override equals.
* Effective Java, Joshua Bloch, Sun Press
diff --git a/src/org/lsmp/djep/vectorJep/values/Tensor.java b/src/main/java/org/lsmp/djep/vectorJep/values/Tensor.java
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/values/Tensor.java
rename to src/main/java/org/lsmp/djep/vectorJep/values/Tensor.java
diff --git a/src/org/lsmp/djep/vectorJep/values/package.html b/src/main/java/org/lsmp/djep/vectorJep/values/package.html
similarity index 100%
rename from src/org/lsmp/djep/vectorJep/values/package.html
rename to src/main/java/org/lsmp/djep/vectorJep/values/package.html
diff --git a/src/org/lsmp/djep/xjep/BaseFormat.java b/src/main/java/org/lsmp/djep/xjep/BaseFormat.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/BaseFormat.java
rename to src/main/java/org/lsmp/djep/xjep/BaseFormat.java
diff --git a/src/org/lsmp/djep/xjep/CommandVisitor.java b/src/main/java/org/lsmp/djep/xjep/CommandVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/CommandVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/CommandVisitor.java
diff --git a/src/org/lsmp/djep/xjep/CommandVisitorI.java b/src/main/java/org/lsmp/djep/xjep/CommandVisitorI.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/CommandVisitorI.java
rename to src/main/java/org/lsmp/djep/xjep/CommandVisitorI.java
diff --git a/src/org/lsmp/djep/xjep/DeepCopyVisitor.java b/src/main/java/org/lsmp/djep/xjep/DeepCopyVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/DeepCopyVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/DeepCopyVisitor.java
diff --git a/src/org/lsmp/djep/xjep/DoNothingVisitor.java b/src/main/java/org/lsmp/djep/xjep/DoNothingVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/DoNothingVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/DoNothingVisitor.java
diff --git a/src/org/lsmp/djep/xjep/ErrorCatchingVisitor.java b/src/main/java/org/lsmp/djep/xjep/ErrorCatchingVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/ErrorCatchingVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/ErrorCatchingVisitor.java
diff --git a/src/org/lsmp/djep/xjep/Eval.java b/src/main/java/org/lsmp/djep/xjep/Eval.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/Eval.java
rename to src/main/java/org/lsmp/djep/xjep/Eval.java
diff --git a/src/org/lsmp/djep/xjep/MacroFunction.java b/src/main/java/org/lsmp/djep/xjep/MacroFunction.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/MacroFunction.java
rename to src/main/java/org/lsmp/djep/xjep/MacroFunction.java
diff --git a/src/org/lsmp/djep/xjep/NodeFactory.java b/src/main/java/org/lsmp/djep/xjep/NodeFactory.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/NodeFactory.java
rename to src/main/java/org/lsmp/djep/xjep/NodeFactory.java
diff --git a/src/org/lsmp/djep/xjep/PrintVisitor.java b/src/main/java/org/lsmp/djep/xjep/PrintVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/PrintVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/PrintVisitor.java
diff --git a/src/org/lsmp/djep/xjep/SimplificationVisitor.java b/src/main/java/org/lsmp/djep/xjep/SimplificationVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/SimplificationVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/SimplificationVisitor.java
diff --git a/src/org/lsmp/djep/xjep/SubstitutionVisitor.java b/src/main/java/org/lsmp/djep/xjep/SubstitutionVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/SubstitutionVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/SubstitutionVisitor.java
diff --git a/src/org/lsmp/djep/xjep/TreeUtils.java b/src/main/java/org/lsmp/djep/xjep/TreeUtils.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/TreeUtils.java
rename to src/main/java/org/lsmp/djep/xjep/TreeUtils.java
diff --git a/src/org/lsmp/djep/xjep/XEvaluatorVisitor.java b/src/main/java/org/lsmp/djep/xjep/XEvaluatorVisitor.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XEvaluatorVisitor.java
rename to src/main/java/org/lsmp/djep/xjep/XEvaluatorVisitor.java
diff --git a/src/org/lsmp/djep/xjep/XJep.java b/src/main/java/org/lsmp/djep/xjep/XJep.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XJep.java
rename to src/main/java/org/lsmp/djep/xjep/XJep.java
diff --git a/src/org/lsmp/djep/xjep/XMath.java b/src/main/java/org/lsmp/djep/xjep/XMath.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XMath.java
rename to src/main/java/org/lsmp/djep/xjep/XMath.java
diff --git a/src/org/lsmp/djep/xjep/XOperator.java b/src/main/java/org/lsmp/djep/xjep/XOperator.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XOperator.java
rename to src/main/java/org/lsmp/djep/xjep/XOperator.java
diff --git a/src/org/lsmp/djep/xjep/XOperatorSet.java b/src/main/java/org/lsmp/djep/xjep/XOperatorSet.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XOperatorSet.java
rename to src/main/java/org/lsmp/djep/xjep/XOperatorSet.java
diff --git a/src/org/lsmp/djep/xjep/XSymbolTable.java b/src/main/java/org/lsmp/djep/xjep/XSymbolTable.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XSymbolTable.java
rename to src/main/java/org/lsmp/djep/xjep/XSymbolTable.java
diff --git a/src/org/lsmp/djep/xjep/XVariable.java b/src/main/java/org/lsmp/djep/xjep/XVariable.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XVariable.java
rename to src/main/java/org/lsmp/djep/xjep/XVariable.java
diff --git a/src/org/lsmp/djep/xjep/XVariableFactory.java b/src/main/java/org/lsmp/djep/xjep/XVariableFactory.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/XVariableFactory.java
rename to src/main/java/org/lsmp/djep/xjep/XVariableFactory.java
diff --git a/src/org/lsmp/djep/xjep/function/Define.java b/src/main/java/org/lsmp/djep/xjep/function/Define.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/Define.java
rename to src/main/java/org/lsmp/djep/xjep/function/Define.java
diff --git a/src/org/lsmp/djep/xjep/function/FromBase.java b/src/main/java/org/lsmp/djep/xjep/function/FromBase.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/FromBase.java
rename to src/main/java/org/lsmp/djep/xjep/function/FromBase.java
diff --git a/src/org/lsmp/djep/xjep/function/Max.java b/src/main/java/org/lsmp/djep/xjep/function/Max.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/Max.java
rename to src/main/java/org/lsmp/djep/xjep/function/Max.java
diff --git a/src/org/lsmp/djep/xjep/function/MaxArg.java b/src/main/java/org/lsmp/djep/xjep/function/MaxArg.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/MaxArg.java
rename to src/main/java/org/lsmp/djep/xjep/function/MaxArg.java
diff --git a/src/org/lsmp/djep/xjep/function/Min.java b/src/main/java/org/lsmp/djep/xjep/function/Min.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/Min.java
rename to src/main/java/org/lsmp/djep/xjep/function/Min.java
diff --git a/src/org/lsmp/djep/xjep/function/MinArg.java b/src/main/java/org/lsmp/djep/xjep/function/MinArg.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/MinArg.java
rename to src/main/java/org/lsmp/djep/xjep/function/MinArg.java
diff --git a/src/org/lsmp/djep/xjep/function/Product.java b/src/main/java/org/lsmp/djep/xjep/function/Product.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/Product.java
rename to src/main/java/org/lsmp/djep/xjep/function/Product.java
diff --git a/src/org/lsmp/djep/xjep/function/Simpson.java b/src/main/java/org/lsmp/djep/xjep/function/Simpson.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/Simpson.java
rename to src/main/java/org/lsmp/djep/xjep/function/Simpson.java
diff --git a/src/org/lsmp/djep/xjep/function/Sum.java b/src/main/java/org/lsmp/djep/xjep/function/Sum.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/Sum.java
rename to src/main/java/org/lsmp/djep/xjep/function/Sum.java
diff --git a/src/org/lsmp/djep/xjep/function/SumType.java b/src/main/java/org/lsmp/djep/xjep/function/SumType.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/SumType.java
rename to src/main/java/org/lsmp/djep/xjep/function/SumType.java
diff --git a/src/org/lsmp/djep/xjep/function/ToBase.java b/src/main/java/org/lsmp/djep/xjep/function/ToBase.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/ToBase.java
rename to src/main/java/org/lsmp/djep/xjep/function/ToBase.java
diff --git a/src/org/lsmp/djep/xjep/function/Trapezium.java b/src/main/java/org/lsmp/djep/xjep/function/Trapezium.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/Trapezium.java
rename to src/main/java/org/lsmp/djep/xjep/function/Trapezium.java
diff --git a/src/org/lsmp/djep/xjep/function/XAssign.java b/src/main/java/org/lsmp/djep/xjep/function/XAssign.java
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/XAssign.java
rename to src/main/java/org/lsmp/djep/xjep/function/XAssign.java
diff --git a/src/org/lsmp/djep/xjep/function/package.html b/src/main/java/org/lsmp/djep/xjep/function/package.html
similarity index 100%
rename from src/org/lsmp/djep/xjep/function/package.html
rename to src/main/java/org/lsmp/djep/xjep/function/package.html
diff --git a/src/org/lsmp/djep/xjep/package.html b/src/main/java/org/lsmp/djep/xjep/package.html
similarity index 100%
rename from src/org/lsmp/djep/xjep/package.html
rename to src/main/java/org/lsmp/djep/xjep/package.html
diff --git a/src/org/nfunk/jep/.cvsignore b/src/main/java/org/nfunk/jep/.cvsignore
similarity index 100%
rename from src/org/nfunk/jep/.cvsignore
rename to src/main/java/org/nfunk/jep/.cvsignore
diff --git a/src/org/nfunk/jep/ASTConstant.java b/src/main/java/org/nfunk/jep/ASTConstant.java
similarity index 100%
rename from src/org/nfunk/jep/ASTConstant.java
rename to src/main/java/org/nfunk/jep/ASTConstant.java
diff --git a/src/org/nfunk/jep/ASTFunNode.java b/src/main/java/org/nfunk/jep/ASTFunNode.java
similarity index 100%
rename from src/org/nfunk/jep/ASTFunNode.java
rename to src/main/java/org/nfunk/jep/ASTFunNode.java
diff --git a/src/org/nfunk/jep/ASTStart.java b/src/main/java/org/nfunk/jep/ASTStart.java
similarity index 100%
rename from src/org/nfunk/jep/ASTStart.java
rename to src/main/java/org/nfunk/jep/ASTStart.java
diff --git a/src/org/nfunk/jep/ASTVarNode.java b/src/main/java/org/nfunk/jep/ASTVarNode.java
similarity index 100%
rename from src/org/nfunk/jep/ASTVarNode.java
rename to src/main/java/org/nfunk/jep/ASTVarNode.java
diff --git a/src/org/nfunk/jep/EvaluatorI.java b/src/main/java/org/nfunk/jep/EvaluatorI.java
similarity index 100%
rename from src/org/nfunk/jep/EvaluatorI.java
rename to src/main/java/org/nfunk/jep/EvaluatorI.java
diff --git a/src/org/nfunk/jep/EvaluatorVisitor.java b/src/main/java/org/nfunk/jep/EvaluatorVisitor.java
similarity index 100%
rename from src/org/nfunk/jep/EvaluatorVisitor.java
rename to src/main/java/org/nfunk/jep/EvaluatorVisitor.java
diff --git a/src/org/nfunk/jep/FunctionTable.java b/src/main/java/org/nfunk/jep/FunctionTable.java
similarity index 100%
rename from src/org/nfunk/jep/FunctionTable.java
rename to src/main/java/org/nfunk/jep/FunctionTable.java
diff --git a/src/org/nfunk/jep/JEP.java b/src/main/java/org/nfunk/jep/JEP.java
similarity index 100%
rename from src/org/nfunk/jep/JEP.java
rename to src/main/java/org/nfunk/jep/JEP.java
diff --git a/src/org/nfunk/jep/JJTParserState.java b/src/main/java/org/nfunk/jep/JJTParserState.java
similarity index 100%
rename from src/org/nfunk/jep/JJTParserState.java
rename to src/main/java/org/nfunk/jep/JJTParserState.java
diff --git a/src/org/nfunk/jep/JavaCharStream.java b/src/main/java/org/nfunk/jep/JavaCharStream.java
similarity index 100%
rename from src/org/nfunk/jep/JavaCharStream.java
rename to src/main/java/org/nfunk/jep/JavaCharStream.java
diff --git a/src/org/nfunk/jep/Node.java b/src/main/java/org/nfunk/jep/Node.java
similarity index 100%
rename from src/org/nfunk/jep/Node.java
rename to src/main/java/org/nfunk/jep/Node.java
diff --git a/src/org/nfunk/jep/Operator.java b/src/main/java/org/nfunk/jep/Operator.java
similarity index 100%
rename from src/org/nfunk/jep/Operator.java
rename to src/main/java/org/nfunk/jep/Operator.java
diff --git a/src/org/nfunk/jep/OperatorSet.java b/src/main/java/org/nfunk/jep/OperatorSet.java
similarity index 100%
rename from src/org/nfunk/jep/OperatorSet.java
rename to src/main/java/org/nfunk/jep/OperatorSet.java
diff --git a/src/org/nfunk/jep/ParseException.java b/src/main/java/org/nfunk/jep/ParseException.java
similarity index 100%
rename from src/org/nfunk/jep/ParseException.java
rename to src/main/java/org/nfunk/jep/ParseException.java
diff --git a/src/org/nfunk/jep/Parser.java b/src/main/java/org/nfunk/jep/Parser.java
similarity index 100%
rename from src/org/nfunk/jep/Parser.java
rename to src/main/java/org/nfunk/jep/Parser.java
diff --git a/src/org/nfunk/jep/Parser.jjt b/src/main/java/org/nfunk/jep/Parser.jjt
similarity index 100%
rename from src/org/nfunk/jep/Parser.jjt
rename to src/main/java/org/nfunk/jep/Parser.jjt
diff --git a/src/org/nfunk/jep/ParserConstants.java b/src/main/java/org/nfunk/jep/ParserConstants.java
similarity index 100%
rename from src/org/nfunk/jep/ParserConstants.java
rename to src/main/java/org/nfunk/jep/ParserConstants.java
diff --git a/src/org/nfunk/jep/ParserDumpVisitor.java b/src/main/java/org/nfunk/jep/ParserDumpVisitor.java
similarity index 100%
rename from src/org/nfunk/jep/ParserDumpVisitor.java
rename to src/main/java/org/nfunk/jep/ParserDumpVisitor.java
diff --git a/src/org/nfunk/jep/ParserTokenManager.java b/src/main/java/org/nfunk/jep/ParserTokenManager.java
similarity index 100%
rename from src/org/nfunk/jep/ParserTokenManager.java
rename to src/main/java/org/nfunk/jep/ParserTokenManager.java
diff --git a/src/org/nfunk/jep/ParserTreeConstants.java b/src/main/java/org/nfunk/jep/ParserTreeConstants.java
similarity index 100%
rename from src/org/nfunk/jep/ParserTreeConstants.java
rename to src/main/java/org/nfunk/jep/ParserTreeConstants.java
diff --git a/src/org/nfunk/jep/ParserVisitor.java b/src/main/java/org/nfunk/jep/ParserVisitor.java
similarity index 100%
rename from src/org/nfunk/jep/ParserVisitor.java
rename to src/main/java/org/nfunk/jep/ParserVisitor.java
diff --git a/src/org/nfunk/jep/SimpleCharStream.java b/src/main/java/org/nfunk/jep/SimpleCharStream.java
similarity index 100%
rename from src/org/nfunk/jep/SimpleCharStream.java
rename to src/main/java/org/nfunk/jep/SimpleCharStream.java
diff --git a/src/org/nfunk/jep/SimpleNode.java b/src/main/java/org/nfunk/jep/SimpleNode.java
similarity index 100%
rename from src/org/nfunk/jep/SimpleNode.java
rename to src/main/java/org/nfunk/jep/SimpleNode.java
diff --git a/src/org/nfunk/jep/SymbolTable.java b/src/main/java/org/nfunk/jep/SymbolTable.java
similarity index 100%
rename from src/org/nfunk/jep/SymbolTable.java
rename to src/main/java/org/nfunk/jep/SymbolTable.java
diff --git a/src/org/nfunk/jep/Token.java b/src/main/java/org/nfunk/jep/Token.java
similarity index 100%
rename from src/org/nfunk/jep/Token.java
rename to src/main/java/org/nfunk/jep/Token.java
diff --git a/src/org/nfunk/jep/TokenMgrError.java b/src/main/java/org/nfunk/jep/TokenMgrError.java
similarity index 100%
rename from src/org/nfunk/jep/TokenMgrError.java
rename to src/main/java/org/nfunk/jep/TokenMgrError.java
diff --git a/src/org/nfunk/jep/Variable.java b/src/main/java/org/nfunk/jep/Variable.java
similarity index 100%
rename from src/org/nfunk/jep/Variable.java
rename to src/main/java/org/nfunk/jep/Variable.java
diff --git a/src/org/nfunk/jep/VariableFactory.java b/src/main/java/org/nfunk/jep/VariableFactory.java
similarity index 100%
rename from src/org/nfunk/jep/VariableFactory.java
rename to src/main/java/org/nfunk/jep/VariableFactory.java
diff --git a/src/org/nfunk/jep/evaluation/CommandElement.java b/src/main/java/org/nfunk/jep/evaluation/CommandElement.java
similarity index 100%
rename from src/org/nfunk/jep/evaluation/CommandElement.java
rename to src/main/java/org/nfunk/jep/evaluation/CommandElement.java
diff --git a/src/org/nfunk/jep/evaluation/CommandEvaluator.java b/src/main/java/org/nfunk/jep/evaluation/CommandEvaluator.java
similarity index 100%
rename from src/org/nfunk/jep/evaluation/CommandEvaluator.java
rename to src/main/java/org/nfunk/jep/evaluation/CommandEvaluator.java
diff --git a/src/org/nfunk/jep/evaluation/ExpressionCompiler.java b/src/main/java/org/nfunk/jep/evaluation/ExpressionCompiler.java
similarity index 100%
rename from src/org/nfunk/jep/evaluation/ExpressionCompiler.java
rename to src/main/java/org/nfunk/jep/evaluation/ExpressionCompiler.java
diff --git a/src/org/nfunk/jep/evaluation/package.html b/src/main/java/org/nfunk/jep/evaluation/package.html
similarity index 100%
rename from src/org/nfunk/jep/evaluation/package.html
rename to src/main/java/org/nfunk/jep/evaluation/package.html
diff --git a/src/org/nfunk/jep/function/Abs.java b/src/main/java/org/nfunk/jep/function/Abs.java
similarity index 100%
rename from src/org/nfunk/jep/function/Abs.java
rename to src/main/java/org/nfunk/jep/function/Abs.java
diff --git a/src/org/nfunk/jep/function/Add.java b/src/main/java/org/nfunk/jep/function/Add.java
similarity index 100%
rename from src/org/nfunk/jep/function/Add.java
rename to src/main/java/org/nfunk/jep/function/Add.java
diff --git a/src/org/nfunk/jep/function/ArcCosine.java b/src/main/java/org/nfunk/jep/function/ArcCosine.java
similarity index 100%
rename from src/org/nfunk/jep/function/ArcCosine.java
rename to src/main/java/org/nfunk/jep/function/ArcCosine.java
diff --git a/src/org/nfunk/jep/function/ArcCosineH.java b/src/main/java/org/nfunk/jep/function/ArcCosineH.java
similarity index 100%
rename from src/org/nfunk/jep/function/ArcCosineH.java
rename to src/main/java/org/nfunk/jep/function/ArcCosineH.java
diff --git a/src/org/nfunk/jep/function/ArcSine.java b/src/main/java/org/nfunk/jep/function/ArcSine.java
similarity index 100%
rename from src/org/nfunk/jep/function/ArcSine.java
rename to src/main/java/org/nfunk/jep/function/ArcSine.java
diff --git a/src/org/nfunk/jep/function/ArcSineH.java b/src/main/java/org/nfunk/jep/function/ArcSineH.java
similarity index 100%
rename from src/org/nfunk/jep/function/ArcSineH.java
rename to src/main/java/org/nfunk/jep/function/ArcSineH.java
diff --git a/src/org/nfunk/jep/function/ArcTanH.java b/src/main/java/org/nfunk/jep/function/ArcTanH.java
similarity index 100%
rename from src/org/nfunk/jep/function/ArcTanH.java
rename to src/main/java/org/nfunk/jep/function/ArcTanH.java
diff --git a/src/org/nfunk/jep/function/ArcTangent.java b/src/main/java/org/nfunk/jep/function/ArcTangent.java
similarity index 100%
rename from src/org/nfunk/jep/function/ArcTangent.java
rename to src/main/java/org/nfunk/jep/function/ArcTangent.java
diff --git a/src/org/nfunk/jep/function/ArcTangent2.java b/src/main/java/org/nfunk/jep/function/ArcTangent2.java
similarity index 100%
rename from src/org/nfunk/jep/function/ArcTangent2.java
rename to src/main/java/org/nfunk/jep/function/ArcTangent2.java
diff --git a/src/org/nfunk/jep/function/Arg.java b/src/main/java/org/nfunk/jep/function/Arg.java
similarity index 100%
rename from src/org/nfunk/jep/function/Arg.java
rename to src/main/java/org/nfunk/jep/function/Arg.java
diff --git a/src/org/nfunk/jep/function/Assign.java b/src/main/java/org/nfunk/jep/function/Assign.java
similarity index 100%
rename from src/org/nfunk/jep/function/Assign.java
rename to src/main/java/org/nfunk/jep/function/Assign.java
diff --git a/src/org/nfunk/jep/function/Binomial.java b/src/main/java/org/nfunk/jep/function/Binomial.java
similarity index 100%
rename from src/org/nfunk/jep/function/Binomial.java
rename to src/main/java/org/nfunk/jep/function/Binomial.java
diff --git a/src/org/nfunk/jep/function/CallbackEvaluationI.java b/src/main/java/org/nfunk/jep/function/CallbackEvaluationI.java
similarity index 100%
rename from src/org/nfunk/jep/function/CallbackEvaluationI.java
rename to src/main/java/org/nfunk/jep/function/CallbackEvaluationI.java
diff --git a/src/org/nfunk/jep/function/Comparative.java b/src/main/java/org/nfunk/jep/function/Comparative.java
similarity index 100%
rename from src/org/nfunk/jep/function/Comparative.java
rename to src/main/java/org/nfunk/jep/function/Comparative.java
diff --git a/src/org/nfunk/jep/function/ComplexPFMC.java b/src/main/java/org/nfunk/jep/function/ComplexPFMC.java
similarity index 100%
rename from src/org/nfunk/jep/function/ComplexPFMC.java
rename to src/main/java/org/nfunk/jep/function/ComplexPFMC.java
diff --git a/src/org/nfunk/jep/function/Conjugate.java b/src/main/java/org/nfunk/jep/function/Conjugate.java
similarity index 100%
rename from src/org/nfunk/jep/function/Conjugate.java
rename to src/main/java/org/nfunk/jep/function/Conjugate.java
diff --git a/src/org/nfunk/jep/function/Cosine.java b/src/main/java/org/nfunk/jep/function/Cosine.java
similarity index 100%
rename from src/org/nfunk/jep/function/Cosine.java
rename to src/main/java/org/nfunk/jep/function/Cosine.java
diff --git a/src/org/nfunk/jep/function/CosineH.java b/src/main/java/org/nfunk/jep/function/CosineH.java
similarity index 100%
rename from src/org/nfunk/jep/function/CosineH.java
rename to src/main/java/org/nfunk/jep/function/CosineH.java
diff --git a/src/org/nfunk/jep/function/Cross.java b/src/main/java/org/nfunk/jep/function/Cross.java
similarity index 100%
rename from src/org/nfunk/jep/function/Cross.java
rename to src/main/java/org/nfunk/jep/function/Cross.java
diff --git a/src/org/nfunk/jep/function/Divide.java b/src/main/java/org/nfunk/jep/function/Divide.java
similarity index 100%
rename from src/org/nfunk/jep/function/Divide.java
rename to src/main/java/org/nfunk/jep/function/Divide.java
diff --git a/src/org/nfunk/jep/function/Dot.java b/src/main/java/org/nfunk/jep/function/Dot.java
similarity index 100%
rename from src/org/nfunk/jep/function/Dot.java
rename to src/main/java/org/nfunk/jep/function/Dot.java
diff --git a/src/org/nfunk/jep/function/Ele.java b/src/main/java/org/nfunk/jep/function/Ele.java
similarity index 100%
rename from src/org/nfunk/jep/function/Ele.java
rename to src/main/java/org/nfunk/jep/function/Ele.java
diff --git a/src/org/nfunk/jep/function/Exp.java b/src/main/java/org/nfunk/jep/function/Exp.java
similarity index 100%
rename from src/org/nfunk/jep/function/Exp.java
rename to src/main/java/org/nfunk/jep/function/Exp.java
diff --git a/src/org/nfunk/jep/function/If.java b/src/main/java/org/nfunk/jep/function/If.java
similarity index 100%
rename from src/org/nfunk/jep/function/If.java
rename to src/main/java/org/nfunk/jep/function/If.java
diff --git a/src/org/nfunk/jep/function/Imaginary.java b/src/main/java/org/nfunk/jep/function/Imaginary.java
similarity index 100%
rename from src/org/nfunk/jep/function/Imaginary.java
rename to src/main/java/org/nfunk/jep/function/Imaginary.java
diff --git a/src/org/nfunk/jep/function/LValueI.java b/src/main/java/org/nfunk/jep/function/LValueI.java
similarity index 100%
rename from src/org/nfunk/jep/function/LValueI.java
rename to src/main/java/org/nfunk/jep/function/LValueI.java
diff --git a/src/org/nfunk/jep/function/List.java b/src/main/java/org/nfunk/jep/function/List.java
similarity index 100%
rename from src/org/nfunk/jep/function/List.java
rename to src/main/java/org/nfunk/jep/function/List.java
diff --git a/src/org/nfunk/jep/function/Logarithm.java b/src/main/java/org/nfunk/jep/function/Logarithm.java
similarity index 100%
rename from src/org/nfunk/jep/function/Logarithm.java
rename to src/main/java/org/nfunk/jep/function/Logarithm.java
diff --git a/src/org/nfunk/jep/function/Logical.java b/src/main/java/org/nfunk/jep/function/Logical.java
similarity index 100%
rename from src/org/nfunk/jep/function/Logical.java
rename to src/main/java/org/nfunk/jep/function/Logical.java
diff --git a/src/org/nfunk/jep/function/Modulus.java b/src/main/java/org/nfunk/jep/function/Modulus.java
similarity index 100%
rename from src/org/nfunk/jep/function/Modulus.java
rename to src/main/java/org/nfunk/jep/function/Modulus.java
diff --git a/src/org/nfunk/jep/function/Multiply.java b/src/main/java/org/nfunk/jep/function/Multiply.java
similarity index 100%
rename from src/org/nfunk/jep/function/Multiply.java
rename to src/main/java/org/nfunk/jep/function/Multiply.java
diff --git a/src/org/nfunk/jep/function/NaturalLogarithm.java b/src/main/java/org/nfunk/jep/function/NaturalLogarithm.java
similarity index 100%
rename from src/org/nfunk/jep/function/NaturalLogarithm.java
rename to src/main/java/org/nfunk/jep/function/NaturalLogarithm.java
diff --git a/src/org/nfunk/jep/function/Not.java b/src/main/java/org/nfunk/jep/function/Not.java
similarity index 100%
rename from src/org/nfunk/jep/function/Not.java
rename to src/main/java/org/nfunk/jep/function/Not.java
diff --git a/src/org/nfunk/jep/function/Polar.java b/src/main/java/org/nfunk/jep/function/Polar.java
similarity index 100%
rename from src/org/nfunk/jep/function/Polar.java
rename to src/main/java/org/nfunk/jep/function/Polar.java
diff --git a/src/org/nfunk/jep/function/PostfixMathCommand.java b/src/main/java/org/nfunk/jep/function/PostfixMathCommand.java
similarity index 100%
rename from src/org/nfunk/jep/function/PostfixMathCommand.java
rename to src/main/java/org/nfunk/jep/function/PostfixMathCommand.java
diff --git a/src/org/nfunk/jep/function/PostfixMathCommandI.java b/src/main/java/org/nfunk/jep/function/PostfixMathCommandI.java
similarity index 100%
rename from src/org/nfunk/jep/function/PostfixMathCommandI.java
rename to src/main/java/org/nfunk/jep/function/PostfixMathCommandI.java
diff --git a/src/org/nfunk/jep/function/Power.java b/src/main/java/org/nfunk/jep/function/Power.java
similarity index 100%
rename from src/org/nfunk/jep/function/Power.java
rename to src/main/java/org/nfunk/jep/function/Power.java
diff --git a/src/org/nfunk/jep/function/Random.java b/src/main/java/org/nfunk/jep/function/Random.java
similarity index 100%
rename from src/org/nfunk/jep/function/Random.java
rename to src/main/java/org/nfunk/jep/function/Random.java
diff --git a/src/org/nfunk/jep/function/Range.java b/src/main/java/org/nfunk/jep/function/Range.java
similarity index 100%
rename from src/org/nfunk/jep/function/Range.java
rename to src/main/java/org/nfunk/jep/function/Range.java
diff --git a/src/org/nfunk/jep/function/Real.java b/src/main/java/org/nfunk/jep/function/Real.java
similarity index 100%
rename from src/org/nfunk/jep/function/Real.java
rename to src/main/java/org/nfunk/jep/function/Real.java
diff --git a/src/org/nfunk/jep/function/Sine.java b/src/main/java/org/nfunk/jep/function/Sine.java
similarity index 100%
rename from src/org/nfunk/jep/function/Sine.java
rename to src/main/java/org/nfunk/jep/function/Sine.java
diff --git a/src/org/nfunk/jep/function/SineH.java b/src/main/java/org/nfunk/jep/function/SineH.java
similarity index 100%
rename from src/org/nfunk/jep/function/SineH.java
rename to src/main/java/org/nfunk/jep/function/SineH.java
diff --git a/src/org/nfunk/jep/function/SpecialEvaluationI.java b/src/main/java/org/nfunk/jep/function/SpecialEvaluationI.java
similarity index 100%
rename from src/org/nfunk/jep/function/SpecialEvaluationI.java
rename to src/main/java/org/nfunk/jep/function/SpecialEvaluationI.java
diff --git a/src/org/nfunk/jep/function/SquareRoot.java b/src/main/java/org/nfunk/jep/function/SquareRoot.java
similarity index 100%
rename from src/org/nfunk/jep/function/SquareRoot.java
rename to src/main/java/org/nfunk/jep/function/SquareRoot.java
diff --git a/src/org/nfunk/jep/function/Str.java b/src/main/java/org/nfunk/jep/function/Str.java
similarity index 100%
rename from src/org/nfunk/jep/function/Str.java
rename to src/main/java/org/nfunk/jep/function/Str.java
diff --git a/src/org/nfunk/jep/function/Subtract.java b/src/main/java/org/nfunk/jep/function/Subtract.java
similarity index 100%
rename from src/org/nfunk/jep/function/Subtract.java
rename to src/main/java/org/nfunk/jep/function/Subtract.java
diff --git a/src/org/nfunk/jep/function/Sum.java b/src/main/java/org/nfunk/jep/function/Sum.java
similarity index 100%
rename from src/org/nfunk/jep/function/Sum.java
rename to src/main/java/org/nfunk/jep/function/Sum.java
diff --git a/src/org/nfunk/jep/function/TanH.java b/src/main/java/org/nfunk/jep/function/TanH.java
similarity index 100%
rename from src/org/nfunk/jep/function/TanH.java
rename to src/main/java/org/nfunk/jep/function/TanH.java
diff --git a/src/org/nfunk/jep/function/Tangent.java b/src/main/java/org/nfunk/jep/function/Tangent.java
similarity index 100%
rename from src/org/nfunk/jep/function/Tangent.java
rename to src/main/java/org/nfunk/jep/function/Tangent.java
diff --git a/src/org/nfunk/jep/function/UMinus.java b/src/main/java/org/nfunk/jep/function/UMinus.java
similarity index 100%
rename from src/org/nfunk/jep/function/UMinus.java
rename to src/main/java/org/nfunk/jep/function/UMinus.java
diff --git a/src/org/nfunk/jep/function/package.html b/src/main/java/org/nfunk/jep/function/package.html
similarity index 100%
rename from src/org/nfunk/jep/function/package.html
rename to src/main/java/org/nfunk/jep/function/package.html
diff --git a/src/org/nfunk/jep/package.html b/src/main/java/org/nfunk/jep/package.html
similarity index 100%
rename from src/org/nfunk/jep/package.html
rename to src/main/java/org/nfunk/jep/package.html
diff --git a/src/org/nfunk/jep/type/Complex.java b/src/main/java/org/nfunk/jep/type/Complex.java
similarity index 100%
rename from src/org/nfunk/jep/type/Complex.java
rename to src/main/java/org/nfunk/jep/type/Complex.java
diff --git a/src/org/nfunk/jep/type/DoubleNumberFactory.java b/src/main/java/org/nfunk/jep/type/DoubleNumberFactory.java
similarity index 100%
rename from src/org/nfunk/jep/type/DoubleNumberFactory.java
rename to src/main/java/org/nfunk/jep/type/DoubleNumberFactory.java
diff --git a/src/org/nfunk/jep/type/NumberFactory.java b/src/main/java/org/nfunk/jep/type/NumberFactory.java
similarity index 100%
rename from src/org/nfunk/jep/type/NumberFactory.java
rename to src/main/java/org/nfunk/jep/type/NumberFactory.java
diff --git a/src/org/nfunk/jep/type/package.html b/src/main/java/org/nfunk/jep/type/package.html
similarity index 100%
rename from src/org/nfunk/jep/type/package.html
rename to src/main/java/org/nfunk/jep/type/package.html
diff --git a/src/overview.html b/src/main/java/overview.html
similarity index 100%
rename from src/overview.html
rename to src/main/java/overview.html
diff --git a/src/org/nfunk/jeptesting/AllTests.java b/src/org/nfunk/jeptesting/AllTests.java
deleted file mode 100644
index 1fc2cc0..0000000
--- a/src/org/nfunk/jeptesting/AllTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*****************************************************************************
-
-@header@
-@date@
-@copyright@
-@license@
-
-*****************************************************************************/
-
-package org.nfunk.jeptesting;
-
-import junit.framework.*;
-
-public class AllTests {
-
- public static void main (String[] args) {
- junit.textui.TestRunner.run(suite());
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite("All JUnit Tests");
- suite.addTest(new JEPTest("testParseExpression"));
- suite.addTest(new LogarithmTest("testLogarithm"));
- suite.addTest(new NaturalLogarithmTest("testNaturalLogarithm"));
- return suite;
- }
-}
diff --git a/src/org/nfunk/jeptesting/LogarithmTest.java b/src/org/nfunk/jeptesting/LogarithmTest.java
deleted file mode 100644
index 38588c3..0000000
--- a/src/org/nfunk/jeptesting/LogarithmTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.nfunk.jeptesting;
-
-import org.nfunk.jep.ParseException;
-import org.nfunk.jep.function.Logarithm;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-public class LogarithmTest extends TestCase {
-
- LogarithmTest(String name) {
- super(name);
- }
-
- /**
- * Test method for 'org.nfunk.jep.function.Logarithm.run(Stack)'
- * Tests the return value of log(NaN). This is a test for bug #1177557
- */
- public void testLogarithm() {
- Logarithm logFunction = new Logarithm();
- java.util.Stack stack = new java.util.Stack();
- stack.push(new Double(Double.NaN));
- try {
- logFunction.run(stack);
- } catch (ParseException e) {
- Assert.fail();
- }
- Object returnValue = stack.pop();
-
- if (returnValue instanceof Double) {
- Assert.assertTrue(Double.isNaN(((Double)returnValue).doubleValue()));
- } else {
- Assert.fail();
- }
- }
-
-}
diff --git a/src/org/nfunk/jeptesting/NaturalLogarithmTest.java b/src/org/nfunk/jeptesting/NaturalLogarithmTest.java
deleted file mode 100644
index 82f5bf5..0000000
--- a/src/org/nfunk/jeptesting/NaturalLogarithmTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.nfunk.jeptesting;
-
-import org.nfunk.jep.ParseException;
-import org.nfunk.jep.function.NaturalLogarithm;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-public class NaturalLogarithmTest extends TestCase {
-
- NaturalLogarithmTest(String name) {
- super(name);
- }
-
- /**
- * Test method for 'org.nfunk.jep.function.Logarithm.run(Stack)'
- * Tests the return value of log(NaN). This is a test for bug #1177557
- */
- public void testNaturalLogarithm() {
- NaturalLogarithm logFunction = new NaturalLogarithm();
- java.util.Stack stack = new java.util.Stack();
- stack.push(new Double(Double.NaN));
- try {
- logFunction.run(stack);
- } catch (ParseException e) {
- Assert.fail();
- }
- Object returnValue = stack.pop();
-
- if (returnValue instanceof Double) {
- Assert.assertTrue(Double.isNaN(((Double)returnValue).doubleValue()));
- } else {
- Assert.fail();
- }
- }
-
-}
diff --git a/src/org/lsmp/djepExamples/AssignmentExample.java b/src/test/java/org/lsmp/djepExamples/AssignmentExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/AssignmentExample.java
rename to src/test/java/org/lsmp/djepExamples/AssignmentExample.java
diff --git a/src/org/lsmp/djepExamples/BlockStatments.java b/src/test/java/org/lsmp/djepExamples/BlockStatments.java
similarity index 100%
rename from src/org/lsmp/djepExamples/BlockStatments.java
rename to src/test/java/org/lsmp/djepExamples/BlockStatments.java
diff --git a/src/org/lsmp/djepExamples/Console.java b/src/test/java/org/lsmp/djepExamples/Console.java
similarity index 100%
rename from src/org/lsmp/djepExamples/Console.java
rename to src/test/java/org/lsmp/djepExamples/Console.java
diff --git a/src/org/lsmp/djepExamples/DJepApplet.java b/src/test/java/org/lsmp/djepExamples/DJepApplet.java
similarity index 100%
rename from src/org/lsmp/djepExamples/DJepApplet.java
rename to src/test/java/org/lsmp/djepExamples/DJepApplet.java
diff --git a/src/org/lsmp/djepExamples/DJepConsole.java b/src/test/java/org/lsmp/djepExamples/DJepConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/DJepConsole.java
rename to src/test/java/org/lsmp/djepExamples/DJepConsole.java
diff --git a/src/org/lsmp/djepExamples/DiffExample.java b/src/test/java/org/lsmp/djepExamples/DiffExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/DiffExample.java
rename to src/test/java/org/lsmp/djepExamples/DiffExample.java
diff --git a/src/org/lsmp/djepExamples/GroupConsole.java b/src/test/java/org/lsmp/djepExamples/GroupConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/GroupConsole.java
rename to src/test/java/org/lsmp/djepExamples/GroupConsole.java
diff --git a/src/org/lsmp/djepExamples/JamaConsole.java b/src/test/java/org/lsmp/djepExamples/JamaConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/JamaConsole.java
rename to src/test/java/org/lsmp/djepExamples/JamaConsole.java
diff --git a/src/org/lsmp/djepExamples/MRpConsole.java b/src/test/java/org/lsmp/djepExamples/MRpConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MRpConsole.java
rename to src/test/java/org/lsmp/djepExamples/MRpConsole.java
diff --git a/src/org/lsmp/djepExamples/MRpDiffExample.java b/src/test/java/org/lsmp/djepExamples/MRpDiffExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MRpDiffExample.java
rename to src/test/java/org/lsmp/djepExamples/MRpDiffExample.java
diff --git a/src/org/lsmp/djepExamples/MRpExample.java b/src/test/java/org/lsmp/djepExamples/MRpExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MRpExample.java
rename to src/test/java/org/lsmp/djepExamples/MRpExample.java
diff --git a/src/org/lsmp/djepExamples/MRpSpeed.java b/src/test/java/org/lsmp/djepExamples/MRpSpeed.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MRpSpeed.java
rename to src/test/java/org/lsmp/djepExamples/MRpSpeed.java
diff --git a/src/org/lsmp/djepExamples/MRpSurfExample.java b/src/test/java/org/lsmp/djepExamples/MRpSurfExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MRpSurfExample.java
rename to src/test/java/org/lsmp/djepExamples/MRpSurfExample.java
diff --git a/src/org/lsmp/djepExamples/MatrixConsole.java b/src/test/java/org/lsmp/djepExamples/MatrixConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MatrixConsole.java
rename to src/test/java/org/lsmp/djepExamples/MatrixConsole.java
diff --git a/src/org/lsmp/djepExamples/MatrixExample.java b/src/test/java/org/lsmp/djepExamples/MatrixExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MatrixExample.java
rename to src/test/java/org/lsmp/djepExamples/MatrixExample.java
diff --git a/src/org/lsmp/djepExamples/MatrixSpeed.java b/src/test/java/org/lsmp/djepExamples/MatrixSpeed.java
similarity index 100%
rename from src/org/lsmp/djepExamples/MatrixSpeed.java
rename to src/test/java/org/lsmp/djepExamples/MatrixSpeed.java
diff --git a/src/org/lsmp/djepExamples/ObserverConsole.java b/src/test/java/org/lsmp/djepExamples/ObserverConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/ObserverConsole.java
rename to src/test/java/org/lsmp/djepExamples/ObserverConsole.java
diff --git a/src/org/lsmp/djepExamples/PrintExample.java b/src/test/java/org/lsmp/djepExamples/PrintExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/PrintExample.java
rename to src/test/java/org/lsmp/djepExamples/PrintExample.java
diff --git a/src/org/lsmp/djepExamples/RpExample.java b/src/test/java/org/lsmp/djepExamples/RpExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/RpExample.java
rename to src/test/java/org/lsmp/djepExamples/RpExample.java
diff --git a/src/org/lsmp/djepExamples/RpSpeed.java b/src/test/java/org/lsmp/djepExamples/RpSpeed.java
similarity index 100%
rename from src/org/lsmp/djepExamples/RpSpeed.java
rename to src/test/java/org/lsmp/djepExamples/RpSpeed.java
diff --git a/src/org/lsmp/djepExamples/RpeConsole.java b/src/test/java/org/lsmp/djepExamples/RpeConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/RpeConsole.java
rename to src/test/java/org/lsmp/djepExamples/RpeConsole.java
diff --git a/src/org/lsmp/djepExamples/SJepConsole.java b/src/test/java/org/lsmp/djepExamples/SJepConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/SJepConsole.java
rename to src/test/java/org/lsmp/djepExamples/SJepConsole.java
diff --git a/src/org/lsmp/djepExamples/VectorConsole.java b/src/test/java/org/lsmp/djepExamples/VectorConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/VectorConsole.java
rename to src/test/java/org/lsmp/djepExamples/VectorConsole.java
diff --git a/src/org/lsmp/djepExamples/VectorExample.java b/src/test/java/org/lsmp/djepExamples/VectorExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/VectorExample.java
rename to src/test/java/org/lsmp/djepExamples/VectorExample.java
diff --git a/src/org/lsmp/djepExamples/VectorPrint.java b/src/test/java/org/lsmp/djepExamples/VectorPrint.java
similarity index 100%
rename from src/org/lsmp/djepExamples/VectorPrint.java
rename to src/test/java/org/lsmp/djepExamples/VectorPrint.java
diff --git a/src/org/lsmp/djepExamples/XJepConsole.java b/src/test/java/org/lsmp/djepExamples/XJepConsole.java
similarity index 100%
rename from src/org/lsmp/djepExamples/XJepConsole.java
rename to src/test/java/org/lsmp/djepExamples/XJepConsole.java
diff --git a/src/org/lsmp/djepExamples/XJepExample.java b/src/test/java/org/lsmp/djepExamples/XJepExample.java
similarity index 100%
rename from src/org/lsmp/djepExamples/XJepExample.java
rename to src/test/java/org/lsmp/djepExamples/XJepExample.java
diff --git a/src/org/lsmp/djepExamples/package.html b/src/test/java/org/lsmp/djepExamples/package.html
similarity index 100%
rename from src/org/lsmp/djepExamples/package.html
rename to src/test/java/org/lsmp/djepExamples/package.html
diff --git a/src/org/lsmp/djepJUnit/DJepTest.java b/src/test/java/org/lsmp/djepJUnit/DJepTest.java
similarity index 92%
rename from src/org/lsmp/djepJUnit/DJepTest.java
rename to src/test/java/org/lsmp/djepJUnit/DJepTest.java
index 22dd511..a0f9f89 100644
--- a/src/org/lsmp/djepJUnit/DJepTest.java
+++ b/src/test/java/org/lsmp/djepJUnit/DJepTest.java
@@ -5,10 +5,8 @@
*/
package org.lsmp.djepJUnit;
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.lsmp.djep.djep.DJep;
import org.lsmp.djep.djep.DSymbolTable;
import org.nfunk.jep.Node;
@@ -19,20 +17,7 @@
* Created on 22-Apr-2005
*/
public class DJepTest extends XJepTest {
-
- public DJepTest(String name) {
- super(name);
- }
-
- public static Test suite() {
- return new TestSuite(DJepTest.class);
- }
-
- public static void main(String[] args) {
- TestSuite suite= new TestSuite(DJepTest.class);
- suite.run(new TestResult());
- }
-
+ @BeforeEach
protected void setUp() {
j = new DJep();
j.addStandardConstants();
@@ -45,6 +30,7 @@ protected void setUp() {
((DJep) j).addStandardDiffRules();
}
+ @Test
public void testDiff() throws ParseException
{
System.out.println("\nTesting assignment");
@@ -121,6 +107,7 @@ public void testDiff() throws ParseException
// addDiffRule(new PassThroughDiffRule(this,"\"==\"",new Comparative(5)));
}
+ @Test
public void testAssignDiff() throws Exception
{
System.out.println("\nTesting assignment and diff");
@@ -139,6 +126,7 @@ public void testAssignDiff() throws Exception
}
+ @Test
public void testChainedVaraibles() throws Exception
{
simplifyTestString("x=5","x=5.0");
diff --git a/src/org/lsmp/djepJUnit/GroupJepTest.java b/src/test/java/org/lsmp/djepJUnit/GroupJepTest.java
similarity index 85%
rename from src/org/lsmp/djepJUnit/GroupJepTest.java
rename to src/test/java/org/lsmp/djepJUnit/GroupJepTest.java
index 2ed0438..31e91c3 100644
--- a/src/org/lsmp/djepJUnit/GroupJepTest.java
+++ b/src/test/java/org/lsmp/djepJUnit/GroupJepTest.java
@@ -1,13 +1,29 @@
package org.lsmp.djepJUnit;
-import junit.framework.*;
-import org.nfunk.jep.*;
-import org.nfunk.jep.type.*;
-import org.lsmp.djep.groupJep.interfaces.*;
-import org.lsmp.djep.groupJep.values.*;
-import org.lsmp.djep.groupJep.*;
-import org.lsmp.djep.groupJep.groups.*;
-import java.math.*;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.lsmp.djep.groupJep.GroupJep;
+import org.lsmp.djep.groupJep.PolynomialVisitor;
+import org.lsmp.djep.groupJep.groups.AlgebraicExtension;
+import org.lsmp.djep.groupJep.groups.ExtendedFreeGroup;
+import org.lsmp.djep.groupJep.groups.FreeGroup;
+import org.lsmp.djep.groupJep.groups.Integers;
+import org.lsmp.djep.groupJep.groups.Quaternions;
+import org.lsmp.djep.groupJep.groups.Rationals;
+import org.lsmp.djep.groupJep.groups.Reals;
+import org.lsmp.djep.groupJep.groups.Zn;
+import org.lsmp.djep.groupJep.interfaces.RingI;
+import org.lsmp.djep.groupJep.values.FreeGroupElement;
+import org.lsmp.djep.groupJep.values.HasComplexValueI;
+import org.lsmp.djep.groupJep.values.Polynomial;
+import org.nfunk.jep.JEP;
+import org.nfunk.jep.Node;
+import org.nfunk.jep.ParseException;
+import org.nfunk.jep.type.Complex;
+
+import java.math.BigInteger;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
/* @author rich
* Created on 19-Nov-2003
*/
@@ -18,35 +34,15 @@
* @author Rich Morris
* Created on 19-Nov-2003
*/
-public class GroupJepTest extends TestCase {
+public class GroupJepTest {
GroupJep j;
public static final boolean SHOW_BAD=false;
-
- public GroupJepTest(String name) {
- super(name);
- }
-
- public static void main(String args[]) {
- // Create an instance of this class and analyse the file
-
- TestSuite suite= new TestSuite(GroupJepTest.class);
-// DJepTest jt = new DJepTest("DJepTest");
-// jt.setUp();
- suite.run(new TestResult());
- }
-
- protected void setUp() {
- }
-
- public static Test suite() {
- return new TestSuite(GroupJepTest.class);
- }
public void myAssertEquals(String msg,String expected,String actual)
{
if(!actual.equals(expected))
System.out.println("Error \""+msg+"\" is \""+actual+" should be "+expected+"\"");
- assertEquals("<"+msg+">",expected,actual);
+ assertEquals(expected, actual, "<"+msg+">");
System.out.println("Success: Value of \""+msg+"\" is \""+actual+"\"");
}
@@ -54,11 +50,11 @@ public void myAssertEquals(String msg,String expected,String actual,String endin
{
if(!actual.equals(expected))
System.out.println("Error \""+msg+"\" is \""+actual+" should be "+expected+"\"");
- assertEquals("<"+msg+">",expected,actual);
+ assertEquals(expected,actual, "<"+msg+">");
System.out.println("Success: Value of \""+msg+"\" is \""+actual+"\": "+ending);
}
- /** just test JUnit working OK */
+ @Test @DisplayName("just test JUnit working OK")
public void testGood()
{
assertEquals(1,1);
@@ -78,14 +74,14 @@ public void valueToStringTest(String expr,String expected) throws Exception
myAssertEquals(expr,expected,res,ending);
}
- /** Tests very large numbers, 20! */
+ @Test @DisplayName("Tests very large numbers, 20!")
public void testZ() throws Exception
{
j = new GroupJep(new Integers());
valueToStringTest("1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20","2432902008176640000");
}
- /** Tests rationals */
+ @Test @DisplayName("Tests rationals")
public void testQ() throws Exception
{
j = new GroupJep(new Rationals());
@@ -93,7 +89,7 @@ public void testQ() throws Exception
valueToStringTest("(1/2)-(1/3)","1/6");
}
- /** Tests Quaternions */
+ @Test @DisplayName("Tests Quaternions")
public void testQuartonians() throws Exception
{
j = new GroupJep(new Quaternions());
@@ -102,7 +98,7 @@ public void testQuartonians() throws Exception
valueToStringTest("i*j","-k");
}
- /** Tests integers mod 5 */
+ @Test @DisplayName("Tests integers mod 5 ")
public void testZn() throws Exception
{
j = new GroupJep(new Zn(BigInteger.valueOf(5)));
@@ -121,6 +117,7 @@ public void testZn() throws Exception
valueToStringTest("4/3","3");
}
+ @Test
public void testZroot2() throws Exception
{
RingI ring = new Integers();
@@ -136,7 +133,8 @@ public void testZroot2() throws Exception
valueToStringTest("rt2*rt2","2");
valueToStringTest("(rt2+1)*(rt2+1)","2 rt2+3");
}
-
+
+ @Test
public void testZ5thRootUnity() throws Exception
{
RingI ring = new Integers();
@@ -158,6 +156,7 @@ public void testZ5thRootUnity() throws Exception
valueToStringTest("t*t*t*t*t","1");
}
+ @Test
public void testZRoot2Root5() throws Exception
{
RingI ring = new Integers();
@@ -188,6 +187,7 @@ public void testZRoot2Root5() throws Exception
valueToStringTest("(t-1)*(s-1)","(t-1) s-t+1");
}
+ @Test
public void testZtau() throws Exception
{
RingI ring = new Integers();
@@ -215,6 +215,7 @@ public void testZtau() throws Exception
valueToStringTest("t*(1-t)","-1");
}
+ @Test
public void testPolynomials() throws Exception
{
RingI ring = new Reals();
@@ -261,6 +262,7 @@ public void testPolynomials() throws Exception
}
+ @Test
public void testPolynomials2() throws Exception
{
RingI ring = new Reals();
@@ -285,6 +287,8 @@ public void testPolynomials2() throws Exception
System.out.println(expr2 +" -> "+res2);
}
+
+ @Test
public void testPolynomialCreator() throws Exception
{
RingI ring = new Reals();
@@ -303,6 +307,7 @@ public void testPolynomialCreator() throws Exception
System.out.println("Coeffs ["+i+"] "+coeffs[i]);
}
+ @Test
public void testBad() throws ParseException
{
if(SHOW_BAD)
diff --git a/src/org/lsmp/djepJUnit/JepTest.java b/src/test/java/org/lsmp/djepJUnit/JepTest.java
similarity index 85%
rename from src/org/lsmp/djepJUnit/JepTest.java
rename to src/test/java/org/lsmp/djepJUnit/JepTest.java
index 4824178..c116937 100644
--- a/src/org/lsmp/djepJUnit/JepTest.java
+++ b/src/test/java/org/lsmp/djepJUnit/JepTest.java
@@ -1,8 +1,19 @@
package org.lsmp.djepJUnit;
-import junit.framework.*;
-import org.nfunk.jep.*;
-import org.nfunk.jep.type.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.nfunk.jep.JEP;
+import org.nfunk.jep.Node;
+import org.nfunk.jep.ParseException;
+import org.nfunk.jep.type.Complex;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.closeTo;
+import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
/* @author rich
* Created on 19-Nov-2003
@@ -12,35 +23,11 @@
* @author Rich Morris
* Created on 19-Nov-2003
*/
-public class JepTest extends TestCase {
+public class JepTest {
JEP j;
- public static final boolean SHOW_BAD=false;
-
- public JepTest(String name) {
- super(name);
- }
+ public static final boolean SHOW_BAD = false;
- /**
- * Create a test suite.
- * @return the TestSuite
- */
- public static Test suite() {
- return new TestSuite(JepTest.class);
- }
-
- /**
- * Main entry point.
- * @param args
- */
- public static void main(String args[]) {
- // Create an instance of this class and analyse the file
-
- TestSuite suite= new TestSuite(JepTest.class);
- suite.run(new TestResult());
- }
- /**
- * Run before each test.
- */
+ @BeforeEach
protected void setUp() {
j = new JEP();
j.addStandardConstants();
@@ -63,24 +50,24 @@ public void myAssertEquals(String msg,Object expected,Object actual)
{
if(!actual.equals(expected))
System.out.println("Error: '"+msg+"' is '"+actual+"' should be '"+expected+"'");
- assertEquals("<"+msg+">",expected,actual);
+ assertEquals(expected,actual, "<"+msg+">");
System.out.println("Success: Value of \""+msg+"\" is "+actual+"");
}
public void myAssertNaN(String msg,Object actual)
{
if(actual instanceof Double) {
- if(Double.isNaN( ((Double) actual).doubleValue()) ) {
+ if(Double.isNaN((Double) actual) ) {
System.out.println("Success: Value of \""+msg+"\" is "+actual+"");
}
else {
System.out.println("Error: \""+msg+"\" is '"+actual+"' should be NaN");
- assertTrue("<"+msg+"> is "+actual+" should be NaN",false);
+ assertTrue(false, "<"+msg+"> is "+actual+" should be NaN");
}
}
else {
System.out.println("Error: '"+msg+"' is '"+actual+"' should be 'NaN'");
- assertTrue("<"+msg+">",false);
+ assertTrue(false, "<"+msg+">");
}
}
@@ -152,18 +139,18 @@ public void valueTest(String expr,double a,double tol) throws Exception
{
Object res = calcValue(expr);
if(res instanceof Double) {
- double val = ((Double) res).doubleValue();
+ double val = (Double) res;
if(Math.abs(val-a) expected: <"+a+"> but was <"+res+">",false);
+ assertTrue(false, "<"+expr+"> expected: <"+a+"> but was <"+res+">");
}
}
@@ -181,26 +168,28 @@ public void complexValueTest(String expr,Complex expected,double tol) throws Exc
System.out.println("Success value of \""+expr+"\" is "+res);
else {
System.out.println("Error value of \""+expr+"\" is "+res+" should be "+expected);
- assertTrue("<"+expr+"> expected: <"+expected+"> but was <"+res+">",false);
+ assertTrue(false, "<"+expr+"> expected: <"+expected+"> but was <"+res+">");
}
}
/////////////////// Tests ////////////////
- /** just test JUnit working OK */
+ @Test @DisplayName("just test JUnit working OK")
public void testGood()
{
myAssertEquals("1",new Double(1),new Double(1));
myAssertNaN("NaN",new Double(Double.NaN));
}
+ @Test
public void testSimpleSum() throws Exception
{
valueTest("1+2",3);
valueTest("2*6+3",15);
valueTest("2*(6+3)",18);
}
-
+
+ @Test
public void testLogical() throws Exception
{
System.out.println("\nTesting logical operations");
@@ -261,7 +250,8 @@ public void testLogical() throws Exception
valueTest("if((true&&true)==true,6,7)",6);
valueTest("if((!false)==true,6,7)",6);
}
-
+
+ @Test
public void testFunction() throws Exception
{
System.out.println("\nTesting real functions");
@@ -277,6 +267,8 @@ public void testFunction() throws Exception
valueTest("2^(-4)",1.0/16,0.00000001);
valueTest("2^(-10)",1.0/1024,0.00000001);
}
+
+ @Test
public void testComplex() throws Exception
{
System.out.println("\nTesting complex values");
@@ -300,7 +292,7 @@ public void testComplex() throws Exception
//complexValueTest("cos(z)",new Complex(3,-2),tol);
}
-
+ @Test
public void testIf() throws Exception
{
System.out.println("\nTesting if statement");
@@ -320,6 +312,7 @@ public void testIf() throws Exception
valueTest("if(x<3,1,-1)",-1);
}
+ @Test
public void testAssign() throws Exception
{
System.out.println("\nTesting assignment of variables");
@@ -338,6 +331,7 @@ public void testAssign() throws Exception
// and hence the broken MMultiply was used.
}
+ @Test
public void testDotInName() throws ParseException,Exception
{
System.out.println("\nTesting names with dot in them");
@@ -345,7 +339,7 @@ public void testDotInName() throws ParseException,Exception
valueTest("x.x+1",4);
}
-
+ @Test
public void testBinom() throws ParseException,Exception
{
System.out.println("\nTesting binomial coeffs");
@@ -382,7 +376,8 @@ public void testBinom() throws ParseException,Exception
valueTestInt("binom(10,1)",10);
valueTestInt("binom(10,5)",252);
}
-
+
+ @Test
public void testNaN() throws Exception
{
System.out.println("\nTesting for NaN");
@@ -412,7 +407,8 @@ public void testNaN() throws Exception
valueTest("x == x+5",0);
valueTest("x == x",1);
}
-
+
+ @Test
public void testAssign2()
{
System.out.println("\nTesting for assignment using parseExpression and getValue");
@@ -426,42 +422,43 @@ public void testAssign2()
parser.parseExpression("AB=3"); // AB = 8
System.out.println("AB=3"+parser.getValue());
parser.parseExpression("AB+2");
- double result= parser.getValue(); // Result = 17
- assertEquals("",5.0,result,0.0);
+ double result = parser.getValue(); // Result = 17
+ assertThat("", result, is(closeTo(5.0, 0.0001)));
}
- boolean isExpressionValid(String expression)
- {
- JEP jep = j;
- try{
- Node n = jep.parse(expression);
- System.out.println("expression " + expression + " \n Parsed value " + jep.hasError());
- if(jep.hasError())
- {
- System.out.println("jep.getErrorInfo " + jep.getErrorInfo());
- return false;
- }
- System.out.println("jep.getSymbolTable " + jep.getSymbolTable());
- System.out.println("Eval: " +jep.evaluate(n).toString());
- return true;
- }
- catch(Error e)
- {
- System.out.println(e.getMessage());
- if(jep.hasError())
- System.out.println("Error is : " + jep.getErrorInfo());
- return false;
- }
- catch(Exception e1)
- {
- System.out.println(e1.getMessage());
- if(jep.hasError())
- System.out.println("Error is : " + jep.getErrorInfo());
- return false;
- }
-
- }
-
+ boolean isExpressionValid(String expression)
+ {
+ JEP jep = j;
+ try{
+ Node n = jep.parse(expression);
+ System.out.println("expression " + expression + " \n Parsed value " + jep.hasError());
+ if(jep.hasError())
+ {
+ System.out.println("jep.getErrorInfo " + jep.getErrorInfo());
+ return false;
+ }
+ System.out.println("jep.getSymbolTable " + jep.getSymbolTable());
+ System.out.println("Eval: " +jep.evaluate(n).toString());
+ return true;
+ }
+ catch(Error e)
+ {
+ System.out.println(e.getMessage());
+ if(jep.hasError())
+ System.out.println("Error is : " + jep.getErrorInfo());
+ return false;
+ }
+ catch(Exception e1)
+ {
+ System.out.println(e1.getMessage());
+ if(jep.hasError())
+ System.out.println("Error is : " + jep.getErrorInfo());
+ return false;
+ }
+
+ }
+
+ @Test
public void testNumParam() throws Exception
{
j.parse("if(3,1,2)");
@@ -517,6 +514,8 @@ public void testNumParam() throws Exception
)
*/
}
+
+ @Test
public void testUndeclared() throws Exception
{
j.setAllowUndeclared(false);
@@ -533,7 +532,8 @@ public void testUndeclared() throws Exception
System.out.println("Expected error caught: "+e.getClass().getName()+": "+e.getMessage());
}
}
-
+
+ @Test
public void testBad() throws Exception
{
if(SHOW_BAD)
diff --git a/src/org/lsmp/djepJUnit/MRpTest.java b/src/test/java/org/lsmp/djepJUnit/MRpTest.java
similarity index 96%
rename from src/org/lsmp/djepJUnit/MRpTest.java
rename to src/test/java/org/lsmp/djepJUnit/MRpTest.java
index f6198d8..dbbf430 100644
--- a/src/org/lsmp/djepJUnit/MRpTest.java
+++ b/src/test/java/org/lsmp/djepJUnit/MRpTest.java
@@ -1,13 +1,22 @@
package org.lsmp.djepJUnit;
-import junit.framework.*;
-import org.nfunk.jep.*;
-import org.nfunk.jep.type.*;
-import org.lsmp.djep.matrixJep.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.lsmp.djep.matrixJep.MatrixJep;
import org.lsmp.djep.mrpe.MRpCommandList;
import org.lsmp.djep.mrpe.MRpEval;
import org.lsmp.djep.mrpe.MRpRes;
-import org.lsmp.djep.vectorJep.values.*;
+import org.lsmp.djep.vectorJep.values.MVector;
+import org.lsmp.djep.vectorJep.values.Matrix;
+import org.lsmp.djep.vectorJep.values.MatrixValueI;
+import org.nfunk.jep.Node;
+import org.nfunk.jep.ParseException;
+import org.nfunk.jep.type.Complex;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
/* @author rich
* Created on 19-Nov-2003
@@ -19,32 +28,17 @@
* @author Rich Morris
* Created on 19-Nov-2003
*/
-public class MRpTest extends TestCase {
+public class MRpTest {
MatrixJep mj;
MRpEval mrpe;
public static final boolean SHOW_BAD=false;
- public MRpTest(String name) {
- super(name);
- }
-
- public static Test suite() {
- return new TestSuite(MRpTest.class);
- }
-
- public static void main(String args[]) {
- // Create an instance of this class and analyse the file
-
- TestSuite suite= new TestSuite(MRpTest.class);
-// DJepTest jt = new DJepTest("DJepTest");
-// jt.setUp();
- suite.run(new TestResult());
- }
/** strings for each variable */
String matStrs[][] = new String[10][10];
String matStrsB[][] = new String[10][10];
String vecStrs[] = new String[10];
+ @BeforeEach
protected void setUp() {
mj = new MatrixJep();
mj.addStandardConstants();
@@ -110,6 +104,7 @@ protected void setUp() {
}
}
+ @Test
public void testGood()
{
assertEquals(1,1);
@@ -119,7 +114,7 @@ public void myAssertEquals(String msg,String actual,String expected)
{
if(!actual.equals(expected))
System.out.println("Error \""+msg+"\" is \n<"+actual+"> should be \n<"+expected+">");
- assertEquals("<"+msg+">",expected,actual);
+ assertEquals(expected,actual, "<"+msg+">");
System.out.println("Success: Value of <"+msg+"> is <"+actual+">");
}
@@ -128,7 +123,7 @@ public void valueTest(String expr,Object expected) throws ParseException
Object res = calcValue(expr);
if(mj.hasError())
fail("Evaluation Failure: "+expr+mj.getErrorInfo());
- assertEquals("<"+expr+">",expected,res);
+ assertEquals(expected, res, "<"+expr+">");
System.out.println("Success value of <"+expr+"> is "+res);
}
@@ -145,8 +140,7 @@ public void complexValueTest(String expr,Complex expected,double tol) throws Exc
{
Node node = mj.preprocess(mj.parse(expr));
Object res = mj.evaluate(node);
- assertTrue("<"+expr+"> expected: <"+expected+"> but was <"+res+">",
- expected.equals((Complex) res,tol));
+ assertTrue(expected.equals((Complex) res,tol), "<"+expr+"> expected: <"+expected+"> but was <"+res+">");
System.out.println("Sucess value of <"+expr+"> is "+res);
}
@@ -264,6 +258,7 @@ void rpTest2(String eqns[]) throws ParseException
rpe.cleanUp();
}
+ @Test
public void testRp() throws ParseException
{
rpTest(new String[]{"y=[[1,2,3],[4,5,6],[7,8,9]]"},"y*y");
@@ -306,6 +301,7 @@ public void testRp() throws ParseException
}
+ @Test
public void testRpAllDim() throws ParseException
{
@@ -336,7 +332,7 @@ public void testRpAllDim() throws ParseException
}
}
-
+ @Test
public void testMul() throws ParseException
{
rpTest(new String[]{"x=[1,2]","y="+matStrs[2][2]},"x*y");
@@ -416,8 +412,9 @@ public void testMul() throws ParseException
rpTest(new String[]{"x=[1,2,3,4,5]","y=[1,0,0,0,0]"},"x*y");
}
-
- public void testAssign() throws ParseException
+
+ @Test
+ public void tesign() throws ParseException
{
rpTest2(new String[]{"x=[[5,6],[7,8]]","x+x"});
rpTest2(new String[]{"x=[5,6]","x+x"});
@@ -483,6 +480,7 @@ public void testLogical() throws ParseException
rpTest2(new String[]{matStrs[2][2]+"!="+matStrs[2][2]});
}
boolean TESTALL = false;
+ @Test
public void testVn() throws ParseException {
rpTest2(new String[]{"x=[5,6,7,8,9]","x+x","x-x","2*x","x*3","x.x"});
rpTest2(new String[]{"x=[[1,2,3,4,5],[5,6,7,8,9]]","x+x","x-x","2*x","x*3"});
@@ -516,6 +514,7 @@ public void testVn() throws ParseException {
}
}
+ @Test
public void testFun() throws ParseException {
rpTest2(new String[]{"x=5","y=4","x/y","x%y","x^y"});
rpTest2(new String[]{"x=0.5","cos(x)","sin(x)","tan(x)","asin(x)","acos(x)","atan(x)"});
@@ -524,7 +523,8 @@ public void testFun() throws ParseException {
rpTest2(new String[]{"x=0.5","sec(x)","cosec(x)","cot(x)"});
rpTest2(new String[]{"x=3","y=4","atan2(y,x)","if(x>y,1,2)","if(x should be \n<"+expected+">");
- assertEquals("<"+msg+">",expected,actual);
+ assertEquals(expected, actual, "<"+msg+">");
System.out.println("Success: Value of <"+msg+"> is <"+actual+">");
}
@@ -75,7 +72,7 @@ public void valueTest(String expr,Object expected) throws ParseException,Excepti
Object res = j.evaluate(node);
if(j.hasError())
fail("Evaluation Failure: "+expr+j.getErrorInfo());
- assertEquals("<"+expr+">",expected,res);
+ assertEquals(expected, res, "<"+expr+">");
System.out.println("Sucess value of <"+expr+"> is "+res);
}
@@ -93,8 +90,7 @@ public void complexValueTest(String expr,Complex expected,double tol) throws Exc
{
Node node = j.parse(expr);
Object res = j.evaluate(node);
- assertTrue("<"+expr+"> expected: <"+expected+"> but was <"+res+">",
- expected.equals((Complex) res,tol));
+ assertTrue(expected.equals((Complex) res,tol), "<"+expr+"> expected: <"+expected+"> but was <"+res+">");
System.out.println("Sucess value of <"+expr+"> is "+res);
}
@@ -185,13 +181,14 @@ void rpTest2(String eqns[]) throws ParseException,Exception
System.out.println("<"+eqns[i]+"> "+rpRes[i]);
}
for(int i=0;i found <"+rpRes[i]+">");
+ Double matRes = (Double) j.evaluate(nodes[i]);
+ assertThat("Expected <"+matRes+"> found <"+rpRes[i]+">",
+ matRes, is(closeTo(rpRes[i], 0.0000000000000001)));
}
rpe.cleanUp();
}
+ @Test
public void testRp() throws ParseException,Exception
{
rpTest(new String[0],"1*2*3+4*5*6+7*8*9");
@@ -201,13 +198,15 @@ public void testRp() throws ParseException,Exception
}
+ @Test
public void testAssign() throws ParseException,Exception
{
rpTest2(new String[]{"x=5","x+x"});
j.setVarValue("x",new Double(6.0));
rpTest2(new String[]{"x+x"});
}
-
+
+ @Test
public void testLogical() throws ParseException,Exception
{
rpTest2(new String[]{"1&&1","1&&0","0&&0","0&&1","3.14&&1"});
@@ -223,6 +222,8 @@ public void testLogical() throws ParseException,Exception
}
boolean TESTALL = false;
+
+ @Test
public void testFun() throws ParseException,Exception
{
rpTest2(new String[]{"x=5","y=4","x/y","x%y","x^y"});
diff --git a/src/org/lsmp/djepJUnit/SJepTest.java b/src/test/java/org/lsmp/djepJUnit/SJepTest.java
similarity index 93%
rename from src/org/lsmp/djepJUnit/SJepTest.java
rename to src/test/java/org/lsmp/djepJUnit/SJepTest.java
index c8e1b95..f96c2cd 100644
--- a/src/org/lsmp/djepJUnit/SJepTest.java
+++ b/src/test/java/org/lsmp/djepJUnit/SJepTest.java
@@ -1,12 +1,22 @@
package org.lsmp.djepJUnit;
-import junit.framework.*;
-import org.nfunk.jep.*;
-import org.nfunk.jep.type.*;
-import org.lsmp.djep.xjep.*;
-import org.lsmp.djep.djep.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.lsmp.djep.djep.DJep;
+import org.lsmp.djep.sjep.PNodeI;
+import org.lsmp.djep.sjep.PolynomialCreator;
+import org.lsmp.djep.xjep.PrintVisitor;
+import org.lsmp.djep.xjep.XOperator;
+import org.nfunk.jep.Node;
+import org.nfunk.jep.OperatorSet;
+import org.nfunk.jep.ParseException;
+import org.nfunk.jep.type.Complex;
+
import java.text.NumberFormat;
-import org.lsmp.djep.sjep.*;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
/* @author rich
* Created on 19-Nov-2003
*/
@@ -15,25 +25,13 @@
* @author Rich Morris
* Created on 19-Nov-2003
*/
-public class SJepTest extends TestCase {
+public class SJepTest {
DJep j;
PolynomialCreator pc;
public static final boolean SHOW_BAD=false;
-
- public SJepTest(String name) {
- super(name);
- }
-
- public static void main(String args[]) {
- // Create an instance of this class and analyse the file
-
- TestSuite suite= new TestSuite(SJepTest.class);
-// DJepTest jt = new DJepTest("DJepTest");
-// jt.setUp();
- suite.run(new TestResult());
- }
+ @BeforeEach
protected void setUp() {
j = new DJep();
j.addStandardConstants();
@@ -47,15 +45,11 @@ protected void setUp() {
pc = new PolynomialCreator(j);
}
- public static Test suite() {
- return new TestSuite(SJepTest.class);
- }
-
public void myAssertEquals(String msg,String actual,String expected)
{
if(!actual.equals(expected))
System.out.println("Error \""+msg+"\" is \""+actual+" should be "+expected+"\"");
- assertEquals("<"+msg+">",expected,actual);
+ assertEquals(expected,actual, "<"+msg+">");
System.out.println("Success: Value of \""+msg+"\" is \""+actual+"\"");
}
@@ -71,7 +65,7 @@ public void assertPolynomialEquals(String s1,String s2) throws ParseException
System.out.println("Sucess: \""+s1+"\" equals \""+s2+"\"");
}else{
System.out.println("Error: \""+s1+"\" is not equal to \""+s2+"\"");
- assertTrue("<"+s1+"> should be equal to <"+s2+"> it is not",false);
+ assertTrue(false, "<"+s1+"> should be equal to <"+s2+"> it is not");
}
}
/** just test JUnit working OK */
@@ -84,21 +78,22 @@ public void valueTest(String expr,double dub) throws Exception
{
valueTest(expr,new Double(dub));
}
+
public void valueTest(String expr,Object expected) throws Exception
{
Node node = j.parse(expr);
Node n2 = j.preprocess(node);
Object res = j.evaluate(n2);
- assertEquals("<"+expr+">",expected,res);
+ assertEquals(expected,res, "<"+expr+">");
System.out.println("Success value of <"+expr+"> is "+res);
}
+
public void complexValueTest(String expr,Complex expected,double tol) throws Exception
{
Node node = j.parse(expr);
Node n2 = j.preprocess(node);
Object res = j.evaluate(n2);
- assertTrue("<"+expr+"> expected: <"+expected+"> but was <"+res+">",
- expected.equals((Complex) res,tol));
+ assertTrue(expected.equals((Complex) res,tol), "<"+expr+"> expected: <"+expected+"> but was <"+res+">");
System.out.println("Success value of <"+expr+"> is "+res);
}
@@ -124,7 +119,7 @@ public void simplifyTest(String expr,String expected) throws ParseException
if(!res2.equals(res))
System.out.println("Error: Value of \""+expr+"\" is \""+res+"\" should be \""+res2+"\"");
- assertEquals("<"+expr+">",res2,res);
+ assertEquals(res2,res,"<"+expr+">");
System.out.println("Sucess: Value of \""+expr+"\" is \""+res+"\"");
// System.out.print("Full Brackets:\t");
@@ -143,7 +138,7 @@ public void simplifyTestString(String expr,String expected) throws ParseExceptio
if(!expected.equals(res))
System.out.println("Error: Value of \""+expr+"\" is \""+res+"\" should be \""+expected+"\"");
- assertEquals("<"+expr+">",expected,res);
+ assertEquals(expected,res,"<"+expr+">");
System.out.println("Sucess: Value of \""+expr+"\" is \""+res+"\"");
// System.out.print("Full Brackets:\t");
@@ -163,7 +158,7 @@ public void expandTestString(String expr,String expected) throws ParseException
if(!expected.equals(res))
System.out.println("Error: Value of \""+expr+"\" is \""+res+"\" should be \""+expected+"\"");
- assertEquals("<"+expr+">",expected,res);
+ assertEquals(expected,res,"<"+expr+">");
System.out.println("Sucess: Value of \""+expr+"\" is \""+res+"\"");
// System.out.print("Full Brackets:\t");
@@ -188,13 +183,15 @@ public Node parseProcSimpEval(String expr,Object expected) throws ParseException
}
*/
+ @Test
public void testSimpleSum() throws Exception
{
valueTest("1+2",3);
valueTest("2*6+3",15);
valueTest("2*(6+3)",18);
}
-
+
+ @Test
public void testOperators() throws Exception
{
OperatorSet opSet = j.getOperatorSet();
@@ -233,7 +230,8 @@ public void testOperators() throws Exception
valueTest("(a&&(b||c)) == ((a&&b)||(a&&c))",1);
valueTest("(a||(b&&c)) == ((a||b)&&(a||c))",1);
}
-
+
+ @Test
public void testPrint() throws ParseException
{
simplifyTestString("(a+b)+c","a+b+c");
@@ -274,7 +272,8 @@ public void testPrint() throws ParseException
// simplifyTestString("a||(b&&c)","a||b&&c");
// simplifyTestString("a&&(b&&c)","a&&b&&c");
}
-
+
+ @Test
public void testSimp() throws ParseException
{
simplifyTest("2+3","5");
@@ -414,6 +413,7 @@ public void testSimp() throws ParseException
simplifyTest("(2*x+x)^3","27*x^3");
}
+ @Test
public void testPolySimp() throws ParseException,Exception
{
Node n1 = j.parse("(1.0+2.0*x+x^2.0)*(1.0+2.0*x+x^2.0)");
@@ -495,6 +495,7 @@ public void testPolySimp() throws ParseException,Exception
j.println(simp);
}
+ @Test
public void testTotalOrder() throws ParseException,Exception
{
expandTestString("y+x","x+y");
@@ -513,7 +514,8 @@ public void testTotalOrder() throws ParseException,Exception
simplifyTestString("x+1/x","1/x+x");
simplifyTestString("1/x^2+1/x","1/x^2+1/x");
}
-
+
+ @Test
public void testPolySimp2() throws ParseException,Exception
{
expandTestString("1+2*(1+x)","3+2*x");
@@ -521,7 +523,8 @@ public void testPolySimp2() throws ParseException,Exception
expandTestString("x*y+2*x","2*x+x*y");
expandTestString("(1+x+y)^2","1+2*x+2*x*y+x^2+2*y+y^2");
}
-
+
+ @Test
public void testFormat() throws ParseException
{
NumberFormat format = NumberFormat.getInstance();
@@ -545,10 +548,13 @@ public void testFormat() throws ParseException
System.out.println(c.toString(format,true));
}
+ @Test
public void testSimpleEquals() throws ParseException
{
assertPolynomialEquals("a+b-(c+d)","(a+b)-c-d");
}
+
+ @Test
public void testBad() throws ParseException
{
if(SHOW_BAD)
diff --git a/src/org/lsmp/djepJUnit/VectorJepTest.java b/src/test/java/org/lsmp/djepJUnit/VectorJepTest.java
similarity index 90%
rename from src/org/lsmp/djepJUnit/VectorJepTest.java
rename to src/test/java/org/lsmp/djepJUnit/VectorJepTest.java
index fb37afd..46a92b9 100644
--- a/src/org/lsmp/djepJUnit/VectorJepTest.java
+++ b/src/test/java/org/lsmp/djepJUnit/VectorJepTest.java
@@ -5,46 +5,17 @@
*/
package org.lsmp.djepJUnit;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import org.lsmp.djep.vectorJep.VectorJep;
import org.nfunk.jep.ParseException;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
/**
* @author Rich Morris
* Created on 22-Apr-2005
*/
public class VectorJepTest extends JepTest {
-
- /**
- * @param name
- */
- public VectorJepTest(String name) {
- super(name);
- // TODO Auto-generated constructor stub
- }
-
- /**
- * Create a test suite.
- * @return the TestSuite
- */
- public static Test suite() {
- return new TestSuite(VectorJepTest.class);
- }
-
- /**
- * Main entry point.
- * @param args
- */
- public static void main(String args[]) {
- // Create an instance of this class and analyse the file
-
- TestSuite suite= new TestSuite(VectorJepTest.class);
- suite.run(new TestResult());
- }
-
+ @BeforeEach
protected void setUp() {
j = new VectorJep();
j.addStandardConstants();
@@ -56,6 +27,7 @@ protected void setUp() {
j.setImplicitMul(true);
}
+ @Test
public void testMatrix() throws Exception
{
System.out.println("\nTesting vector and matrix operations");
@@ -95,6 +67,7 @@ public void testMatrix() throws Exception
valueTest("ele(x,[2,2])","4.0"); // Value: 2.0
}
+ @Test
public void testLength() throws ParseException,Exception
{
System.out.println("\nTesting vector and matrix functions");
@@ -128,22 +101,30 @@ public void testLength() throws ParseException,Exception
valueTest("Map(abs(x),x,[[-2,-1],[1,2]])","[[2.0,1.0],[1.0,2.0]]");
}
+ @Test @Disabled
public void testSumVector() throws Exception {
}
+
+ @Test
public void testVecCmp() throws Exception {
valueTest("[1,2,3]==[1,2,3]",1);
valueTest("[1,2,3]==[1,2,4]",0);
}
+
+ @Test @Disabled
public void testDotInName() throws ParseException, Exception {
}
+
+ @Test
public void testGenMatEle() throws Exception
{
System.out.println("The following caused a problem as ele only acepted Double arguments");
valueTest("m=[1,2,3]","[1.0,2.0,3.0]");
valueTest("GenMat(3,ele(m,n)*10,n)","[10.0,20.0,30.0]");
}
-
+
+ @Test
public void testArrayAccess() throws Exception {
System.out.println("\nTests array access on lhs and rhs using the a[3] notation");
valueTest("a=[1,2,3]","[1.0,2.0,3.0]");
@@ -155,7 +136,8 @@ public void testArrayAccess() throws Exception {
valueTest("c","[[1.0,5.0],[3.0,4.0]]");
valueTest("c[2,1]",3);
}
-
+
+ @Test
public void testElementOperations() throws Exception {
((VectorJep) j).setElementMultiply(true);
valueTest("[1,2,3] == [2,2,2]","[0.0,1.0,0.0]");
@@ -167,7 +149,8 @@ public void testElementOperations() throws Exception {
valueTest("[1,2,3] * [2,2,2]","[2.0,4.0,6.0]");
valueTest("[1,2,3] / [2,2,2]","[0.5,1.0,1.5]");
}
-
+
+ @Test
public void testComplexMatricies() throws Exception {
valueTest("v=[1+i,1-2i]","[(1.0, 1.0),(1.0, -2.0)]");
valueTest("vsum(v)","(2.0, -1.0)");
diff --git a/src/org/lsmp/djepJUnit/XJepTest.java b/src/test/java/org/lsmp/djepJUnit/XJepTest.java
similarity index 94%
rename from src/org/lsmp/djepJUnit/XJepTest.java
rename to src/test/java/org/lsmp/djepJUnit/XJepTest.java
index 8a34d68..82ece70 100644
--- a/src/org/lsmp/djepJUnit/XJepTest.java
+++ b/src/test/java/org/lsmp/djepJUnit/XJepTest.java
@@ -5,16 +5,25 @@
*/
package org.lsmp.djepJUnit;
+import org.junit.jupiter.api.BeforeEach;
+import org.lsmp.djep.xjep.BaseFormat;
+import org.lsmp.djep.xjep.MacroFunction;
+import org.lsmp.djep.xjep.PrintVisitor;
+import org.lsmp.djep.xjep.XJep;
+import org.lsmp.djep.xjep.XOperator;
+import org.nfunk.jep.Node;
+import org.nfunk.jep.OperatorSet;
+import org.nfunk.jep.ParseException;
+import org.nfunk.jep.type.Complex;
+
import java.text.NumberFormat;
import java.util.Vector;
-import org.nfunk.jep.*;
-import org.nfunk.jep.type.Complex;
-import org.lsmp.djep.xjep.*;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
/**
* @author Rich Morris
@@ -22,19 +31,7 @@
*/
public class XJepTest extends JepTest {
- public XJepTest(String name) {
- super(name);
- }
-
- public static Test suite() {
- return new TestSuite(XJepTest.class);
- }
-
- public static void main(String[] args) {
- TestSuite suite= new TestSuite(XJepTest.class);
- suite.run(new TestResult());
- }
-
+ @BeforeEach
protected void setUp() {
j = new XJep();
j.addStandardConstants();
@@ -67,7 +64,7 @@ public void simplifyTestString(String expr,String expected) throws ParseExceptio
if(!expected.equals(res))
System.out.println("Error: Value of \""+expr+"\" is \""+res+"\" should be \""+expected+"\"");
- assertEquals("<"+expr+">",expected,res);
+ assertEquals(expected,res, "<"+expr+">");
System.out.println("Success: Value of \""+expr+"\" is \""+res+"\"");
}
@@ -324,7 +321,7 @@ public void testReentrant() throws ParseException,Exception
node = xj.continueParsing();
myAssertEquals("..., z=x+y;","3.0",calcValue(node).toString());
node = xj.continueParsing();
- assertNull("empty string ",node);
+ assertNull(node, "empty string ");
}
@@ -359,10 +356,10 @@ public void testVarInEqn() throws Exception
Node n1 = j.parse("a+b+c+d");
Vector v = xj.getVarsInEquation(n1,new Vector());
- assertTrue("Does not contain a",v.contains(j.getSymbolTable().getVar("a")));
- assertTrue("Does not contain b",v.contains(j.getSymbolTable().getVar("b")));
- assertTrue("Does not contain c",v.contains(j.getSymbolTable().getVar("c")));
- assertTrue("Does not contain d",v.contains(j.getSymbolTable().getVar("d")));
+ assertTrue(v.contains(j.getSymbolTable().getVar("a")), "Does not contain a");
+ assertTrue(v.contains(j.getSymbolTable().getVar("b")), "Does not contain b");
+ assertTrue(v.contains(j.getSymbolTable().getVar("c")), "Does not contain c");
+ assertTrue(v.contains(j.getSymbolTable().getVar("d")), "Does not contain d");
xj.preprocess(j.parse("x=a+b t"));
xj.preprocess(j.parse("y=c+d t"));
@@ -383,7 +380,7 @@ public void testVarInEqn() throws Exception
v3.add(j.getVar("g"));
System.out.println(v2.toString());
- assertEquals("Bad element seq",v3,v2);
+ assertArrayEquals(v3.toArray(), v2.toArray(), "Bad element seq");
}
public void testUndecVar() throws ParseException {
diff --git a/src/org/lsmp/djepJUnit/package.html b/src/test/java/org/lsmp/djepJUnit/package.html
similarity index 100%
rename from src/org/lsmp/djepJUnit/package.html
rename to src/test/java/org/lsmp/djepJUnit/package.html
diff --git a/src/org/nfunk/jepexamples/Console.java b/src/test/java/org/nfunk/jepexamples/Console.java
similarity index 100%
rename from src/org/nfunk/jepexamples/Console.java
rename to src/test/java/org/nfunk/jepexamples/Console.java
diff --git a/src/org/nfunk/jepexamples/Evaluator.java b/src/test/java/org/nfunk/jepexamples/Evaluator.java
similarity index 100%
rename from src/org/nfunk/jepexamples/Evaluator.java
rename to src/test/java/org/nfunk/jepexamples/Evaluator.java
diff --git a/src/org/nfunk/jepexamples/Fractal.java b/src/test/java/org/nfunk/jepexamples/Fractal.java
similarity index 100%
rename from src/org/nfunk/jepexamples/Fractal.java
rename to src/test/java/org/nfunk/jepexamples/Fractal.java
diff --git a/src/org/nfunk/jepexamples/FractalCanvas.java b/src/test/java/org/nfunk/jepexamples/FractalCanvas.java
similarity index 100%
rename from src/org/nfunk/jepexamples/FractalCanvas.java
rename to src/test/java/org/nfunk/jepexamples/FractalCanvas.java
diff --git a/src/org/nfunk/jepexamples/FunctionPlotter.java b/src/test/java/org/nfunk/jepexamples/FunctionPlotter.java
similarity index 100%
rename from src/org/nfunk/jepexamples/FunctionPlotter.java
rename to src/test/java/org/nfunk/jepexamples/FunctionPlotter.java
diff --git a/src/org/nfunk/jepexamples/GraphCanvas.java b/src/test/java/org/nfunk/jepexamples/GraphCanvas.java
similarity index 100%
rename from src/org/nfunk/jepexamples/GraphCanvas.java
rename to src/test/java/org/nfunk/jepexamples/GraphCanvas.java
diff --git a/src/org/nfunk/jepexamples/LargeExpressionTest.java b/src/test/java/org/nfunk/jepexamples/LargeExpressionTest.java
similarity index 100%
rename from src/org/nfunk/jepexamples/LargeExpressionTest.java
rename to src/test/java/org/nfunk/jepexamples/LargeExpressionTest.java
diff --git a/src/org/nfunk/jepexamples/SimpleTest.java b/src/test/java/org/nfunk/jepexamples/SimpleTest.java
similarity index 100%
rename from src/org/nfunk/jepexamples/SimpleTest.java
rename to src/test/java/org/nfunk/jepexamples/SimpleTest.java
diff --git a/src/org/nfunk/jepexamples/ThreadTest.java b/src/test/java/org/nfunk/jepexamples/ThreadTest.java
similarity index 100%
rename from src/org/nfunk/jepexamples/ThreadTest.java
rename to src/test/java/org/nfunk/jepexamples/ThreadTest.java
diff --git a/src/org/nfunk/jepexamples/ThreadTestThread.java b/src/test/java/org/nfunk/jepexamples/ThreadTestThread.java
similarity index 100%
rename from src/org/nfunk/jepexamples/ThreadTestThread.java
rename to src/test/java/org/nfunk/jepexamples/ThreadTestThread.java
diff --git a/src/org/nfunk/jepexamples/package.html b/src/test/java/org/nfunk/jepexamples/package.html
similarity index 100%
rename from src/org/nfunk/jepexamples/package.html
rename to src/test/java/org/nfunk/jepexamples/package.html
diff --git a/src/org/nfunk/jeptesting/JEPTest.java b/src/test/java/org/nfunk/jeptesting/JEPTest.java
similarity index 70%
rename from src/org/nfunk/jeptesting/JEPTest.java
rename to src/test/java/org/nfunk/jeptesting/JEPTest.java
index 5f8e4b4..55d8dcf 100644
--- a/src/org/nfunk/jeptesting/JEPTest.java
+++ b/src/test/java/org/nfunk/jeptesting/JEPTest.java
@@ -9,13 +9,19 @@
package org.nfunk.jeptesting;
-import java.io.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.nfunk.jep.JEP;
+import org.nfunk.jep.type.Complex;
-import junit.framework.Assert;
-import junit.framework.TestCase;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
-import org.nfunk.jep.*;
-import org.nfunk.jep.type.Complex;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* This class is designed for testing the validity of JEP evaluations.
@@ -27,38 +33,15 @@
*3.
* The expressions '1+2' and '3' are evaluated with JEP and the results compared.
*/
-public class JEPTest extends TestCase {
+public class JEPTest {
/** The parser */
- JEP myParser;
+ private JEP myParser;
/** Current line position */
- int lineCount;
+ private int lineCount;
- /**
- * Constructor
- *
- public JEPTester() {
- // Set up the parser
- myParser = new JEP();
- myParser.setImplicitMul(true);
- myParser.addStandardFunctions();
- myParser.addStandardConstants();
- myParser.addComplex();
- myParser.setTraverse(false);
- lineCount = 0;
- }*/
-
- /**
- * Creates a new JEPTest instance
- */
- public JEPTest(String name) {
- super(name);
- }
-
- /**
- * Sets up the parser.
- */
+ @BeforeEach
public void setUp() {
// Set up the parser
myParser = new JEP();
@@ -69,56 +52,26 @@ public void setUp() {
myParser.setTraverse(false);
lineCount = 0;
}
-
- /**
- * Runs the test.
- */
- public void runTest() {
- String fileName = "JEPTestExpressions.txt";
- testWithFile(fileName);
- testGetValue();
- testGetComplexValue();
- testOpSetBug();
- }
-
- /**
- * The main method checks the arguments and creates an instance
- * and calls it's run method.
- */
- public static void main(String args[]) {
- String fileName;
-
- // get filename from argument, or use default
- if (args!=null && args.length>0) {
- fileName = args[0];
- } else {
- fileName = "JEPTestExpressions.txt";
- println("Using default input file: " + fileName);
- println("Start with \"java org.nfunk.jepexamples."+
- "JEPTest \" to load a different input file.");
- }
-
- // Create an instance of this class and analyse the file
- JEPTest jt = new JEPTest("JEP Test");
- jt.setUp();
- jt.testWithFile(fileName);
- }
/**
* Loads the file specified in fileName. Evaluates the expressions listed
* in it and compares the expressions with the results.
*/
- public void testWithFile(String fileName) {
+ @Test
+ public void testWithFile() {
+ final String resource = "/JEPTestExpressions.txt";
+ InputStream ios = JEPTest.class.getResourceAsStream(resource);
+
BufferedReader reader;
Object v1, v2;
boolean hasError = false;
// Load the input file
try {
- reader = new BufferedReader(new FileReader(fileName));
+ reader = new BufferedReader(new InputStreamReader(ios));
} catch (Exception e) {
- Assert.assertTrue(false);
- println("File \""+fileName+"\" not found");
+ assertTrue(false);
+ println("File \""+resource+"\" not found");
return;
}
@@ -230,50 +183,47 @@ private boolean equal(Object param1, Object param2) throws Exception
// throw new Exception("Unable to compare the values of this type");
}
- /**
- * Test the getValue() method.
- */
+ @Test
+ @DisplayName("Test the getValue() method")
public void testGetValue() {
// Test whether a normal double value is returned correctly
myParser.parseExpression("2.1345");
- Assert.assertEquals(myParser.getValue(), 2.1345, 0);
+ assertEquals(myParser.getValue(), 2.1345, 0.00001);
- // Test whether NaN is returned for Somplex numbers
+ // Test whether NaN is returned for Complex numbers
myParser.parseExpression("i");
- Assert.assertTrue(Double.isNaN(myParser.getValue()));
+ assertTrue(Double.isNaN(myParser.getValue()));
// Test whether NaN is returned for String results
myParser.parseExpression("\"asdf\"");
- Assert.assertTrue(Double.isNaN(myParser.getValue()));
+ assertTrue(Double.isNaN(myParser.getValue()));
}
- /**
- * Test the getComplexValue() method.
- */
+ @Test
+ @DisplayName("Test the getComplexValue() method.")
public void testGetComplexValue() {
// Test whether a normal double value is returned as a Complex
myParser.parseExpression("2.1345");
- Assert.assertTrue(new Complex(2.1345, 0).equals(
+ assertTrue(new Complex(2.1345, 0).equals(
myParser.getComplexValue(), 0));
// Test whether (0, 1) is returned for i
myParser.parseExpression("i");
Complex z = myParser.getComplexValue();
- Assert.assertTrue(z != null);
- Assert.assertTrue(z.re() == 0);
- Assert.assertTrue(z.im() == 1);
+ assertTrue(z != null);
+ assertTrue(z.re() == 0);
+ assertTrue(z.im() == 1);
// Test whether NaN is returned for String results
myParser.parseExpression("\"asdf\"");
- Assert.assertTrue(Double.isNaN(myParser.getValue()));
+ assertTrue(Double.isNaN(myParser.getValue()));
}
- /**
- * Tests the uninitialized OperatorSet bug 1061200
- */
+ @Test
+ @DisplayName("Tests the uninitialized OperatorSet bug 1061200")
public void testOpSetBug() {
JEP j = new JEP(false, true, true, null);
- Assert.assertNotNull(j.getOperatorSet());
+ assertNotNull(j.getOperatorSet());
}
/**
diff --git a/src/test/java/org/nfunk/jeptesting/LogarithmTest.java b/src/test/java/org/nfunk/jeptesting/LogarithmTest.java
new file mode 100644
index 0000000..8254bf6
--- /dev/null
+++ b/src/test/java/org/nfunk/jeptesting/LogarithmTest.java
@@ -0,0 +1,25 @@
+package org.nfunk.jeptesting;
+
+import org.junit.jupiter.api.Test;
+import org.nfunk.jep.ParseException;
+import org.nfunk.jep.function.Logarithm;
+
+import java.util.Stack;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class LogarithmTest {
+ /**
+ * Test method for 'org.nfunk.jep.function.Logarithm.run(Stack)'
+ * Tests the return value of log(NaN). This is a test for bug #1177557
+ */
+ @Test
+ public void testLogarithm() throws ParseException {
+ Logarithm logFunction = new Logarithm();
+ Stack stack = new Stack<>();
+ stack.push(Double.NaN);
+ logFunction.run(stack);
+ assertTrue(Double.isNaN(stack.pop()));
+ }
+
+}
diff --git a/src/test/java/org/nfunk/jeptesting/NaturalLogarithmTest.java b/src/test/java/org/nfunk/jeptesting/NaturalLogarithmTest.java
new file mode 100644
index 0000000..22a4c6d
--- /dev/null
+++ b/src/test/java/org/nfunk/jeptesting/NaturalLogarithmTest.java
@@ -0,0 +1,24 @@
+package org.nfunk.jeptesting;
+
+import org.junit.jupiter.api.Test;
+import org.nfunk.jep.ParseException;
+import org.nfunk.jep.function.NaturalLogarithm;
+
+import java.util.Stack;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class NaturalLogarithmTest {
+ /**
+ * Test method for 'org.nfunk.jep.function.Logarithm.run(Stack)'
+ * Tests the return value of log(NaN). This is a test for bug #1177557
+ */
+ @Test
+ public void testNaturalLogarithm() throws ParseException {
+ NaturalLogarithm logFunction = new NaturalLogarithm();
+ Stack stack = new Stack<>();
+ stack.push(Double.NaN);
+ logFunction.run(stack);
+ assertTrue(Double.isNaN(stack.pop()));
+ }
+}
diff --git a/src/org/nfunk/jeptesting/package.html b/src/test/java/org/nfunk/jeptesting/package.html
similarity index 100%
rename from src/org/nfunk/jeptesting/package.html
rename to src/test/java/org/nfunk/jeptesting/package.html
diff --git a/bin/JEPTestExpressions.txt b/src/test/resources/JEPTestExpressions.txt
similarity index 100%
rename from bin/JEPTestExpressions.txt
rename to src/test/resources/JEPTestExpressions.txt