Index: tests/GuiChecks/Geometry/DistanceToVector/testsuite-geometry-distance-to-vector.at
===================================================================
--- tests/GuiChecks/Geometry/DistanceToVector/testsuite-geometry-distance-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
+++ tests/GuiChecks/Geometry/DistanceToVector/testsuite-geometry-distance-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
@@ -0,0 +1,50 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2017 Frederik Heber
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+### distance to vector
+
+AT_SETUP([Geometry - distance to vector])
+AT_KEYWORDS([geometry distance-to-vector])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/DistanceToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--select-atom-by-id 0 1 --distance-to-vector "testvector" --reverse 1 --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-distance-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-distance-to-vector.py >session-geometry-distance-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-distance-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/DistanceToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - distance to vector Undo])
+AT_KEYWORDS([geometry distance-to-vector undo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/DistanceToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--select-atom-by-id 0 1 --distance-to-vector "testvector" --reverse 1 --undo --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-distance-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-distance-to-vector.py >session-geometry-distance-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-distance-to-vector_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - distance to vector Redo])
+AT_KEYWORDS([geometry distance-to-vector undo redo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/DistanceToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--select-atom-by-id 0 1 --distance-to-vector "testvector" --reverse 1 --undo --redo --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-distance-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-distance-to-vector.py >session-geometry-distance-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-distance-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/DistanceToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Geometry/InputToVector/testsuite-geometry-input-to-vector.at
===================================================================
--- tests/GuiChecks/Geometry/InputToVector/testsuite-geometry-input-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
+++ tests/GuiChecks/Geometry/InputToVector/testsuite-geometry-input-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
@@ -0,0 +1,50 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2017 Frederik Heber
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+### input to vector
+
+AT_SETUP([Geometry - input to vector])
+AT_KEYWORDS([geometry input-to-vector])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/InputToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--input-to-vector "testvector" --coordinates "1,0,0" 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-input-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-input-to-vector.py >session-geometry-input-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-input-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/InputToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - input to vector Undo])
+AT_KEYWORDS([geometry input-to-vector undo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/InputToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--input-to-vector "testvector" --coordinates "1,0,0"  --undo 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-input-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-input-to-vector.py >session-geometry-input-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-input-to-vector_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - input to vector Redo])
+AT_KEYWORDS([geometry input-to-vector undo redo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/InputToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--input-to-vector "testvector" --coordinates "1,0,0"  --undo --redo 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-input-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-input-to-vector.py >session-geometry-input-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-input-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/InputToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Geometry/PlaneToVector/testsuite-geometry-plane-to-vector.at
===================================================================
--- tests/GuiChecks/Geometry/PlaneToVector/testsuite-geometry-plane-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
+++ tests/GuiChecks/Geometry/PlaneToVector/testsuite-geometry-plane-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
@@ -0,0 +1,50 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2017 Frederik Heber
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+### plane to vector
+
+AT_SETUP([Geometry - plane to vector])
+AT_KEYWORDS([geometry plane-to-vector])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/PlaneToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--select-atom-by-id 0 1 2 --plane-to-vector "testvector" --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-plane-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-plane-to-vector.py >session-geometry-plane-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-plane-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/PlaneToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - plane to vector Undo])
+AT_KEYWORDS([geometry plane-to-vector undo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/PlaneToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--select-atom-by-id 0 1 2 --plane-to-vector "testvector" --undo --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-plane-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-plane-to-vector.py >session-geometry-plane-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-plane-to-vector_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - plane to vector Redo])
+AT_KEYWORDS([geometry plane-to-vector undo redo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/PlaneToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--select-atom-by-id 0 1 2 --plane-to-vector "testvector" --undo --redo --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-plane-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-plane-to-vector.py >session-geometry-plane-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-plane-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/PlaneToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Geometry/PositionToVector/testsuite-geometry-position-to-vector.at
===================================================================
--- tests/GuiChecks/Geometry/PositionToVector/testsuite-geometry-position-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
+++ tests/GuiChecks/Geometry/PositionToVector/testsuite-geometry-position-to-vector.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
@@ -0,0 +1,50 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2017 Frederik Heber
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+### position to vector
+
+AT_SETUP([Geometry - position to vector])
+AT_KEYWORDS([geometry position-to-vector])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/PositionToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--select-atom-by-id 0 --position-to-vector "testvector" --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-position-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-position-to-vector.py >session-geometry-position-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-position-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/PositionToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - position to vector Undo])
+AT_KEYWORDS([geometry position-to-vector undo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/PositionToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--select-atom-by-id 0 --position-to-vector "testvector" --undo --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-position-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-position-to-vector.py >session-geometry-position-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-position-to-vector_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - position to vector Redo])
+AT_KEYWORDS([geometry position-to-vector undo redo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/PositionToVector/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file 	--select-atom-by-id 0 --position-to-vector "testvector" --undo --redo --unselect-all-atoms 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-position-to-vector.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-position-to-vector.py >session-geometry-position-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-position-to-vector_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/PositionToVector/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Geometry/Remove/testsuite-geometry-remove.at
===================================================================
--- tests/GuiChecks/Geometry/Remove/testsuite-geometry-remove.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
+++ tests/GuiChecks/Geometry/Remove/testsuite-geometry-remove.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
@@ -0,0 +1,59 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2017 Frederik Heber
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+### remove
+
+AT_SETUP([Geometry - remove geometry])
+AT_KEYWORDS([geometry remove-geometry])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/Remove/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--select-atom-by-id 0 --position-to-vector "testvector" --unselect-all-atoms 	--remove-geometry "testvector" 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-remove.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-remove.py >session-geometry-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-remove_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - remove invalid geometry])
+AT_KEYWORDS([geometry remove-geometry])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/Remove/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--select-atom-by-id 0 --position-to-vector "testvector" --unselect-all-atoms 	--remove-geometry "zeroVector" --no-dry-run --store-session session-geometry-remove.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-remove.py >session-geometry-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-remove_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - remove geometry Undo])
+AT_KEYWORDS([geometry remove-geometry undo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/Remove/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--select-atom-by-id 0 --position-to-vector "testvector" --unselect-all-atoms 	--remove-geometry "testvector"  --undo 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-remove.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-remove.py >session-geometry-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated.*' $file ${abs_top_srcdir}/tests/regression/Geometry/Remove/post/$file], 0, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Geometry - remove geometry Redo])
+AT_KEYWORDS([geometry remove-geometry undo redo])
+file=test.xyz
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Geometry/Remove/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file -v 5 	--remove-geometry "testvector" --undo --redo 	--select-atom-by-element C --translate-atoms --position "testvector" --no-dry-run --store-session session-geometry-remove.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-remove.py >session-geometry-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-remove_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Geometry/testsuite-geometry-common.at
===================================================================
--- tests/GuiChecks/Geometry/testsuite-geometry-common.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
+++ tests/GuiChecks/Geometry/testsuite-geometry-common.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
@@ -0,0 +1,46 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2017 Frederik Heber
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+### common stuff to geometry
+
+# names are already setup automatically
+AT_SETUP([Geometry - automatically added geometry names])
+AT_KEYWORDS([geometry])
+AT_CHECK([../../molecuilder --dry-run --input-to-vector "zeroVector" --position "0,0,0" --no-dry-run --store-session session-geometry-common.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-common.py >session-geometry-common_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-common_new.py], 5, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run --input-to-vector "unitVectorX" --position "1,0,0" --no-dry-run --store-session session-geometry-common.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-common.py >session-geometry-common_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-common_new.py], 5, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run --input-to-vector "unitVectorY" --position "0,1,0" --no-dry-run --store-session session-geometry-common.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-common.py >session-geometry-common_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-common_new.py], 5, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run --input-to-vector "unitVectorZ" --position "0,0,1" --no-dry-run --store-session session-geometry-common.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-common.py >session-geometry-common_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-common_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
+
+# no names interpretable as vectors and no pure numbers
+AT_SETUP([Geometry - illegal geometry names])
+AT_KEYWORDS([geometry])
+AT_CHECK([../../molecuilder --dry-run --input-to-vector "0,0,0" --position "0,0,0" --no-dry-run --store-session session-geometry-common.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-common.py >session-geometry-common_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-common_new.py], 5, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run --input-to-vector "1" --position "1,0,0" --no-dry-run --store-session session-geometry-common.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-geometry-common.py >session-geometry-common_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-geometry-common_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Geometry/testsuite-geometry.at
===================================================================
--- tests/GuiChecks/Geometry/testsuite-geometry.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
+++ tests/GuiChecks/Geometry/testsuite-geometry.at	(revision ac3a048849bc5644f6a117892689d4c80512aef2)
@@ -0,0 +1,36 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2017 Frederik Heber
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+AT_BANNER([MoleCuilder - Geometry Objects])
+
+# common checks
+m4_include([Geometry/testsuite-geometry-common.at])
+
+# Position to Vector
+m4_include([Geometry/PositionToVector/testsuite-geometry-position-to-vector.at])
+
+# Distance to Vector
+m4_include([Geometry/DistanceToVector/testsuite-geometry-distance-to-vector.at])
+
+# Plane to Vector
+m4_include([Geometry/PlaneToVector/testsuite-geometry-plane-to-vector.at])
+
+# Input to Vector
+m4_include([Geometry/InputToVector/testsuite-geometry-input-to-vector.at])
+
+# Remove
+m4_include([Geometry/Remove/testsuite-geometry-remove.at])
