Index: tests/GuiChecks/Atoms/Add/testsuite-atoms-add.at
===================================================================
--- tests/GuiChecks/Atoms/Add/testsuite-atoms-add.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/Add/testsuite-atoms-add.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,68 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### add atom
+
+AT_SETUP([Atoms - adding atom])
+AT_KEYWORDS([atoms add-atom])
+AT_CHECK([../../molecuilder --dry-run -i test.conf -o mpqc pcp xyz tremolo pdb -a 1 --domain-position "10., 10., 10." --no-dry-run --store-session session-atoms-add.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-add.py >session-atoms-add_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-add_new.py], 0, [ignore], [ignore])
+AT_CHECK([file=test.conf; diff -I '#.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.conf], 0, [ignore], [ignore])
+AT_CHECK([file=test.data; diff -I '#.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.data], 0, [ignore], [ignore])
+AT_CHECK([file=test.in; diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.in], 0, [ignore], [ignore])
+AT_CHECK([file=test.pdb; diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.pdb], 0, [ignore], [ignore])
+AT_CHECK([file=test.xyz; diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.xyz], 0, [ignore], [ignore])
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - adding atom with Undo])
+AT_KEYWORDS([atoms add-atom undo])
+
+AT_CHECK([../../molecuilder --dry-run -i empty.conf -o pcp -a 1 --domain-position "10., 10., 10." --undo --no-dry-run --store-session session-atoms-add.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-add.py >session-atoms-add_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-add_new.py], 0, [ignore], [ignore])
+AT_CHECK([file=empty.conf; diff $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/empty.conf], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - adding atom with Redo])
+AT_KEYWORDS([atoms add-atom redo])
+
+AT_CHECK([../../molecuilder --dry-run -i test.conf -o mpqc pcp xyz tremolo pdb -a 1 --domain-position "10., 10., 10." --undo --redo --no-dry-run --store-session session-atoms-add.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-add.py >session-atoms-add_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-add_new.py], 0, [ignore], [ignore])
+AT_CHECK([file=test.conf; diff -I '#.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.conf], 0, [ignore], [ignore])
+AT_CHECK([file=test.data; diff -I '#.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.data], 0, [ignore], [ignore])
+AT_CHECK([file=test.in; diff -I '#.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.in], 0, [ignore], [ignore])
+AT_CHECK([file=test.pdb; diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.pdb], 0, [ignore], [ignore])
+AT_CHECK([file=test.xyz; diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Add/post/test.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - adding outside boundary fails])
+AT_KEYWORDS([atoms boundary add-atom])
+# this does not fail
+AT_XFAIL_IF([/bin/true])
+
+AT_CHECK([../../molecuilder --dry-run -i test2.conf -o mpqc pcp xyz tremolo pdb --set-boundary-conditions Ignore Ignore Ignore -a 1 --domain-position "0., 0., -1." --no-dry-run --store-session session-atoms-add.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-add.py >session-atoms-add_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-add_new.py], 5, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/ChangeElement/testsuite-atoms-change-element.at
===================================================================
--- tests/GuiChecks/Atoms/ChangeElement/testsuite-atoms-change-element.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/ChangeElement/testsuite-atoms-change-element.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,59 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### change the element
+
+AT_SETUP([Atoms - Changing element])
+AT_KEYWORDS([atoms change-element])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/ChangeElement/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file  --select-atom-by-id 0 -E 6  --no-dry-run --store-session session-atoms-change-element.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-change-element.py >session-atoms-change-element_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-change-element_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/ChangeElement/post/test.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Changing element with Undo])
+AT_KEYWORDS([atoms change-element undo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/ChangeElement/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file  --select-atom-by-id 0 -E 6 --undo --no-dry-run --store-session session-atoms-change-element.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-change-element.py >session-atoms-change-element_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-change-element_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/ChangeElement/post/test-undo.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Changing element with Redo])
+AT_KEYWORDS([atoms change-element redo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/ChangeElement/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file  --select-atom-by-id 0 -E 6 --undo --redo --no-dry-run --store-session session-atoms-change-element.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-change-element.py >session-atoms-change-element_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-change-element_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/ChangeElement/post/test.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/Mirror/testsuite-atoms-mirror.at
===================================================================
--- tests/GuiChecks/Atoms/Mirror/testsuite-atoms-mirror.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/Mirror/testsuite-atoms-mirror.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,59 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### translation
+
+AT_SETUP([Atoms - Mirror])
+AT_KEYWORDS([atoms mirror-atoms])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Mirror/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --mirror-atoms "1,0,0" --plane-offset 5. --no-dry-run --store-session session-atoms-mirror.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-mirror.py >session-atoms-mirror_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-mirror_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created .*' $file ${abs_top_srcdir}/tests/regression/Atoms/Mirror/post/test-mirrored.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Mirror with Undo])
+AT_KEYWORDS([atoms mirror-atoms undo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Mirror/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --mirror-atoms "1,0,0" --plane-offset 5. --undo --no-dry-run --store-session session-atoms-mirror.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-mirror.py >session-atoms-mirror_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-mirror_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created .*' $file ${abs_top_srcdir}/tests/regression/Atoms/Mirror/pre/test.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Mirror with Redo])
+AT_KEYWORDS([atoms mirror-atoms redo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Mirror/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --mirror-atoms "1,0,0" --plane-offset 5. --undo --redo --no-dry-run --store-session session-atoms-mirror.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-mirror.py >session-atoms-mirror_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-mirror_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created .*' $file ${abs_top_srcdir}/tests/regression/Atoms/Mirror/post/test-mirrored.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/Remove/testsuite-atoms-remove.at
===================================================================
--- tests/GuiChecks/Atoms/Remove/testsuite-atoms-remove.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/Remove/testsuite-atoms-remove.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,61 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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 atom
+
+AT_SETUP([Atoms - Atom removal])
+AT_KEYWORDS([atoms remove-atom])
+
+file=test.conf
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Remove/pre/test.conf $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file  -o mpqc pcp xyz --select-atom-by-id 0 -r --no-dry-run --store-session session-atoms-remove.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove.py >session-atoms-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/tests/regression/Atoms/Remove/post/test.conf], 0, [ignore], [ignore])
+AT_CHECK([file=test.in; diff $file ${abs_top_srcdir}/tests/regression/Atoms/Remove/post/test.in], 0, [ignore], [ignore])
+AT_CHECK([file=test.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Remove/post/test.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Atom removal with Undo])
+AT_KEYWORDS([atoms remove-atom undo])
+
+file=test.conf
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Remove/pre/test.conf $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 -r --undo --no-dry-run --store-session session-atoms-remove.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove.py >session-atoms-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Remove/pre/test.conf], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Atom removal with Redo])
+AT_KEYWORDS([atoms remove-atom redo])
+
+file=test.conf
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Remove/pre/test.conf $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 -r --undo --redo --no-dry-run --store-session session-atoms-remove.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove.py >session-atoms-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Remove/post/test.conf], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/RemoveCuboid/testsuite-atoms-remove-cuboid.at
===================================================================
--- tests/GuiChecks/Atoms/RemoveCuboid/testsuite-atoms-remove-cuboid.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/RemoveCuboid/testsuite-atoms-remove-cuboid.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,91 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### Removing atoms inside and outside of cuboid
+
+AT_SETUP([Atoms - Removing cuboid of atoms])
+AT_KEYWORDS([atoms remove-atom])
+
+file=test-withoutcuboid.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --create-shape --shape-name "cube1" --shape-type "cube" --translation "9.78,2.64,2.64" --stretch "2,2,2" --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "cube1" --select-atoms-inside-volume -r --no-dry-run --store-session session-atoms-remove-cuboid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-cuboid.py >session-atoms-remove-cuboid_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-cuboid_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-withoutcuboid.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-withoutcuboid.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/post/test-withoutcuboid.xyz-sorted], 0, [ignore], [ignore])
+
+file=test-cuboid.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --create-shape --shape-name "cube1" --shape-type "cube" --translation "9.78,2.64,2.64" --stretch "2,2,2" --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "cube1" --unselect-atoms-inside-volume -r --no-dry-run --store-session session-atoms-remove-cuboid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-cuboid.py >session-atoms-remove-cuboid_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-cuboid_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-cuboid.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-cuboid.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/post/test-cuboid.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([cat test-cuboid.xyz-sorted test-withoutcuboid.xyz-sorted | sort -n >test.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/post/test.xyz-sorted], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Removing cuboid of atoms with Undo])
+AT_KEYWORDS([atoms remove-atom undo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --create-shape --shape-name "cube1" --shape-type "cube" --translation "9.78,2.64,2.64" --stretch "2,2,2" --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "cube1" --unselect-atoms-inside-volume -r --undo --no-dry-run --store-session session-atoms-remove-cuboid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-cuboid.py >session-atoms-remove-cuboid_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-cuboid_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/$file], 0, [ignore], [ignore])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --create-shape --shape-name "cube1" --shape-type "cube" --translation "9.78,2.64,2.64" --stretch "2,2,2" --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "cube1" --select-atoms-inside-volume -r --undo --no-dry-run --store-session session-atoms-remove-cuboid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-cuboid.py >session-atoms-remove-cuboid_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-cuboid_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/$file], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Removing cuboid of atoms with Redo])
+AT_KEYWORDS([atoms remove-atom redo])
+
+file=test-withoutcuboid.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --create-shape --shape-name "cube1" --shape-type "cube" --translation "9.78,2.64,2.64" --stretch "2,2,2" --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "cube1" --select-atoms-inside-volume -r --undo --redo --no-dry-run --store-session session-atoms-remove-cuboid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-cuboid.py >session-atoms-remove-cuboid_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-cuboid_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-withoutcuboid.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-withoutcuboid.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/post/test-withoutcuboid.xyz-sorted], 0, [ignore], [ignore])
+
+file=test-cuboid.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --create-shape --shape-name "cube1" --shape-type "cube" --translation "9.78,2.64,2.64" --stretch "2,2,2" --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "cube1" --unselect-atoms-inside-volume -r --undo --redo --no-dry-run --store-session session-atoms-remove-cuboid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-cuboid.py >session-atoms-remove-cuboid_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-cuboid_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-cuboid.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-cuboid.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/post/test-cuboid.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([cat test-cuboid.xyz-sorted test-withoutcuboid.xyz-sorted | sort -n >test.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveCuboid/post/test.xyz-sorted], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/RemoveSphere/testsuite-atoms-remove-sphere.at
===================================================================
--- tests/GuiChecks/Atoms/RemoveSphere/testsuite-atoms-remove-sphere.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/RemoveSphere/testsuite-atoms-remove-sphere.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,91 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### Removing atoms inside and outside of sphere
+
+AT_SETUP([Atoms - Removing sphere of atoms])
+AT_KEYWORDS([atoms remove-atom])
+
+file=test-withoutsphere.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --create-shape --shape-name "sphere1" --shape-type "sphere" --translation "7.283585982, 3.275186040, 3.535886037" --stretch "7., 7., 7." --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "sphere1" --select-atoms-inside-volume -r --no-dry-run --store-session session-atoms-remove-sphere.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-sphere.py >session-atoms-remove-sphere_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-sphere_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-withoutsphere.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-withoutsphere.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/post/test-withoutsphere.xyz-sorted], 0, [ignore], [ignore])
+
+file=test-sphere.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --create-shape --shape-name "sphere1" --shape-type "sphere" --translation "7.283585982, 3.275186040, 3.535886037" --stretch "7., 7., 7." --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "sphere1" --unselect-atoms-inside-volume -r --no-dry-run --store-session session-atoms-remove-sphere.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-sphere.py >session-atoms-remove-sphere_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-sphere_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-sphere.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-sphere.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/post/test-sphere.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([cat test-sphere.xyz-sorted test-withoutsphere.xyz-sorted | sort -n >test.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/post/test.xyz-sorted], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Removing sphere of atoms with Undo])
+AT_KEYWORDS([atoms remove-atom undo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --create-shape --shape-name "sphere1" --shape-type "sphere" --translation "7.283585982, 3.275186040, 3.535886037" --stretch "7., 7., 7." --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "sphere1" --select-atoms-inside-volume -r --undo --no-dry-run --store-session session-atoms-remove-sphere.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-sphere.py >session-atoms-remove-sphere_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-sphere_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/$file], 0, [ignore], [ignore])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --create-shape --shape-name "sphere1" --shape-type "sphere" --translation "7.283585982, 3.275186040, 3.535886037" --stretch "7., 7., 7." --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "sphere1" --unselect-atoms-inside-volume -r --undo --no-dry-run --store-session session-atoms-remove-sphere.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-sphere.py >session-atoms-remove-sphere_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-sphere_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/$file], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Removing sphere of atoms with Redo])
+AT_KEYWORDS([atoms remove-atom redo])
+
+file=test-withoutsphere.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --create-shape --shape-name "sphere1" --shape-type "sphere" --translation "7.283585982, 3.275186040, 3.535886037" --stretch "7., 7., 7." --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "sphere1" --select-atoms-inside-volume -r --undo --redo --no-dry-run --store-session session-atoms-remove-sphere.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-sphere.py >session-atoms-remove-sphere_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-sphere_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-withoutsphere.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-withoutsphere.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/post/test-withoutsphere.xyz-sorted], 0, [ignore], [ignore])
+
+file=test-sphere.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --create-shape --shape-name "sphere1" --shape-type "sphere" --translation "7.283585982, 3.275186040, 3.535886037" --stretch "7., 7., 7." --angle-x 0. --angle-y 0. --angle-z 0. --select-shape-by-name "sphere1" --unselect-atoms-inside-volume -r --undo --redo --no-dry-run --store-session session-atoms-remove-sphere.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-remove-sphere.py >session-atoms-remove-sphere_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-remove-sphere_new.py], 0, [stdout], [stderr])
+AT_CHECK([sort -n $file | grep -v -E "^[[[:digit:]]]+" | grep -v "Created by" >test-sphere.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test-sphere.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/post/test-sphere.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([cat test-sphere.xyz-sorted test-withoutsphere.xyz-sorted | sort -n >test.xyz-sorted], 0, [ignore], [ignore])
+AT_CHECK([file=test.xyz-sorted; diff $file ${abs_top_srcdir}/tests/regression/Atoms/RemoveSphere/post/test.xyz-sorted], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate_carbon.at
===================================================================
--- tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate_carbon.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate_carbon.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,51 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2015 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/>.
+#
+### add atom
+
+AT_SETUP([Atoms - saturating carbon])
+AT_KEYWORDS([atoms saturate-atoms])
+
+file=saturated_carbon.xyz
+AT_CHECK([../../molecuilder --dry-run -a 6 --domain-position "10., 10., 10." --select-all-atoms --saturate-atoms --output-as $file --no-dry-run --store-session session-atoms-saturate_carbon.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate_carbon.py >session-atoms-saturate_carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate_carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([Atoms - saturating carbon with Undo])
+AT_KEYWORDS([atoms saturate-atoms undo])
+
+file=carbon.xyz
+AT_CHECK([../../molecuilder --dry-run -a 6 --domain-position "10., 10., 10." --select-all-atoms --saturate-atoms --undo --output-as $file --no-dry-run --store-session session-atoms-saturate_carbon.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate_carbon.py >session-atoms-saturate_carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate_carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([Atoms - saturating carbon with Redo])
+AT_KEYWORDS([atoms saturate-atoms redo])
+
+file=saturated_carbon.xyz
+AT_CHECK([../../molecuilder --dry-run -a 6 --domain-position "10., 10., 10." --select-all-atoms --saturate-atoms --undo --redo --output-as $file --no-dry-run --store-session session-atoms-saturate_carbon.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate_carbon.py >session-atoms-saturate_carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate_carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at
===================================================================
--- tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,51 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2015 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/>.
+#
+### add atom
+
+AT_SETUP([Atoms - saturating nitrogen])
+AT_KEYWORDS([atoms saturate-atoms])
+
+file=saturated_nitrogen.xyz
+AT_CHECK([../../molecuilder --dry-run -a 7 --domain-position "10., 10., 10." --select-all-atoms --saturate-atoms --output-as $file --no-dry-run --store-session session-atoms-saturate_nitrogen.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate_nitrogen.py >session-atoms-saturate_nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate_nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([Atoms - saturating nitrogen with Undo])
+AT_KEYWORDS([atoms saturate-atoms undo])
+
+file=nitrogen.xyz
+AT_CHECK([../../molecuilder --dry-run -a 7 --domain-position "10., 10., 10." --select-all-atoms --saturate-atoms --undo --output-as $file --no-dry-run --store-session session-atoms-saturate_nitrogen.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate_nitrogen.py >session-atoms-saturate_nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate_nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([Atoms - saturating nitrogen with Redo])
+AT_KEYWORDS([atoms saturate-atoms redo])
+
+file=saturated_nitrogen.xyz
+AT_CHECK([../../molecuilder --dry-run -a 7 --domain-position "10., 10., 10." --select-all-atoms --saturate-atoms --undo --redo --output-as $file --no-dry-run --store-session session-atoms-saturate_nitrogen.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate_nitrogen.py >session-atoms-saturate_nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate_nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/SaveSelectedAtoms/testsuite-atoms-save-selected-atoms.at
===================================================================
--- tests/GuiChecks/Atoms/SaveSelectedAtoms/testsuite-atoms-save-selected-atoms.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/SaveSelectedAtoms/testsuite-atoms-save-selected-atoms.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,29 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### Removing atoms inside sphere
+
+AT_SETUP([Atoms - Save selected atoms])
+AT_KEYWORDS([atoms save selection save-selected-atoms])
+
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/SaveSelectedAtoms/pre/test.xyz .], 0)
+AT_CHECK([../../molecuilder --dry-run -i test.xyz --select-atom-by-id 0 --save-selected-atoms testsave.xyz --no-dry-run --store-session session-atoms-save-selected-atoms.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-save-selected-atoms.py >session-atoms-save-selected-atoms_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-save-selected-atoms_new.py], 0, [stdout], [stderr])
+AT_CHECK([file=testsave.xyz; diff -I '.*Created by.*' $file ${abs_top_srcdir}/tests/regression/Atoms/SaveSelectedAtoms/post/testsave.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/Translation/testsuite-atoms-translation.at
===================================================================
--- tests/GuiChecks/Atoms/Translation/testsuite-atoms-translation.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/Translation/testsuite-atoms-translation.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,59 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### translation
+
+AT_SETUP([Atoms - Translation])
+AT_KEYWORDS([atoms translate-atoms])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Translation/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --translate-atoms --position "1,0,0" --no-dry-run --store-session session-atoms-translation.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation.py >session-atoms-translation_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Translation/post/test-shifted.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Translation with Undo])
+AT_KEYWORDS([atoms translate-atoms undo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Translation/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --translate-atoms --position "1,0,0" --undo --no-dry-run --store-session session-atoms-translation.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation.py >session-atoms-translation_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Translation/pre/test.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Translation with Redo])
+AT_KEYWORDS([atoms translate-atoms redo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Translation/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --translate-atoms --position "1,0,0" --undo --redo --no-dry-run --store-session session-atoms-translation.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation.py >session-atoms-translation_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Translation/post/test-shifted.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/TranslationToOrigin/testsuite-atoms-translation-to-origin.at
===================================================================
--- tests/GuiChecks/Atoms/TranslationToOrigin/testsuite-atoms-translation-to-origin.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/TranslationToOrigin/testsuite-atoms-translation-to-origin.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,77 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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/>.
+#
+### translation
+
+AT_SETUP([Atoms - Translation to origin])
+AT_KEYWORDS([atoms translate-to-origin])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 --translate-to-origin --no-dry-run --store-session session-atoms-translation-to-origin.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation-to-origin.py >session-atoms-translation-to-origin_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation-to-origin_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created.*' $file ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/post/test-shifted.xyz], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 1 --translate-to-origin --no-dry-run --store-session session-atoms-translation-to-origin.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation-to-origin.py >session-atoms-translation-to-origin_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation-to-origin_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created.*' $file ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/post/test-shifted-weighted.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Translation to origin with Undo])
+AT_KEYWORDS([atoms translate-to-origin undo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 --translate-to-origin --undo --no-dry-run --store-session session-atoms-translation-to-origin.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation-to-origin.py >session-atoms-translation-to-origin_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation-to-origin_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created.*' $file ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/post/test.xyz], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 1 --translate-to-origin --undo --no-dry-run --store-session session-atoms-translation-to-origin.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation-to-origin.py >session-atoms-translation-to-origin_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation-to-origin_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created.*' $file ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/post/test.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+
+AT_SETUP([Atoms - Translation to origin with Redo])
+AT_KEYWORDS([atoms translate-to-origin redo])
+
+file=test.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 --translate-to-origin --undo --redo --no-dry-run --store-session session-atoms-translation-to-origin.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation-to-origin.py >session-atoms-translation-to-origin_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation-to-origin_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created.*' $file ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/post/test-shifted.xyz], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/pre/test.xyz $file], 0)
+AT_CHECK([chmod u+w $file], 0)
+AT_CHECK([../../molecuilder --dry-run -i $file --select-atom-by-id 0 1 --translate-to-origin --undo --redo --no-dry-run --store-session session-atoms-translation-to-origin.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-translation-to-origin.py >session-atoms-translation-to-origin_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-translation-to-origin_new.py], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created.*' $file ${abs_top_srcdir}/tests/regression/Atoms/TranslationToOrigin/post/test-shifted-weighted.xyz], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/testsuite-atoms.at
===================================================================
--- tests/GuiChecks/Atoms/testsuite-atoms.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
+++ tests/GuiChecks/Atoms/testsuite-atoms.at	(revision dd6c07d2c5d563c8e46c0a4b01a0de11563eb584)
@@ -0,0 +1,49 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#
+#    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 - Atoms])
+
+# save selected
+m4_include([Atoms/SaveSelectedAtoms/testsuite-atoms-save-selected-atoms.at])
+
+# add atom
+m4_include([Atoms/Add/testsuite-atoms-add.at])
+
+# change the element
+m4_include([Atoms/ChangeElement/testsuite-atoms-change-element.at])
+
+# remove atom
+m4_include([Atoms/Remove/testsuite-atoms-remove.at])
+
+# Removing atoms inside and outside of sphere
+m4_include([Atoms/RemoveSphere/testsuite-atoms-remove-sphere.at])
+
+# Removing atoms inside and outside of cuboid
+m4_include([Atoms/RemoveCuboid/testsuite-atoms-remove-cuboid.at])
+
+# Undo and redo a translation
+m4_include([Atoms/Translation/testsuite-atoms-translation.at])
+
+# translate to origin
+m4_include([Atoms/TranslationToOrigin/testsuite-atoms-translation-to-origin.at])
+
+# mirror atoms
+m4_include([Atoms/Mirror/testsuite-atoms-mirror.at])
+
+# saturate atoms
+m4_include([Atoms/Saturate/testsuite-atoms-saturate_carbon.at])
+m4_include([Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at])
