Index: tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-bonded_atoms.at
===================================================================
--- tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-bonded_atoms.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-bonded_atoms.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,58 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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/>.
+#
+### saturate atoms with (partial) bonding
+
+AT_SETUP([Atoms - saturating water molecule])
+AT_KEYWORDS([atoms saturate-atoms])
+# this should not do anything as water is fully saturated
+
+file=saturated_water.pdb
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Saturate/pre/water.pdb .], 0)
+AT_CHECK([chmod u+w water.pdb], 0)
+AT_CHECK([../../molecuilder --dry-run -i water.pdb --select-atom-by-element 8 --saturate-atoms --output-as $file --no-dry-run --store-session session-atoms-saturate-atoms-bonded_atoms.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-bonded_atoms.py >session-atoms-saturate-atoms-bonded_atoms_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-bonded_atoms_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/saturated_water.pdb], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([Atoms - saturating partial water molecule])
+AT_KEYWORDS([atoms saturate-atoms])
+
+file=saturated_water_H1.pdb
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Saturate/pre/water.pdb .], 0)
+AT_CHECK([chmod u+w water.pdb], 0)
+AT_CHECK([../../molecuilder --dry-run -i water.pdb --select-atom-by-id 2 --remove-atom --select-atom-by-element 8 --saturate-atoms --output-as $file --no-dry-run --store-session session-atoms-saturate-atoms-bonded_atoms.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-bonded_atoms.py >session-atoms-saturate-atoms-bonded_atoms_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-bonded_atoms_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/saturated_water_H1.pdb], 0, [ignore], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([Atoms - saturating partial cholesterol molecule])
+AT_KEYWORDS([atoms saturate-atoms])
+
+file=saturated_cholesterol.pdb
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Atoms/Saturate/pre/cholesterol.pdb .], 0)
+AT_CHECK([chmod u+w cholesterol.pdb], 0)
+AT_CHECK([../../molecuilder --dry-run -i cholesterol.pdb --select-atom-by-id 48 50 53 67 73 --remove-atom --select-all-atoms --correct-bonddegree --unselect-atom-by-element 1 --saturate-atoms --output-as $file --no-dry-run --store-session session-atoms-saturate-atoms-bonded_atoms.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-bonded_atoms.py >session-atoms-saturate-atoms-bonded_atoms_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-bonded_atoms_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Atoms/Saturate/post/saturated_cholesterol_H48_50_53_67_73.pdb], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-carbon.at
===================================================================
--- tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-carbon.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-carbon.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -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-atoms-carbon.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-carbon.py >session-atoms-saturate-atoms-carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-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-atoms-carbon.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-carbon.py >session-atoms-saturate-atoms-carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-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-atoms-carbon.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-carbon.py >session-atoms-saturate-atoms-carbon_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-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-atoms-nitrogen.at
===================================================================
--- tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-nitrogen.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Atoms/Saturate/testsuite-atoms-saturate-atoms-nitrogen.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -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-atoms-nitrogen.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-nitrogen.py >session-atoms-saturate-atoms-nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-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-atoms-nitrogen.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-nitrogen.py >session-atoms-saturate-atoms-nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-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-atoms-nitrogen.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-atoms-saturate-atoms-nitrogen.py >session-atoms-saturate-atoms-nitrogen_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-atoms-saturate-atoms-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/testsuite-atoms.at
===================================================================
--- tests/GuiChecks/Atoms/testsuite-atoms.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Atoms/testsuite-atoms.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -46,4 +46,5 @@
 
 # saturate atoms
-m4_include([Atoms/Saturate/testsuite-atoms-saturate_carbon.at])
-m4_include([Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at])
+m4_include([Atoms/Saturate/testsuite-atoms-saturate-atoms-carbon.at])
+m4_include([Atoms/Saturate/testsuite-atoms-saturate-atoms-nitrogen.at])
+m4_include([Atoms/Saturate/testsuite-atoms-saturate-atoms-bonded_atoms.at])
Index: tests/GuiChecks/Bond/SetDegree/testsuite-bond-set-degree.at
===================================================================
--- tests/GuiChecks/Bond/SetDegree/testsuite-bond-set-degree.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Bond/SetDegree/testsuite-bond-set-degree.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,53 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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/>.
+#
+### set degree
+
+AT_SETUP([Bond - changing degree])
+AT_KEYWORDS([bond set-bond-degree saturate-atoms])
+file=test.pdb
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Bond/SetDegree/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 --set-bond-degree 2 --saturate-atoms --no-dry-run --store-session session-bond-set-degree.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-bond-set-degree.py >session-bond-set-degree_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-bond-set-degree_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Bond/SetDegree/post/test_degree2.pdb], 0, [ignore], [ignore])
+AT_CLEANUP
+
+
+AT_SETUP([Bond - changing degree with Undo])
+AT_KEYWORDS([bond set-bond-degree saturate-atoms undo])
+file=test.pdb
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Bond/SetDegree/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 --set-bond-degree 2 --undo --saturate-atoms --no-dry-run --store-session session-bond-set-degree.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-bond-set-degree.py >session-bond-set-degree_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-bond-set-degree_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Bond/SetDegree/post/test_degree1.pdb], 0, [ignore], [ignore])
+AT_CLEANUP
+
+
+AT_SETUP([Bond - changing degree with Redo])
+AT_KEYWORDS([bond set-bond-degree saturate-atoms redo])
+file=test.pdb
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Bond/SetDegree/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 --set-bond-degree 2 --undo --redo --saturate-atoms --no-dry-run --store-session session-bond-set-degree.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-bond-set-degree.py >session-bond-set-degree_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-bond-set-degree_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Bond/SetDegree/post/test_degree2.pdb], 0, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Bond/SetDegree/testsuite-bond-set-degree_multiple.at
===================================================================
--- tests/GuiChecks/Bond/SetDegree/testsuite-bond-set-degree_multiple.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Bond/SetDegree/testsuite-bond-set-degree_multiple.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,63 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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/>.
+#
+### set degree
+
+AT_SETUP([Bond - changing multiple degrees])
+AT_KEYWORDS([bond set-bond-degree])
+file=test_multiple.pdb
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Bond/SetDegree/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --set-bond-degree 2 --saturate-atoms --no-dry-run --store-session session-bond-set-degree_multiple.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-bond-set-degree_multiple.py >session-bond-set-degree_multiple_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-bond-set-degree_multiple_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Bond/SetDegree/post/test_multiple_degree2.pdb], 0, [ignore], [ignore])
+AT_CLEANUP
+
+
+AT_SETUP([Bond - changing multiple degrees with Undo])
+AT_KEYWORDS([bond set-bond-degree saturate-atoms undo])
+file=test_multiple.pdb
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Bond/SetDegree/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --set-bond-degree 2 --undo --saturate-atoms --no-dry-run --store-session session-bond-set-degree_multiple.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-bond-set-degree_multiple.py >session-bond-set-degree_multiple_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-bond-set-degree_multiple_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Bond/SetDegree/post/test_multiple_degree1.pdb], 0, [ignore], [ignore])
+AT_CLEANUP
+
+
+AT_SETUP([Bond - changing multiple degrees with Redo])
+AT_KEYWORDS([bond set-bond-degree saturate-atoms redo])
+file=test_multiple.pdb
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Bond/SetDegree/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --set-bond-degree 2 --undo --redo --saturate-atoms --no-dry-run --store-session session-bond-set-degree_multiple.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-bond-set-degree_multiple.py >session-bond-set-degree_multiple_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-bond-set-degree_multiple_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -I '.*reated by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Bond/SetDegree/post/test_multiple_degree2.pdb], 0, [ignore], [ignore])
+AT_CLEANUP
+
+AT_SETUP([Bond - changing multiple degrees, not all have bonds])
+AT_KEYWORDS([bond set-bond-degree saturate-atoms])
+file=test_multiple_fail.pdb
+AT_CHECK([cp -f ${abs_top_srcdir}/tests/regression/Bond/SetDegree/pre/$file $file], 0, [ignore], [ignore])
+AT_CHECK([chmod +w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i $file --select-all-atoms --set-bond-degree 2 --no-dry-run --store-session session-bond-set-degree_multiple.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-bond-set-degree_multiple.py >session-bond-set-degree_multiple_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-bond-set-degree_multiple_new.py], 5, [ignore], [ignore])
+AT_CLEANUP
Index: tests/GuiChecks/Bond/testsuite-bond.at
===================================================================
--- tests/GuiChecks/Bond/testsuite-bond.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Bond/testsuite-bond.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -28,2 +28,7 @@
 # adjacency matcher
 m4_include([Bond/AdjacencyMatcher/testsuite-bond-adjacencymatcher.at])
+
+# set degree
+m4_include([Bond/SetDegree/testsuite-bond-set-degree.at])
+m4_include([Bond/SetDegree/testsuite-bond-set-degree_multiple.at])
+
Index: tests/GuiChecks/Domain/RepeatBox/testsuite-domain-repeat-box.at
===================================================================
--- tests/GuiChecks/Domain/RepeatBox/testsuite-domain-repeat-box.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Domain/RepeatBox/testsuite-domain-repeat-box.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -64,5 +64,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/pre/ec.* .], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ec.potentials -i $file  -o tremolo -d 2 2 2 --no-dry-run --store-session session-domain-repeat-box.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ec.potentials -i $file  -o tremolo -d 2 2 2 --no-dry-run --store-session session-domain-repeat-box.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-domain-repeat-box.py >session-domain-repeat-box_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-domain-repeat-box_new.py], 0, [stdout], [stderr])
@@ -118,5 +118,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/pre/ec.* .], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ec.potentials  -i $file  -o tremolo -d 2 2 2 --undo --no-dry-run --store-session session-domain-repeat-box.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ec.potentials  -i $file  -o tremolo -d 2 2 2 --undo --no-dry-run --store-session session-domain-repeat-box.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-domain-repeat-box.py >session-domain-repeat-box_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-domain-repeat-box_new.py], 0, [stdout], [stderr])
@@ -172,5 +172,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/pre/ec.* .], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ec.potentials -i $file  -o tremolo -d 2 2 2 --undo --redo --no-dry-run --store-session session-domain-repeat-box.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ec.potentials -i $file  -o tremolo -d 2 2 2 --undo --redo --no-dry-run --store-session session-domain-repeat-box.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-domain-repeat-box.py >session-domain-repeat-box_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-domain-repeat-box_new.py], 0, [stdout], [stderr])
Index: tests/GuiChecks/Filling/FillSurface/testsuite-fill-surface-micelle.at
===================================================================
--- tests/GuiChecks/Filling/FillSurface/testsuite-fill-surface-micelle.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Filling/FillSurface/testsuite-fill-surface-micelle.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -25,5 +25,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/FillSurface/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder 	--parse-tremolo-potentials tensid.potentials 	-i $file 	--select-all-molecules 	--rotate-to-principal-axis-system "0,0,-1" 	--create-shape 		--shape-name "sphere1" 		--shape-type "sphere" 		--translation "0,0,0" 		--stretch "20.,20.,20." 	--select-shape-by-name "sphere1" 	--fill-surface 		--count 20 		--min-distance 3.1 		--Alignment-Axis "0,0,1"
+AT_CHECK([../../molecuilder 	--parse-particle-parameters tensid.potentials 	-i $file 	--select-all-molecules 	--rotate-to-principal-axis-system "0,0,-1" 	--create-shape 		--shape-name "sphere1" 		--shape-type "sphere" 		--translation "0,0,0" 		--stretch "20.,20.,20." 	--select-shape-by-name "sphere1" 	--fill-surface 		--count 20 		--min-distance 3.1 		--Alignment-Axis "0,0,1"
 ], 0, [stdout], [stderr])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Filling/FillSurface/post/tensid.data], 0, [ignore], [ignore])
@@ -39,5 +39,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/FillSurface/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder 	--parse-tremolo-potentials tensid.potentials 	-i $file 	--select-all-molecules 	--rotate-to-principal-axis-system "0,0,-1" 	--create-shape 		--shape-name "sphere1" 		--shape-type "sphere" 		--translation "0,0,0" 		--stretch "20.,20.,20." 	--select-shape-by-name "sphere1" 	--fill-surface 		--count 20 		--min-distance 3.1 		--Alignment-Axis "0,0,1" 	--undo
+AT_CHECK([../../molecuilder 	--parse-particle-parameters tensid.potentials 	-i $file 	--select-all-molecules 	--rotate-to-principal-axis-system "0,0,-1" 	--create-shape 		--shape-name "sphere1" 		--shape-type "sphere" 		--translation "0,0,0" 		--stretch "20.,20.,20." 	--select-shape-by-name "sphere1" 	--fill-surface 		--count 20 		--min-distance 3.1 		--Alignment-Axis "0,0,1" 	--undo
 ], 0, [stdout], [stderr])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Filling/FillSurface/post/$file], 0, [ignore], [ignore])
@@ -53,5 +53,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/FillSurface/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder 	--parse-tremolo-potentials tensid.potentials 	-i $file 	--select-all-molecules 	--rotate-to-principal-axis-system "0,0,-1" 	--create-shape 		--shape-name "sphere1" 		--shape-type "sphere" 		--translation "0,0,0" 		--stretch "20.,20.,20." 	--select-shape-by-name "sphere1" 	--fill-surface 		--count 20 		--min-distance 3.1 		--Alignment-Axis "0,0,1" 	--undo 	--redo
+AT_CHECK([../../molecuilder 	--parse-particle-parameters tensid.potentials 	-i $file 	--select-all-molecules 	--rotate-to-principal-axis-system "0,0,-1" 	--create-shape 		--shape-name "sphere1" 		--shape-type "sphere" 		--translation "0,0,0" 		--stretch "20.,20.,20." 	--select-shape-by-name "sphere1" 	--fill-surface 		--count 20 		--min-distance 3.1 		--Alignment-Axis "0,0,1" 	--undo 	--redo
 ], 0, [stdout], [stderr])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Filling/FillSurface/post/tensid.data], 0, [ignore], [ignore])
Index: tests/GuiChecks/Filling/RegularGrid/testsuite-fill-regular-grid-with-surface.at
===================================================================
--- tests/GuiChecks/Filling/RegularGrid/testsuite-fill-regular-grid-with-surface.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Filling/RegularGrid/testsuite-fill-regular-grid-with-surface.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -25,5 +25,5 @@
 AT_CHECK([chmod u+w $file], 0)
 # check that specifying radius but selecting no atoms is wrong
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fill-regular-grid-with-surface.py >session-fill-regular-grid-with-surface_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fill-regular-grid-with-surface_new.py], 5, [stdout], [stderr])
@@ -37,5 +37,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/double_sles.data $file], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file --select-all-atoms -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file --select-all-atoms -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fill-regular-grid-with-surface.py >session-fill-regular-grid-with-surface_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fill-regular-grid-with-surface_new.py], 0, [stdout], [stderr])
@@ -51,5 +51,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/double_sles.data $file], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file --select-all-atoms -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --undo --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file --select-all-atoms -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --undo --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fill-regular-grid-with-surface.py >session-fill-regular-grid-with-surface_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fill-regular-grid-with-surface_new.py], 0, [stdout], [stderr])
@@ -65,5 +65,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/double_sles.data $file], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file --select-all-atoms -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --undo --redo --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file --select-all-atoms -B "14.199,0,14.199,0,0,14.199" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 5 --mesh-offset "0.5,0.5,0.5" --tesselation-radius 10 --min-distance .5 --undo --redo --no-dry-run --store-session session-fill-regular-grid-with-surface.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fill-regular-grid-with-surface.py >session-fill-regular-grid-with-surface_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fill-regular-grid-with-surface_new.py], 0, [stdout], [stderr])
Index: tests/GuiChecks/Filling/RegularGrid/testsuite-fill-regular-grid.at
===================================================================
--- tests/GuiChecks/Filling/RegularGrid/testsuite-fill-regular-grid.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Filling/RegularGrid/testsuite-fill-regular-grid.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -24,5 +24,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/single_sles.data $file], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,16.6216,0,0,33.9159" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 11 --mesh-offset "0.5,0.5,0.5" --min-distance 3.1 --no-dry-run --store-session session-fill-regular-grid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,16.6216,0,0,33.9159" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 11 --mesh-offset "0.5,0.5,0.5" --min-distance 3.1 --no-dry-run --store-session session-fill-regular-grid.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fill-regular-grid.py >session-fill-regular-grid_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fill-regular-grid_new.py], 0, [stdout], [stderr])
@@ -38,5 +38,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/single_sles.data $file], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,16.6216,0,0,33.9159" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 11 --mesh-offset "0.5,0.5,0.5" --min-distance 3.1 --undo --no-dry-run --store-session session-fill-regular-grid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,16.6216,0,0,33.9159" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 11 --mesh-offset "0.5,0.5,0.5" --min-distance 3.1 --undo --no-dry-run --store-session session-fill-regular-grid.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fill-regular-grid.py >session-fill-regular-grid_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fill-regular-grid_new.py], 0, [stdout], [stderr])
@@ -52,5 +52,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/single_sles.data $file], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,16.6216,0,0,33.9159" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 11 --mesh-offset "0.5,0.5,0.5" --min-distance 3.1 --undo --redo --no-dry-run --store-session session-fill-regular-grid.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/sles.potentials -i $file -B "14.199,0,16.6216,0,0,33.9159" --load ${abs_top_srcdir}/tests/regression/Filling/RegularGrid/pre/water.data --select-molecule-by-order -1 --fill-regular-grid --mesh-size 5 5 11 --mesh-offset "0.5,0.5,0.5" --min-distance 3.1 --undo --redo --no-dry-run --store-session session-fill-regular-grid.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fill-regular-grid.py >session-fill-regular-grid_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fill-regular-grid_new.py], 0, [stdout], [stderr])
Index: tests/GuiChecks/Fragmentation/AnalyseFragmentationResults/testsuite-fragmentation-analyse-fragment-results.at
===================================================================
--- tests/GuiChecks/Fragmentation/AnalyseFragmentationResults/testsuite-fragmentation-analyse-fragment-results.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Fragmentation/AnalyseFragmentationResults/testsuite-fragmentation-analyse-fragment-results.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -20,13 +20,13 @@
 #
 # BondFragmentShortRangeResults.dat is created like this:
-# ./molecuilder -i pre/alkane-3.pdb --change-box 20,0,20,0,0,20 --set-parser-parameters mpqc --parser-parameters "theory=CLHF;basis=6-31G;" --set-boundary-conditions Ignore Ignore Ignore --update-molecules --select-all-atoms --fragment-molecule BondFragment --DoSaturate 1 --ExcludeHydrogen 1 --distance 2. --order 6 --fragment-automation --DoLongrange 0 --server-address 127.0.0.1 --server-port 1026 --fragment-resultfile BondFragmentShortRangeResults.dat
+# ./molecuilder -i pre/alkane-3.pdb --change-box 20,0,20,0,0,20 --set-parser-parameters mpqc --parser-parameters "theory=CLHF;basis=6-31G;" --set-boundary-conditions Ignore Ignore Ignore --update-molecules --select-all-atoms --fragment-molecule BondFragment --DoSaturate 1 --ExcludeHydrogen 1 --distance 2. --order 6 --fragment-automation --DoLongrange 0 --server-address 127.0.0.1 --server-port 1026 --save-fragment-results BondFragmentShortRangeResults.dat
 
 AT_SETUP([Fragmentation - Analyse short-range fragmentation results])
-AT_KEYWORDS([fragmentation analyse-fragment-results])
+AT_KEYWORDS([fragmentation parse-fragment-results analyse-fragment-results])
 
 file=BondFragmentShortRangeResults.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run --analyse-fragment-results --fragment-resultfile $file --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run --parse-fragment-results $file --analyse-fragment-results --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-analyse-fragment-results.py >session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
@@ -41,10 +41,10 @@
 
 AT_SETUP([Fragmentation - Analyse short-range fragmentation results with forces])
-AT_KEYWORDS([fragmentation analyse-fragment-results forces])
+AT_KEYWORDS([fragmentation parse-fragment-results analyse-fragment-results forces])
 
 file=BondFragmentShortRangeResults.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --analyse-fragment-results --fragment-resultfile $file --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --parse-fragment-results $file --analyse-fragment-results --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-analyse-fragment-results.py >session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
@@ -55,13 +55,13 @@
 #
 # BondFragmentLongRangeResults.dat is created like this:
-# ./molecuilder -i pre/alkane-3.pdb --change-box 20,0,20,0,0,20 --set-parser-parameters mpqc --parser-parameters "theory=CLHF;basis=6-31G;" --set-boundary-conditions Ignore Ignore Ignore --update-molecules --select-all-atoms --fragment-molecule BondFragment --DoSaturate 1 --ExcludeHydrogen 1 --distance 2. --order 6 --fragment-automation --DoLongrange 1 --DoValenceOnly 0 --grid-level 4 --near-field-cells 3 --server-address 127.0.0.1 --server-port 1026 --fragment-resultfile BondFragmentLongRangeResults.dat
+# ./molecuilder -i pre/alkane-3.pdb --change-box 20,0,20,0,0,20 --set-parser-parameters mpqc --parser-parameters "theory=CLHF;basis=6-31G;" --set-boundary-conditions Ignore Ignore Ignore --update-molecules --select-all-atoms --fragment-molecule BondFragment --DoSaturate 1 --ExcludeHydrogen 1 --distance 2. --order 6 --fragment-automation --DoLongrange 1 --DoValenceOnly 0 --grid-level 4 --near-field-cells 3 --server-address 127.0.0.1 --server-port 1026 --save-fragment-results BondFragmentLongRangeResults_OBC.dat
 
 AT_SETUP([Fragmentation - Analyse long-range fragmentation results with OBC])
-AT_KEYWORDS([fragmentation analyse-fragment-results])
+AT_KEYWORDS([fragmentation parse-fragment-results analyse-fragment-results])
 
 file=BondFragmentLongRangeResults_OBC.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --analyse-fragment-results --fragment-resultfile $file --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
+AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --parse-fragment-results $file --analyse-fragment-results --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-analyse-fragment-results.py >session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [stderr])
@@ -73,5 +73,5 @@
 AT_CHECK([output=BondFragment_Eigenhistogram.dat; diff $output ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/OBC/$output], 0, [ignore], [ignore])
 AT_CHECK([output=BondFragment_IndexedEnergy.dat; diff $output ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/OBC/$output], 0, [ignore], [ignore])
-AT_CHECK([grep "File contains long-range information but long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
+AT_CHECK([grep "long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
 	AT_CHECK([output=BondFragment_LongRangeEnergy.dat; diff $output ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/OBC/$output], 0, [ignore], [ignore])
 	])
@@ -80,13 +80,13 @@
 
 AT_SETUP([Fragmentation - Analyse long-range fragmentation results with OBC and forces])
-AT_KEYWORDS([fragmentation analyse-fragment-results forces longrange])
+AT_KEYWORDS([fragmentation parse-fragment-results analyse-fragment-results forces longrange])
 
 file=BondFragmentLongRangeResults_OBC.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --analyse-fragment-results --fragment-resultfile $file --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
+AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --parse-fragment-results $file --analyse-fragment-results --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-analyse-fragment-results.py >session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [stderr])
-AT_CHECK([grep "File contains long-range information but long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
+AT_CHECK([grep "long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
 	AT_CHECK([diff alkane-3.data ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/OBC/alkane-3.data], 0, [ignore], [ignore])
 	])
@@ -96,13 +96,13 @@
 #
 # BondFragmentLongRangeResults.dat is created like this:
-# ./molecuilder -i pre/alkane-3.pdb --change-box 20,0,20,0,0,20 --set-parser-parameters mpqc --parser-parameters "theory=CLHF;basis=6-31G;" --set-boundary-conditions Wrap Wrap Wrap --update-molecules --select-all-atoms --fragment-molecule BondFragment --DoSaturate 1 --ExcludeHydrogen 1 --distance 2. --order 6 --fragment-automation --DoLongrange 1 --DoValenceOnly 0 --grid-level 4 --near-field-cells 3 --server-address 127.0.0.1 --server-port 1026 --fragment-resultfile BondFragmentLongRangeResults.dat
+# ./molecuilder -i pre/alkane-3.pdb --change-box 20,0,20,0,0,20 --set-parser-parameters mpqc --parser-parameters "theory=CLHF;basis=6-31G;" --set-boundary-conditions Wrap Wrap Wrap --update-molecules --select-all-atoms --fragment-molecule BondFragment --DoSaturate 1 --ExcludeHydrogen 1 --distance 2. --order 6 --fragment-automation --DoLongrange 1 --DoValenceOnly 0 --grid-level 4 --near-field-cells 3 --server-address 127.0.0.1 --server-port 1026 --save-fragment-results BondFragmentLongRangeResults_PBC.dat
 
 AT_SETUP([Fragmentation - Analyse long-range fragmentation results with PBC])
-AT_KEYWORDS([fragmentation analyse-fragment-results])
+AT_KEYWORDS([fragmentation parse-fragment-results analyse-fragment-results])
 
 file=BondFragmentLongRangeResults_PBC.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --analyse-fragment-results --fragment-resultfile $file --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
+AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --parse-fragment-results $file --analyse-fragment-results --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-analyse-fragment-results.py >session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [stderr])
@@ -114,5 +114,5 @@
 AT_CHECK([output=BondFragment_Eigenhistogram.dat; diff $output ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/PBC/$output], 0, [ignore], [ignore])
 AT_CHECK([output=BondFragment_IndexedEnergy.dat; diff $output ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/PBC/$output], 0, [ignore], [ignore])
-AT_CHECK([grep "File contains long-range information but long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
+AT_CHECK([grep "long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
 	AT_CHECK([output=BondFragment_LongRangeEnergy.dat; diff $output ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/PBC/$output], 0, [ignore], [ignore])
 	])
@@ -121,13 +121,13 @@
 
 AT_SETUP([Fragmentation - Analyse long-range fragmentation results with PBC and forces])
-AT_KEYWORDS([fragmentation analyse-fragment-results forces longrange])
+AT_KEYWORDS([fragmentation parse-fragment-results analyse-fragment-results forces longrange])
 
 file=BondFragmentLongRangeResults_PBC.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --analyse-fragment-results --fragment-resultfile $file --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
+AT_CHECK([../../molecuilder --dry-run -i ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/pre/alkane-3.pdb -o tremolo --set-tremolo-atomdata "Id type x=3 u=3 F=3" --reset 1 --parse-fragment-results $file --analyse-fragment-results --no-dry-run --store-session session-fragmentation-analyse-fragment-results.py --session-type python], 0, [ignore], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-analyse-fragment-results.py >session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-fragmentation-analyse-fragment-results_new.py], 0, [ignore], [stderr])
-AT_CHECK([grep "File contains long-range information but long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
+AT_CHECK([grep "long-range analysis capability not compiled in" stderr], 0, [ignore], [ignore], [
 	AT_CHECK([diff alkane-3.data ${abs_top_srcdir}/tests/regression/Fragmentation/AnalyseFragmentationResults/post/LongRange/PBC/alkane-3.data], 0, [ignore], [ignore])
 	])
Index: tests/GuiChecks/Fragmentation/ParseSaveFragmentResults/testsuite-fragmentation-parse-save-fragment-results.at
===================================================================
--- tests/GuiChecks/Fragmentation/ParseSaveFragmentResults/testsuite-fragmentation-parse-save-fragment-results.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Fragmentation/ParseSaveFragmentResults/testsuite-fragmentation-parse-save-fragment-results.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,93 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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/>.
+#
+### parse and save state of FragmentationResultsContainer
+
+AT_SETUP([Fragmentation - parse and save fragment results])
+AT_KEYWORDS([fragmentation parse-fragment-results save-fragment-results])
+# results.dat is taken from Fragmentation/AnalyseFragmentationResults/pre/BondFragmentShortRangeResults.dat
+
+file=results_new.dat
+newfile=results_new2.dat
+
+# fails because file is missing
+AT_CHECK([../../molecuilder --dry-run --parse-fragment-results $file --save-fragment-results $file --no-dry-run --store-session session-fragmentation-parse-save-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-parse-save-fragment-results.py >session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-fragmentation-parse-save-fragment-results_new.py], 5, [ignore], [ignore])
+
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/pre/results.dat results.dat], 0)
+AT_CHECK([../../molecuilder --dry-run --parse-fragment-results results.dat --save-fragment-results $file --no-dry-run --store-session session-fragmentation-parse-save-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-parse-save-fragment-results.py >session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+# we ignore white space changes (also missing new line on end of last line)
+AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_longrange_enabled.dat], 0, [ignore], [ignore], [
+	AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_longrange_disabled.dat], 0, [ignore], [ignore], [
+		AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_jobmarkt_disabled.dat], 0, [ignore], [ignore])
+	])
+])
+
+# fails because file is already present
+AT_CHECK([../../molecuilder --dry-run --parse-fragment-results $file --save-fragment-results $file --no-dry-run --store-session session-fragmentation-parse-save-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-parse-save-fragment-results.py >session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-fragmentation-parse-save-fragment-results_new.py], 5, [ignore], [ignore])
+
+AT_CHECK([../../molecuilder --dry-run --parse-fragment-results $file --save-fragment-results $newfile --no-dry-run --store-session session-fragmentation-parse-save-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-parse-save-fragment-results.py >session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_longrange_enabled.dat], 0, [ignore], [ignore], [
+	AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_longrange_disabled.dat], 0, [ignore], [ignore], [
+		AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_jobmarkt_disabled.dat], 0, [ignore], [ignore])
+	])
+])
+
+AT_CLEANUP
+
+AT_SETUP([Fragmentation - parse and save fragment results with Undo])
+AT_KEYWORDS([fragmentation parse-fragment-results save-fragment-results undo])
+
+emptyfile=results_empty.dat
+
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/pre/results.dat results.dat], 0)
+AT_CHECK([../../molecuilder --dry-run --parse-fragment-results results.dat --undo --save-fragment-results $emptyfile --no-dry-run --store-session session-fragmentation-parse-save-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-parse-save-fragment-results.py >session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+# we ignore white space changes (also missing new line on end of last line)
+AT_CHECK([diff -Z $emptyfile ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_empty_longrange_enabled.dat], 0, [ignore], [ignore], [
+	AT_CHECK([diff -Z $emptyfile ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_empty_longrange_disabled.dat], 0, [ignore], [ignore], [
+		AT_CHECK([diff -Z $emptyfile ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_empty_jobmarkt_disabled.dat], 0, [ignore], [ignore])
+	])
+])
+
+AT_CLEANUP
+
+AT_SETUP([Fragmentation - parse and save fragment results with Redo])
+AT_KEYWORDS([fragmentation parse-fragment-results save-fragment-results undo redo])
+
+file=results_new.dat
+
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/pre/results.dat results.dat], 0)
+AT_CHECK([../../molecuilder --dry-run --parse-fragment-results results.dat --undo --redo --save-fragment-results $file --no-dry-run --store-session session-fragmentation-parse-save-fragment-results.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-fragmentation-parse-save-fragment-results.py >session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-fragmentation-parse-save-fragment-results_new.py], 0, [ignore], [ignore])
+# we ignore white space changes (also missing new line on end of last line)
+AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_longrange_enabled.dat], 0, [ignore], [ignore], [
+	AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_longrange_disabled.dat], 0, [ignore], [ignore], [
+		AT_CHECK([diff -Z $file ${abs_top_srcdir}/tests/regression/Fragmentation/ParseSaveFragmentResults/post/results_jobmarkt_disabled.dat], 0, [ignore], [ignore])
+	])
+])
+
+AT_CLEANUP
Index: tests/GuiChecks/Fragmentation/testsuite-fragmentation.at
===================================================================
--- tests/GuiChecks/Fragmentation/testsuite-fragmentation.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Fragmentation/testsuite-fragmentation.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -2,5 +2,5 @@
 #    MoleCuilder - creates and alters molecular systems
 #    Copyright (C) 2008-2012 University of Bonn
-#    Copyright (C) 2013 Frederik Heber
+#    Copyright (C) 2013-2016 Frederik Heber
 #
 #    This program is free software: you can redistribute it and/or modify
@@ -33,2 +33,5 @@
 # check automation
 m4_include([Fragmentation/FragmentationAutomation/testsuite-fragmentation-fragmentation-automation.at])
+
+# parse/save state of FragmentationResultsContainer
+m4_include([Fragmentation/ParseSaveFragmentResults/testsuite-fragmentation-parse-save-fragment-results.at])
Index: tests/GuiChecks/Makefile.am
===================================================================
--- tests/GuiChecks/Makefile.am	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Makefile.am	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -5,201 +5,208 @@
 TESTSCRIPTS = \
 	$(srcdir)/./Testlauncher/testsuite-testlauncher-works.at \
-	$(srcdir)/./Options/ElementsDb/testsuite-options-elements-db.at \
-	$(srcdir)/./Options/SetDefaultName/testsuite-options-set-default-name.at \
-	$(srcdir)/./Options/Help/testsuite-options-help.at \
-	$(srcdir)/./Options/SetWorldTime/testsuite-options-set-world-time.at \
-	$(srcdir)/./Options/FastParsing/testsuite-options-fast-parsing.at \
-	$(srcdir)/./Options/Verbosity/testsuite-options-verbosity.at \
-	$(srcdir)/./Options/testsuite-options.at \
-	$(srcdir)/./Options/BondLengthTable/testsuite-options-bond-length-table.at \
-	$(srcdir)/./Options/Warranty/testsuite-options-warranty.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByFormula/testsuite-selection-unselect-molecules-by-formula.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByFormula/testsuite-selection-select-molecules-by-formula.at \
-	$(srcdir)/./Selection/Molecules/InvertMolecules/testsuite-selection-invert-molecules.at \
-	$(srcdir)/./Selection/Molecules/PopMoleculeSelection/testsuite-selection-pop-molecule-selection.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByName/testsuite-selection-unselect-molecules-by-name.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByName/testsuite-selection-select-molecules-by-name.at \
-	$(srcdir)/./Selection/Molecules/testsuite-selection-molecules.at \
-	$(srcdir)/./Selection/Molecules/PushMoleculeSelection/testsuite-selection-push-molecule-selection.at \
-	$(srcdir)/./Selection/Molecules/MoleculeOfAtom/testsuite-selection-unselect-atoms-molecules.at \
-	$(srcdir)/./Selection/Molecules/MoleculeOfAtom/testsuite-selection-select-atoms-molecules.at \
-	$(srcdir)/./Selection/Molecules/AllMolecules/testsuite-selection-unselect-all-molecules.at \
-	$(srcdir)/./Selection/Molecules/AllMolecules/testsuite-selection-select-all-molecules.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-select-molecule-by-order-backward.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-select-molecule-by-order-forward.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-unselect-molecule-by-order-forward.at \
-	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-unselect-molecule-by-order-backward.at \
-	$(srcdir)/./Selection/Molecules/MoleculeById/testsuite-selection-unselect-molecule-by-id.at \
-	$(srcdir)/./Selection/Molecules/MoleculeById/testsuite-selection-select-molecule-by-id.at \
-	$(srcdir)/./Selection/Molecules/ClearMolecules/testsuite-selection-clear-molecules.at \
-	$(srcdir)/./Selection/Atoms/AtomByOrder/testsuite-selection-select-atom-by-order.at \
-	$(srcdir)/./Selection/Atoms/AtomByOrder/testsuite-selection-unselect-atom-by-order.at \
-	$(srcdir)/./Selection/Atoms/testsuite-selection-atoms.at \
-	$(srcdir)/./Selection/Atoms/AllAtomsOfMolecule/testsuite-selection-select-all-atoms-of-molecule.at \
-	$(srcdir)/./Selection/Atoms/AllAtomsOfMolecule/testsuite-selection-unselect-all-atoms-of-molecule.at \
-	$(srcdir)/./Selection/Atoms/AllAtoms/testsuite-selection-select-all-atoms.at \
-	$(srcdir)/./Selection/Atoms/AllAtoms/testsuite-selection-unselect-all-atoms.at \
-	$(srcdir)/./Selection/Atoms/AtomsInsideCuboid/testsuite-selection-select-atoms-inside-cuboid-with-defaults.at \
-	$(srcdir)/./Selection/Atoms/AtomsInsideCuboid/testsuite-selection-unselect-atoms-inside-cuboid.at \
-	$(srcdir)/./Selection/Atoms/AtomsInsideCuboid/testsuite-selection-select-atoms-inside-cuboid.at \
-	$(srcdir)/./Selection/Atoms/PushAtomSelection/testsuite-selection-push-atom-selection.at \
-	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-unselect-atoms-inside-tiny-sphere.at \
-	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-select-atoms-inside-sphere.at \
-	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-select-atoms-inside-tiny-sphere.at \
-	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-unselect-atoms-inside-sphere.at \
-	$(srcdir)/./Selection/Atoms/InvertAtoms/testsuite-selection-invert-atoms.at \
-	$(srcdir)/./Selection/Atoms/AtomByElement/testsuite-selection-unselect-atoms-by-element.at \
-	$(srcdir)/./Selection/Atoms/AtomByElement/testsuite-selection-select-atoms-by-element.at \
-	$(srcdir)/./Selection/Atoms/PopAtomSelection/testsuite-selection-pop-atom-selection.at \
-	$(srcdir)/./Selection/Atoms/ClearAtoms/testsuite-selection-clear-atoms.at \
-	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-unselect-atom-by-id-multiple.at \
-	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-select-atom-by-id.at \
-	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-unselect-atom-by-id.at \
-	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-select-atom-by-id-multiple.at \
-	$(srcdir)/./Selection/testsuite-selection.at \
-	$(srcdir)/./Molecules/StretchBond/testsuite-molecules-stretch-bond.at \
-	$(srcdir)/./Molecules/ForceAnnealing/testsuite-molecules-force-annealing.at \
-	$(srcdir)/./Molecules/testsuite-molecules.at \
-	$(srcdir)/./Molecules/LinearInterpolationofTrajectories/testsuite-molecules-linear-interpolation-of-trajectories.at \
-	$(srcdir)/./Molecules/RotateToPrincipalAxisSystem/testsuite-molecules-rotate-to-principal-axis-system.at \
-	$(srcdir)/./Molecules/VerletIntegration/testsuite-molecules-verlet-integration.at \
-	$(srcdir)/./Molecules/RotateAroundSelf/testsuite-molecules-rotate-around-self.at \
-	$(srcdir)/./Molecules/Copy/testsuite-molecules-copy-molecule.at \
-	$(srcdir)/./Molecules/Translation-Periodic/testsuite-molecules-translation-periodic.at \
-	$(srcdir)/./Molecules/Remove/testsuite-molecules-remove.at \
-	$(srcdir)/./Molecules/ChangeBondAngle/testsuite-molecules-change-bond-angle.at \
-	$(srcdir)/./Molecules/SaveAdjacency/testsuite-molecules-save-adjacency.at \
-	$(srcdir)/./Molecules/SaveSelectedMolecules/testsuite-molecules-save-selected-molecules.at \
-	$(srcdir)/./Molecules/SaveBonds/testsuite-molecules-save-bonds.at \
-	$(srcdir)/./Molecules/SaveTemperature/testsuite-molecules-save-temperature.at \
-	$(srcdir)/./Molecules/RotateAroundOrigin/testsuite-molecules-rotate-around-origin.at \
-	$(srcdir)/./Molecules/BondFile/testsuite-molecules-fragmentation-bond-file.at \
-	$(srcdir)/./Molecules/BondFile/testsuite-molecules-tremolo-dbond-file.at \
-	$(srcdir)/./Molecules/Translation/testsuite-molecules-translation.at \
-	$(srcdir)/./Analysis/testsuite-analysis.at \
-	$(srcdir)/./Analysis/SurfaceCorrelation/testsuite-analysis-surface-correlation.at \
-	$(srcdir)/./Analysis/PointCorrelation/testsuite-analysis-point-correlation.at \
-	$(srcdir)/./Analysis/DipoleAngularCorrelation/testsuite-analysis-dipole-angular-correlation.at \
-	$(srcdir)/./Analysis/PairCorrelation/testsuite-analysis-pair-correlation.at \
-	$(srcdir)/./Analysis/DipoleCorrelation-Empty/testsuite-analysis-dipole-correlation-empty.at \
-	$(srcdir)/./Analysis/DipoleAngularCorrelation-PeriodicBoundaries/testsuite-analysis-dipole-angular-correlation-periodic-boundaries.at \
-	$(srcdir)/./Analysis/DipoleCorrelation-DiscreteAngles/testsuite-analysis-dipole-correlation-discrete-angles.at \
-	$(srcdir)/./Analysis/PrincipalAxisSystem/testsuite-analysis-principal-axis-system.at \
-	$(srcdir)/./Analysis/PairCorrelation-RangeTest/testsuite-analysis-pair-correlation-range-test.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-capital_letters_element.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-empty.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-load.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-load-multiply.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-save.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-with-conects.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-CONECTs_empty_space.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-multiple-timesteps.at \
-	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-load-various.at \
-	$(srcdir)/./Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-setatomdata.at \
-	$(srcdir)/./Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-resetatomdata.at \
-	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-save-unique_usedfields.at \
-	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-save.at \
-	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-improper.at \
-	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-load-multiply.at \
-	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-empty.at \
-	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-load.at \
-	$(srcdir)/./Parser/Psi3/testsuite-parser-psi3-load-multiply.at \
+	$(srcdir)/./Fragmentation/FragmentMolecule/testsuite-fragmentation-fragment-molecule.at \
+	$(srcdir)/./Fragmentation/ParseSaveFragmentResults/testsuite-fragmentation-parse-save-fragment-results.at \
+	$(srcdir)/./Fragmentation/testsuite-fragmentation.at \
+	$(srcdir)/./Fragmentation/FragmentMolecule-MaxOrder/testsuite-fragmentation-fragment-molecule-maxorder.at \
+	$(srcdir)/./Fragmentation/StoreSaturatedFragment/testsuite-fragmentation-store-saturated-fragment.at \
+	$(srcdir)/./Fragmentation/FragmentationAutomation/testsuite-fragmentation-fragmentation-automation.at \
+	$(srcdir)/./Fragmentation/AnalyseFragmentationResults/testsuite-fragmentation-analyse-fragment-results.at \
+	$(srcdir)/./Atoms/ChangeElement/testsuite-atoms-change-element.at \
+	$(srcdir)/./Atoms/Add/testsuite-atoms-add.at \
+	$(srcdir)/./Atoms/Remove/testsuite-atoms-remove.at \
+	$(srcdir)/./Atoms/SaveSelectedAtoms/testsuite-atoms-save-selected-atoms.at \
+	$(srcdir)/./Atoms/RemoveCuboid/testsuite-atoms-remove-cuboid.at \
+	$(srcdir)/./Atoms/TranslationToOrigin/testsuite-atoms-translation-to-origin.at \
+	$(srcdir)/./Atoms/Saturate/testsuite-atoms-saturate-atoms-bonded_atoms.at \
+	$(srcdir)/./Atoms/Saturate/testsuite-atoms-saturate-atoms-carbon.at \
+	$(srcdir)/./Atoms/Saturate/testsuite-atoms-saturate-atoms-nitrogen.at \
+	$(srcdir)/./Atoms/RemoveSphere/testsuite-atoms-remove-sphere.at \
+	$(srcdir)/./Atoms/Mirror/testsuite-atoms-mirror.at \
+	$(srcdir)/./Atoms/testsuite-atoms.at \
+	$(srcdir)/./Atoms/Translation/testsuite-atoms-translation.at \
+	$(srcdir)/./Tesselation/BigConvex/testsuite-tesselation-big-convex-envelope.at \
+	$(srcdir)/./Tesselation/BigNonConvex/testsuite-tesselation-big-non-convex-envelope.at \
+	$(srcdir)/./Tesselation/NonConvex/testsuite-tesselation-non-convex-envelope.at \
+	$(srcdir)/./Tesselation/testsuite-tesselation.at \
+	$(srcdir)/./Tesselation/Convex/testsuite-tesselation-convex-envelope.at \
+	$(srcdir)/./Tesselation/TriangleMatcher/testsuite-tesselation-trianglematcher.at \
+	$(srcdir)/./Parser/SetParameters/Psi3/testsuite-parser-set-parameters-psi3-reference.at \
+	$(srcdir)/./Parser/SetParameters/Psi3/testsuite-parser-set-parameters-psi3-wavefunction.at \
+	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-maxiterations.at \
+	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-basis.at \
+	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-theory.at \
+	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-none.at \
+	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc.at \
+	$(srcdir)/./Parser/Psi3/testsuite-parser-psi3-load.at \
 	$(srcdir)/./Parser/Psi3/testsuite-parser-psi3-empty.at \
 	$(srcdir)/./Parser/Psi3/testsuite-parser-psi3-save.at \
-	$(srcdir)/./Parser/Psi3/testsuite-parser-psi3-load.at \
-	$(srcdir)/./Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-load.at \
-	$(srcdir)/./Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials.at \
-	$(srcdir)/./Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-save.at \
-	$(srcdir)/./Parser/SetParameters/Psi3/testsuite-parser-set-parameters-psi3-reference.at \
-	$(srcdir)/./Parser/SetParameters/Psi3/testsuite-parser-set-parameters-psi3-wavefunction.at \
-	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-theory.at \
-	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-none.at \
-	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-basis.at \
-	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc.at \
-	$(srcdir)/./Parser/SetParameters/Mpqc/testsuite-parser-set-parameters-mpqc-maxiterations.at \
+	$(srcdir)/./Parser/Psi3/testsuite-parser-psi3-load-multiply.at \
+	$(srcdir)/./Parser/Mpqc/testsuite-parser-mpqc-save.at \
 	$(srcdir)/./Parser/Mpqc/testsuite-parser-mpqc-empty.at \
 	$(srcdir)/./Parser/Mpqc/testsuite-parser-mpqc-load.at \
 	$(srcdir)/./Parser/Mpqc/testsuite-parser-mpqc-load-multiply.at \
-	$(srcdir)/./Parser/Mpqc/testsuite-parser-mpqc-save.at \
-	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-multiple-timesteps.at \
-	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-load-various.at \
-	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-save.at \
-	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-load-multiply.at \
-	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-load.at \
-	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-empty.at \
-	$(srcdir)/./Parser/Tremolo-Exttypes/testsuite-parser-tremolo-save-selected-atoms-as-exttypes.at \
-	$(srcdir)/./Parser/testsuite-parser.at \
+	$(srcdir)/./Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-resetatomdata.at \
+	$(srcdir)/./Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-setatomdata.at \
 	$(srcdir)/./Parser/Pcp/testsuite-parser-pcp-multiple-timesteps.at \
-	$(srcdir)/./Parser/Pcp/testsuite-parser-pcp-empty.at \
 	$(srcdir)/./Parser/Pcp/testsuite-parser-pcp-load-multiply.at \
 	$(srcdir)/./Parser/Pcp/testsuite-parser-pcp-load.at \
+	$(srcdir)/./Parser/Pcp/testsuite-parser-pcp-empty.at \
 	$(srcdir)/./Parser/Pcp/testsuite-parser-pcp-save.at \
-	$(srcdir)/./Fragmentation/AnalyseFragmentationResults/testsuite-fragmentation-analyse-fragment-results.at \
-	$(srcdir)/./Fragmentation/FragmentMolecule/testsuite-fragmentation-fragment-molecule.at \
-	$(srcdir)/./Fragmentation/FragmentationAutomation/testsuite-fragmentation-fragmentation-automation.at \
-	$(srcdir)/./Fragmentation/StoreSaturatedFragment/testsuite-fragmentation-store-saturated-fragment.at \
-	$(srcdir)/./Fragmentation/FragmentMolecule-MaxOrder/testsuite-fragmentation-fragment-molecule-maxorder.at \
-	$(srcdir)/./Fragmentation/testsuite-fragmentation.at \
-	$(srcdir)/./Bond/Add/testsuite-bond-add_multiple.at \
-	$(srcdir)/./Bond/Add/testsuite-bond-add.at \
-	$(srcdir)/./Bond/AdjacencyMatcher/testsuite-bond-adjacencymatcher.at \
-	$(srcdir)/./Bond/Remove/testsuite-bond-remove.at \
-	$(srcdir)/./Bond/Remove/testsuite-bond-remove_multiple.at \
-	$(srcdir)/./Bond/testsuite-bond.at \
+	$(srcdir)/./Parser/Tremolo-Exttypes/testsuite-parser-tremolo-save-selected-atoms-as-exttypes.at \
+	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-load-multiply.at \
+	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-load-various.at \
+	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-empty.at \
+	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-multiple-timesteps.at \
+	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-save.at \
+	$(srcdir)/./Parser/Xyz/testsuite-parser-xyz-load.at \
+	$(srcdir)/./Parser/testsuite-parser.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-multiple-timesteps.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-load.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-capital_letters_element.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-empty.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-with-conects.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-CONECTs_empty_space.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-load-various.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-load-multiply.at \
+	$(srcdir)/./Parser/Pdb/testsuite-parser-pdb-save.at \
+	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-load.at \
+	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-load-multiply.at \
+	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-save-unique_usedfields.at \
+	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-save.at \
+	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-empty.at \
+	$(srcdir)/./Parser/Tremolo/testsuite-parser-tremolo-improper.at \
+	$(srcdir)/./Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-save.at \
+	$(srcdir)/./Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-load.at \
+	$(srcdir)/./Analysis/PairCorrelation-RangeTest/testsuite-analysis-pair-correlation-range-test.at \
+	$(srcdir)/./Analysis/SurfaceCorrelation/testsuite-analysis-surface-correlation.at \
+	$(srcdir)/./Analysis/testsuite-analysis.at \
+	$(srcdir)/./Analysis/PrincipalAxisSystem/testsuite-analysis-principal-axis-system.at \
+	$(srcdir)/./Analysis/DipoleCorrelation-Empty/testsuite-analysis-dipole-correlation-empty.at \
+	$(srcdir)/./Analysis/PairCorrelation/testsuite-analysis-pair-correlation.at \
+	$(srcdir)/./Analysis/PointCorrelation/testsuite-analysis-point-correlation.at \
+	$(srcdir)/./Analysis/DipoleAngularCorrelation/testsuite-analysis-dipole-angular-correlation.at \
+	$(srcdir)/./Analysis/DipoleAngularCorrelation-PeriodicBoundaries/testsuite-analysis-dipole-angular-correlation-periodic-boundaries.at \
+	$(srcdir)/./Analysis/DipoleCorrelation-DiscreteAngles/testsuite-analysis-dipole-correlation-discrete-angles.at \
+	$(srcdir)/./Domain/RepeatBox/testsuite-domain-repeat-box.at \
+	$(srcdir)/./Domain/CenterInBox/testsuite-domain-center-in-box.at \
+	$(srcdir)/./Domain/ChangeBox/testsuite-domain-change-box.at \
+	$(srcdir)/./Domain/CenterOnEdge/testsuite-domain-center-on-edge.at \
+	$(srcdir)/./Domain/testsuite-domain.at \
+	$(srcdir)/./Domain/BoundInBox/testsuite-domain-bound-in-box.at \
+	$(srcdir)/./Domain/ScaleBox/testsuite-domain-scale-box.at \
+	$(srcdir)/./Domain/SetBoundaryConditions/testsuite-domain-set-boundary-conditions.at \
+	$(srcdir)/./Domain/AddEmptyBoundary/testsuite-domain-add-empty-boundary.at \
+	$(srcdir)/./Selection/Atoms/testsuite-selection-atoms.at \
+	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-unselect-atom-by-id.at \
+	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-select-atom-by-id.at \
+	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-select-atom-by-id-multiple.at \
+	$(srcdir)/./Selection/Atoms/AtomById/testsuite-selection-unselect-atom-by-id-multiple.at \
+	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-unselect-atoms-inside-sphere.at \
+	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-select-atoms-inside-sphere.at \
+	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-select-atoms-inside-tiny-sphere.at \
+	$(srcdir)/./Selection/Atoms/AtomsInsideSphere/testsuite-selection-unselect-atoms-inside-tiny-sphere.at \
+	$(srcdir)/./Selection/Atoms/PushAtomSelection/testsuite-selection-push-atom-selection.at \
+	$(srcdir)/./Selection/Atoms/AllAtoms/testsuite-selection-select-all-atoms.at \
+	$(srcdir)/./Selection/Atoms/AllAtoms/testsuite-selection-unselect-all-atoms.at \
+	$(srcdir)/./Selection/Atoms/AtomByElement/testsuite-selection-select-atoms-by-element.at \
+	$(srcdir)/./Selection/Atoms/AtomByElement/testsuite-selection-unselect-atoms-by-element.at \
+	$(srcdir)/./Selection/Atoms/InvertAtoms/testsuite-selection-invert-atoms.at \
+	$(srcdir)/./Selection/Atoms/ClearAtoms/testsuite-selection-clear-atoms.at \
+	$(srcdir)/./Selection/Atoms/PopAtomSelection/testsuite-selection-pop-atom-selection.at \
+	$(srcdir)/./Selection/Atoms/AllAtomsOfMolecule/testsuite-selection-select-all-atoms-of-molecule.at \
+	$(srcdir)/./Selection/Atoms/AllAtomsOfMolecule/testsuite-selection-unselect-all-atoms-of-molecule.at \
+	$(srcdir)/./Selection/Atoms/AtomsInsideCuboid/testsuite-selection-select-atoms-inside-cuboid.at \
+	$(srcdir)/./Selection/Atoms/AtomsInsideCuboid/testsuite-selection-select-atoms-inside-cuboid-with-defaults.at \
+	$(srcdir)/./Selection/Atoms/AtomsInsideCuboid/testsuite-selection-unselect-atoms-inside-cuboid.at \
+	$(srcdir)/./Selection/Atoms/AtomByOrder/testsuite-selection-select-atom-by-order.at \
+	$(srcdir)/./Selection/Atoms/AtomByOrder/testsuite-selection-unselect-atom-by-order.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByName/testsuite-selection-unselect-molecules-by-name.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByName/testsuite-selection-select-molecules-by-name.at \
+	$(srcdir)/./Selection/Molecules/MoleculeOfAtom/testsuite-selection-select-atoms-molecules.at \
+	$(srcdir)/./Selection/Molecules/MoleculeOfAtom/testsuite-selection-unselect-atoms-molecules.at \
+	$(srcdir)/./Selection/Molecules/AllMolecules/testsuite-selection-unselect-all-molecules.at \
+	$(srcdir)/./Selection/Molecules/AllMolecules/testsuite-selection-select-all-molecules.at \
+	$(srcdir)/./Selection/Molecules/testsuite-selection-molecules.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-unselect-molecule-by-order-backward.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-unselect-molecule-by-order-forward.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-select-molecule-by-order-forward.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByOrder/testsuite-selection-select-molecule-by-order-backward.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByFormula/testsuite-selection-select-molecules-by-formula.at \
+	$(srcdir)/./Selection/Molecules/MoleculeByFormula/testsuite-selection-unselect-molecules-by-formula.at \
+	$(srcdir)/./Selection/Molecules/MoleculeById/testsuite-selection-unselect-molecule-by-id.at \
+	$(srcdir)/./Selection/Molecules/MoleculeById/testsuite-selection-select-molecule-by-id.at \
+	$(srcdir)/./Selection/Molecules/InvertMolecules/testsuite-selection-invert-molecules.at \
+	$(srcdir)/./Selection/Molecules/PushMoleculeSelection/testsuite-selection-push-molecule-selection.at \
+	$(srcdir)/./Selection/Molecules/PopMoleculeSelection/testsuite-selection-pop-molecule-selection.at \
+	$(srcdir)/./Selection/Molecules/ClearMolecules/testsuite-selection-clear-molecules.at \
+	$(srcdir)/./Selection/testsuite-selection.at \
+	$(srcdir)/./Graph/testsuite-graph.at \
+	$(srcdir)/./Graph/CreateAdjacency/testsuite-graph-create-adjacency.at \
 	$(srcdir)/./Graph/DepthFirstSearch/testsuite-graph-depth-first-search.at \
+	$(srcdir)/./Graph/DestroyAdjacency/testsuite-graph-destroy-adjacency.at \
 	$(srcdir)/./Graph/SubgraphDissection-BoundaryConditions/testsuite-graph-subgraph-dissection_boundary-conditions.at \
 	$(srcdir)/./Graph/SubgraphDissection/testsuite-graph-subgraph-dissection.at \
-	$(srcdir)/./Graph/DestroyAdjacency/testsuite-graph-destroy-adjacency.at \
-	$(srcdir)/./Graph/testsuite-graph.at \
-	$(srcdir)/./Graph/CreateAdjacency/testsuite-graph-create-adjacency.at \
+	$(srcdir)/./RandomNumbers/testsuite-randomnumbers.at \
+	$(srcdir)/./RandomNumbers/Engine/testsuite-set-random-number-engine.at \
+	$(srcdir)/./RandomNumbers/Distribution/testsuite-set-random-number-distribution.at \
+	$(srcdir)/./Potential/testsuite-potential.at \
+	$(srcdir)/./Potential/SaveParsePotentials/testsuite-potential-save-parse-potentials.at \
+	$(srcdir)/./Potential/SaveParseParticleParameters/testsuite-potential-save-parse-particle-parameters.at \
+	$(srcdir)/./Potential/FitPotential/testsuite-potential-fit-potential.at \
 	$(srcdir)/./Potential/FitPartialCharges/testsuite-potential-fit-partial-charges.at \
-	$(srcdir)/./Potential/testsuite-potential.at \
-	$(srcdir)/./Potential/FitPotential/testsuite-potential-fit-potential.at \
-	$(srcdir)/./Filling/testsuite-filling.at \
+	$(srcdir)/./Bond/Add/testsuite-bond-add.at \
+	$(srcdir)/./Bond/Add/testsuite-bond-add_multiple.at \
+	$(srcdir)/./Bond/Remove/testsuite-bond-remove_multiple.at \
+	$(srcdir)/./Bond/Remove/testsuite-bond-remove.at \
+	$(srcdir)/./Bond/testsuite-bond.at \
+	$(srcdir)/./Bond/SetDegree/testsuite-bond-set-degree.at \
+	$(srcdir)/./Bond/SetDegree/testsuite-bond-set-degree_multiple.at \
+	$(srcdir)/./Bond/AdjacencyMatcher/testsuite-bond-adjacencymatcher.at \
+	$(srcdir)/./WorldTime/SetWorldTime/testsuite-worldtime-set-world-time.at \
+	$(srcdir)/./WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at \
+	$(srcdir)/./WorldTime/testsuite-worldtime.at \
+	$(srcdir)/./Molecules/SaveBonds/testsuite-molecules-save-bonds.at \
+	$(srcdir)/./Molecules/RotateToPrincipalAxisSystem/testsuite-molecules-rotate-to-principal-axis-system.at \
+	$(srcdir)/./Molecules/LinearInterpolationofTrajectories/testsuite-molecules-linear-interpolation-of-trajectories.at \
+	$(srcdir)/./Molecules/BondFile/testsuite-molecules-tremolo-dbond-file.at \
+	$(srcdir)/./Molecules/BondFile/testsuite-molecules-fragmentation-bond-file.at \
+	$(srcdir)/./Molecules/ChangeBondAngle/testsuite-molecules-change-bond-angle.at \
+	$(srcdir)/./Molecules/ForceAnnealing/testsuite-molecules-force-annealing.at \
+	$(srcdir)/./Molecules/SaveSelectedMolecules/testsuite-molecules-save-selected-molecules.at \
+	$(srcdir)/./Molecules/Remove/testsuite-molecules-remove.at \
+	$(srcdir)/./Molecules/SaveTemperature/testsuite-molecules-save-temperature.at \
+	$(srcdir)/./Molecules/RotateAroundSelf/testsuite-molecules-rotate-around-self.at \
+	$(srcdir)/./Molecules/SaveAdjacency/testsuite-molecules-save-adjacency.at \
+	$(srcdir)/./Molecules/Translation-Periodic/testsuite-molecules-translation-periodic.at \
+	$(srcdir)/./Molecules/VerletIntegration/testsuite-molecules-verlet-integration.at \
+	$(srcdir)/./Molecules/Copy/testsuite-molecules-copy-molecule.at \
+	$(srcdir)/./Molecules/StretchBond/testsuite-molecules-stretch-bond.at \
+	$(srcdir)/./Molecules/RotateAroundOrigin/testsuite-molecules-rotate-around-origin.at \
+	$(srcdir)/./Molecules/testsuite-molecules.at \
+	$(srcdir)/./Molecules/Translation/testsuite-molecules-translation.at \
+	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-nowhere.at \
+	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-everywhere.at \
+	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-cube.at \
+	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-cylinder.at \
+	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-sphere.at \
+	$(srcdir)/./Filling/RegularGrid/testsuite-fill-regular-grid-with-surface.at \
+	$(srcdir)/./Filling/RegularGrid/testsuite-fill-regular-grid.at \
 	$(srcdir)/./Filling/RegularGrid/testsuite-fill-regular-grid-with-minimum-distance-to-surface.at \
-	$(srcdir)/./Filling/RegularGrid/testsuite-fill-regular-grid.at \
-	$(srcdir)/./Filling/RegularGrid/testsuite-fill-regular-grid-with-surface.at \
-	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-cube.at \
+	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-cylinder.at \
 	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-micelle.at \
-	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-cylinder.at \
-	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-sphere.at \
 	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-everywhere.at \
 	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-nowhere.at \
-	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-sphere.at \
-	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-cylinder.at \
-	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-cube.at \
-	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-everywhere.at \
-	$(srcdir)/./Filling/FillVolume/testsuite-fill-volume-nowhere.at \
+	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-cube.at \
+	$(srcdir)/./Filling/FillSurface/testsuite-fill-surface-sphere.at \
+	$(srcdir)/./Filling/testsuite-filling.at \
 	$(srcdir)/./Filling/SuspendInWater/testsuite-suspend-in-water.at \
-	$(srcdir)/./Atoms/testsuite-atoms.at \
-	$(srcdir)/./Atoms/TranslationToOrigin/testsuite-atoms-translation-to-origin.at \
-	$(srcdir)/./Atoms/Add/testsuite-atoms-add.at \
-	$(srcdir)/./Atoms/RemoveCuboid/testsuite-atoms-remove-cuboid.at \
-	$(srcdir)/./Atoms/ChangeElement/testsuite-atoms-change-element.at \
-	$(srcdir)/./Atoms/Remove/testsuite-atoms-remove.at \
-	$(srcdir)/./Atoms/RemoveSphere/testsuite-atoms-remove-sphere.at \
-	$(srcdir)/./Atoms/Mirror/testsuite-atoms-mirror.at \
-	$(srcdir)/./Atoms/Saturate/testsuite-atoms-saturate_carbon.at \
-	$(srcdir)/./Atoms/Saturate/testsuite-atoms-saturate_nitrogen.at \
-	$(srcdir)/./Atoms/SaveSelectedAtoms/testsuite-atoms-save-selected-atoms.at \
-	$(srcdir)/./Atoms/Translation/testsuite-atoms-translation.at \
-	$(srcdir)/./RandomNumbers/Distribution/testsuite-set-random-number-distribution.at \
-	$(srcdir)/./RandomNumbers/Engine/testsuite-set-random-number-engine.at \
-	$(srcdir)/./RandomNumbers/testsuite-randomnumbers.at \
-	$(srcdir)/./Domain/AddEmptyBoundary/testsuite-domain-add-empty-boundary.at \
-	$(srcdir)/./Domain/ScaleBox/testsuite-domain-scale-box.at \
-	$(srcdir)/./Domain/RepeatBox/testsuite-domain-repeat-box.at \
-	$(srcdir)/./Domain/CenterOnEdge/testsuite-domain-center-on-edge.at \
-	$(srcdir)/./Domain/SetBoundaryConditions/testsuite-domain-set-boundary-conditions.at \
-	$(srcdir)/./Domain/testsuite-domain.at \
-	$(srcdir)/./Domain/CenterInBox/testsuite-domain-center-in-box.at \
-	$(srcdir)/./Domain/BoundInBox/testsuite-domain-bound-in-box.at \
-	$(srcdir)/./Domain/ChangeBox/testsuite-domain-change-box.at \
-	$(srcdir)/./Tesselation/testsuite-tesselation.at \
-	$(srcdir)/./Tesselation/NonConvex/testsuite-tesselation-non-convex-envelope.at \
-	$(srcdir)/./Tesselation/TriangleMatcher/testsuite-tesselation-trianglematcher.at \
-	$(srcdir)/./Tesselation/BigNonConvex/testsuite-tesselation-big-non-convex-envelope.at \
-	$(srcdir)/./Tesselation/BigConvex/testsuite-tesselation-big-convex-envelope.at \
-	$(srcdir)/./Tesselation/Convex/testsuite-tesselation-convex-envelope.at
+	$(srcdir)/./Options/Warranty/testsuite-options-warranty.at \
+	$(srcdir)/./Options/Verbosity/testsuite-options-verbosity.at \
+	$(srcdir)/./Options/BondLengthTable/testsuite-options-bond-length-table.at \
+	$(srcdir)/./Options/SetDefaultName/testsuite-options-set-default-name.at \
+	$(srcdir)/./Options/ElementsDb/testsuite-options-elements-db.at \
+	$(srcdir)/./Options/Help/testsuite-options-help.at \
+	$(srcdir)/./Options/testsuite-options.at \
+	$(srcdir)/./Options/FastParsing/testsuite-options-fast-parsing.at
 
 DISTCLEANFILES = atconfig
Index: tests/GuiChecks/Molecules/Copy/testsuite-molecules-copy-molecule.at
===================================================================
--- tests/GuiChecks/Molecules/Copy/testsuite-molecules-copy-molecule.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Molecules/Copy/testsuite-molecules-copy-molecule.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -33,5 +33,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Molecules/Copy/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials tensid.potentials -i $file --select-molecule-by-id 0 --copy-molecule --position "0,0,10" --no-dry-run --store-session session-molecules-copy-molecule.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters tensid.potentials -i $file --select-molecule-by-id 0 --copy-molecule --position "0,0,10" --no-dry-run --store-session session-molecules-copy-molecule.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-molecules-copy-molecule.py >session-molecules-copy-molecule_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-molecules-copy-molecule_new.py], 0, [stdout], [stderr])
@@ -56,5 +56,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Molecules/Copy/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials tensid.potentials -i $file --select-molecule-by-id 0 --copy-molecule --position "0,0,10" --undo --no-dry-run --store-session session-molecules-copy-molecule.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters tensid.potentials -i $file --select-molecule-by-id 0 --copy-molecule --position "0,0,10" --undo --no-dry-run --store-session session-molecules-copy-molecule.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-molecules-copy-molecule.py >session-molecules-copy-molecule_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-molecules-copy-molecule_new.py], 0, [stdout], [stderr])
@@ -79,5 +79,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Molecules/Copy/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials tensid.potentials -i $file --select-molecule-by-id 0 --copy-molecule --position "0,0,10" --undo --redo --no-dry-run --store-session session-molecules-copy-molecule.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters tensid.potentials -i $file --select-molecule-by-id 0 --copy-molecule --position "0,0,10" --undo --redo --no-dry-run --store-session session-molecules-copy-molecule.py --session-type python], 0, [stdout], [stderr])
 AT_CHECK([grep -v "Command.*DryRun" session-molecules-copy-molecule.py >session-molecules-copy-molecule_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-molecules-copy-molecule_new.py], 0, [stdout], [stderr])
Index: tests/GuiChecks/Options/testsuite-options.at
===================================================================
--- tests/GuiChecks/Options/testsuite-options.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Options/testsuite-options.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -39,7 +39,4 @@
 m4_include([Options/SetDefaultName/testsuite-options-set-default-name.at])
 
-# world time
-m4_include([Options/SetWorldTime/testsuite-options-set-world-time.at])
-
 # test that all desire parameters and count how many complain
 
Index: tests/GuiChecks/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-load.at
===================================================================
--- tests/GuiChecks/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-load.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-load.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -20,5 +20,5 @@
 
 AT_SETUP([Parser - load tremolo file with potentials])
-AT_KEYWORDS([parser tremolo load parse-tremolo-potentials])
+AT_KEYWORDS([parser tremolo load parse-particle-parameters])
 
 file=argon.data
@@ -26,5 +26,5 @@
 AT_CHECK([/bin/cp ${abs_top_srcdir}/tests/regression/Parser/Tremolo-Potentials/pre/argon.potentials .], 0, [ignore], [ignore])
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --dry-run -v 2 --parse-tremolo-potentials argon.potentials -i $file --no-dry-run --store-session session-parser-tremolo-potentials-load.py --session-type python], 0, [stdout], [ignore])
+AT_CHECK([../../molecuilder --dry-run -v 2 --parse-particle-parameters argon.potentials -i $file --no-dry-run --store-session session-parser-tremolo-potentials-load.py --session-type python], 0, [stdout], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-parser-tremolo-potentials-load.py >session-parser-tremolo-potentials-load_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-parser-tremolo-potentials-load_new.py], 0, [stdout], [ignore])
Index: tests/GuiChecks/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-save.at
===================================================================
--- tests/GuiChecks/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-save.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-save.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -19,8 +19,8 @@
 
 AT_SETUP([Parser - saving tremolo file from loaded xyz file with potentials])
-AT_KEYWORDS([parser tremolo save parse-tremolo-potentials])
+AT_KEYWORDS([parser tremolo save parse-particle-parameters])
 
 AT_CHECK([/bin/cp ${abs_top_srcdir}/tests/regression/Parser/Tremolo-Potentials/pre/argon.potentials .], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run -v 2 --parse-tremolo-potentials argon.potentials -i test.data -l ${abs_top_srcdir}/tests/regression/Parser/Tremolo-Potentials/pre/test.xyz --no-dry-run --store-session session-parser-tremolo-potentials-save.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -v 2 --parse-particle-parameters argon.potentials -i test.data -o tremolo -l ${abs_top_srcdir}/tests/regression/Parser/Tremolo-Potentials/pre/test.xyz --no-dry-run --store-session session-parser-tremolo-potentials-save.py --session-type python], 0, [ignore], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-parser-tremolo-potentials-save.py >session-parser-tremolo-potentials-save_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-parser-tremolo-potentials-save_new.py], 0, [ignore], [ignore])
Index: tests/GuiChecks/Parser/Tremolo/testsuite-parser-tremolo-improper.at
===================================================================
--- tests/GuiChecks/Parser/Tremolo/testsuite-parser-tremolo-improper.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Parser/Tremolo/testsuite-parser-tremolo-improper.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -36,10 +36,10 @@
 
 AT_SETUP([Parser - loading tremolo file with improper])
-AT_KEYWORDS([parser input load tremolo improper parse-tremolo-potentials])
+AT_KEYWORDS([parser input load tremolo improper parse-particle-parameters])
 
 prefile=bio.data
 file=bio2.data
 AT_CHECK([/bin/cp ${abs_top_srcdir}/tests/regression/Parser/Tremolo/pre/$prefile $prefile], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run --parse-tremolo-potentials ${abs_top_srcdir}/tests/regression/Parser/Tremolo/pre/bio.potentials -i $file -o tremolo -l $prefile --no-dry-run --store-session session-parser-tremolo-improper.py --session-type python], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run --parse-particle-parameters ${abs_top_srcdir}/tests/regression/Parser/Tremolo/pre/bio.potentials -i $file -o tremolo -l $prefile --no-dry-run --store-session session-parser-tremolo-improper.py --session-type python], 0, [ignore], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-parser-tremolo-improper.py >session-parser-tremolo-improper_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-parser-tremolo-improper_new.py], 0, [ignore], [ignore])
Index: tests/GuiChecks/Parser/testsuite-parser.at
===================================================================
--- tests/GuiChecks/Parser/testsuite-parser.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Parser/testsuite-parser.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -71,5 +71,4 @@
 
 # parsing tremolo with .potentials
-m4_include([Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials.at])
 m4_include([Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-load.at])
 m4_include([Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-save.at])
Index: tests/GuiChecks/Potential/FitPartialCharges/testsuite-potential-fit-partial-charges.at
===================================================================
--- tests/GuiChecks/Potential/FitPartialCharges/testsuite-potential-fit-partial-charges.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Potential/FitPartialCharges/testsuite-potential-fit-partial-charges.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -18,20 +18,41 @@
 ### fit partial particle charges
 
-# the potential has been generated by:
-# ./molecuilder -i pre/water.pdb --center-in-box "8,0,8,0,0,8" --select-all-atoms --fragment-molecule BondFragment --distance 2 --order 1 --fragment-automation --server-address 127.0.0.1 --server-port 1026 --DoLongrange 1 --grid 4 --DoPrintDebug 1 --DoValenceOnly 0 --analyse-fragment-results --store-grids 1 --save-homologies homology_grid_4_full.dat
+AT_SETUP([Potential - Fit partial charges - atomfragment check])
+AT_KEYWORDS([potential parse-homologies fit-partial-charges save-particle-parameters])
+AT_SKIP_IF([../../molecuilder --help fit-partial-charges; if test $? -eq 5; then /bin/true; else /bin/false; fi])
+
+input=water.pdb
+homologyfile=homology_grid.dat
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPartialCharges/pre/$input $input], 0)
+AT_CHECK([chmod u+w $input], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPartialCharges/pre/$homologyfile $homologyfile], 0)
+AT_CHECK([chmod u+w $homologyfile], 0, [ignore], [ignore])
+# fails because atomFragments has not been parsed
+AT_CHECK([../../molecuilder --dry-run -l $input --select-all-atoms --parse-homologies $homologyfile --fit-partial-charges --radius 1.5 --save-particle-parameters water.particles --no-dry-run --store-session session-potential-fit-partial-charges.py --session-type python], 0, [stdout], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-potential-fit-partial-charges.py >session-potential-fit-partial-charges_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-potential-fit-partial-charges_new.py], 5, [stdout], [ignore])
+
+AT_CLEANUP
 
 AT_SETUP([Potential - Fit partial charges to water])
-AT_KEYWORDS([potential parse-homologies fit-partial-charges])
+AT_KEYWORDS([potential parse-homologies fit-partial-charges save-particle-parameters])
 AT_SKIP_IF([../../molecuilder --help fit-partial-charges; if test $? -eq 5; then /bin/true; else /bin/false; fi])
 
 # homology file created with water.pdb and as follows:
-# molecuilder -i water.pdb --select-all-atoms --fragment-molecule --distance 2 --order 1 --fragment-automation --server-address 127.0.0.1 --server-port 1026 --DoLongrange 1 --grid 5 --store-grids 1 --analyse-fragment-results --save-homologies homology_grid.dat
-file=homology_grid.dat
-AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPartialCharges/pre/$file $file], 0)
-AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run --parse-homologies $file --fit-partial-charges --fragment-charges 8 1 1 --radius 1.5 --no-dry-run --store-session session-potential-fit-partial-charges.py --session-type python], 0, [stdout], [ignore])
+# molecuilder -i water.pdb --select-all-atoms --fragment-molecule --distance 2 --order 1 --fragment-automation --server-address 127.0.0.1 --server-port 1026 --DoLongrange 1 --grid 5 --store-grids 1 --analyse-fragment-results --save-homologies homology_grid.dat --save-atom-fragments atomfragments.dat
+input=water.pdb
+homologyfile=homology_grid.dat
+atomfragmentsfile=atomfragments.dat
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPartialCharges/pre/$input $input], 0)
+AT_CHECK([chmod u+w $input], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPartialCharges/pre/$homologyfile $homologyfile], 0)
+AT_CHECK([chmod u+w $homologyfile], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPartialCharges/pre/$atomfragmentsfile $atomfragmentsfile], 0)
+AT_CHECK([chmod u+w $atomfragmentsfile], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run -l $input --select-all-atoms --parse-homologies $homologyfile --parse-atom-fragments $atomfragmentsfile --fit-partial-charges --radius 1.5 --save-particle-parameters water.particles --no-dry-run --store-session session-potential-fit-partial-charges.py --session-type python], 0, [stdout], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-potential-fit-partial-charges.py >session-potential-fit-partial-charges_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-potential-fit-partial-charges_new.py], 0, [stdout], [ignore])
 # check that L_2 error is below 1e-6
+AT_CHECK([diff water.particles ${abs_top_srcdir}/tests/regression/Potential/FitPartialCharges/post/water.particles], 0)
 
 AT_CLEANUP
Index: tests/GuiChecks/Potential/FitPotential/testsuite-potential-fit-potential.at
===================================================================
--- tests/GuiChecks/Potential/FitPotential/testsuite-potential-fit-potential.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Potential/FitPotential/testsuite-potential-fit-potential.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -22,4 +22,6 @@
 AT_KEYWORDS([potential parse-homologies fit-potential morse])
 AT_SKIP_IF([../../molecuilder --help fit-potential; if test $? -eq 5; then /bin/true; else /bin/false; fi])
+# homology files probably originate from Labspace/PotentialFitting/WaterAngle
+# recreate homology file: PYTHONPATH=... /usr/bin/python .../tests/regression/Potential/FitPotential/pre/measurement_function.py length_common.pdb 2 0 0 5 4 127.0.0.1 2050 6-311G* 1 2. 10 .../share/molecuilder/data/bondtables/bondtable.dat
 
 file=length_homology.dat
@@ -31,5 +33,5 @@
 # check that L_2 error is below 1e-6
 # check parameters to printed precision
-AT_CHECK([grep "morse:.*particle_type1=8,.*particle_type2=1,.*spring_constant=1.2.*,.*equilibrium_distance=1.7.*,.*dissociation_energy=0.19.*;" length.potentials], 0, [ignore], [ignore])
+AT_CHECK([grep "morse:.*particle_type1=8,.*particle_type2=1,.*spring_constant=1.3.*,.*equilibrium_distance=1.7.*,.*dissociation_energy=0.19.*;" length.potentials], 0, [ignore], [ignore])
 
 AT_CLEANUP
@@ -38,14 +40,16 @@
 AT_KEYWORDS([potential parse-homologies fit-potential harmonic])
 AT_SKIP_IF([../../molecuilder --help fit-potential; if test $? -eq 5; then /bin/true; else /bin/false; fi])
+# homology files probably originate from Labspace/PotentialFitting/Water
+# see morse fitting
 
-file=harmonic_homology.dat
+file=length_homology.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPotential/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run 	--parse-homologies $file 	--set-random-number-engine "lagged_fibonacci607" 		--random-number-engine-parameters "seed=1;" 	--set-random-number-distribution "uniform_real" 		--random-number-distribution-parameters "min=0;max=1;" 	--fit-potential 		--potential-type "harmonic_bond" 		--potential-charges 8 1 		--fragment-charges 1 8 1 		--set-threshold 5e-6 	--save-potentials harmonic.potentials --no-dry-run --store-session session-potential-fit-potential.py --session-type python], 0, [stdout], [ignore])
+AT_CHECK([../../molecuilder --dry-run 	--parse-homologies $file 	--set-random-number-engine "lagged_fibonacci607" 		--random-number-engine-parameters "seed=1;" 	--set-random-number-distribution "uniform_real" 		--random-number-distribution-parameters "min=0;max=1;" 	--fit-potential 		--potential-type "harmonic_bond" 		--potential-charges 8 1 		--fragment-charges 1 8 1 		--set-threshold 6e-4 	--save-potentials harmonic.potentials --no-dry-run --store-session session-potential-fit-potential.py --session-type python], 0, [stdout], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-potential-fit-potential.py >session-potential-fit-potential_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-potential-fit-potential_new.py], 0, [stdout], [ignore])
-# check that L_2 error is below 5e-6
+# check that L_2 error is below 6e-4
 # check parameters to printed precision
-AT_CHECK([grep "harmonic_bond:.*particle_type1=8,.*particle_type2=1,.*spring_constant=0.29.*,.*equilibrium_distance=1.8.*;" harmonic.potentials], 0, [ignore], [ignore])
+AT_CHECK([grep "harmonic_bond:.*particle_type1=8,.*particle_type2=1,.*spring_constant=0.4.*,.*equilibrium_distance=1.8.*;" harmonic.potentials], 0, [ignore], [ignore])
 
 AT_CLEANUP
@@ -54,4 +58,6 @@
 AT_KEYWORDS([potential parse-homologies fit-potential harmonic_angle])
 AT_SKIP_IF([../../molecuilder --help fit-potential; if test $? -eq 5; then /bin/true; else /bin/false; fi])
+# homology files probably originate from Labspace/PotentialFitting/WaterAngle
+# recreate homology file: PYTHONPATH=... /usr/bin/python .../tests/regression/Potential/FitPotential/pre/measurement_function.py angle_common.pdb 2 0 0 5 4 127.0.0.1 2050 6-311G* 1 2. 10 .../share/molecuilder/data/bondtables/bondtable.dat
 
 file=angle_homology.dat
@@ -63,5 +69,5 @@
 # check that L_2 error is below 1e-6
 # check parameters to printed precision
-AT_CHECK([grep "harmonic_angle:.*particle_type1=1,.*particle_type2=8,.*particle_type3=1,.*spring_constant=0.10.*,.*equilibrium_distance=-0.27.*;" angle.potentials], 0, [ignore], [ignore])
+AT_CHECK([grep "harmonic_angle:.*particle_type1=1,.*particle_type2=8,.*particle_type3=1,.*spring_constant=0.10.*,.*equilibrium_distance=-0.29.*;" angle.potentials], 0, [ignore], [ignore])
 
 AT_CLEANUP
@@ -70,4 +76,6 @@
 AT_KEYWORDS([potential parse-homologies fit-potential torsion])
 AT_SKIP_IF([../../molecuilder --help fit-potential; if test $? -eq 5; then /bin/true; else /bin/false; fi])
+# homology files probably originate from Labspace/PotentialFitting/Butane
+# recreate homology file: PYTHONPATH=... /usr/bin/python .../tests/regression/Potential/FitPotential/pre/measurement_function.py torsion_common.pdb 4 0 0 5 4 127.0.0.1 2050 6-311G* 1 2. 10 .../share/molecuilder/data/bondtables/bondtable.dat
 
 file=torsion_homology.dat
@@ -86,15 +94,17 @@
 AT_KEYWORDS([potential parse-homologies fit-potential improper])
 AT_SKIP_IF([../../molecuilder --help fit-potential; if test $? -eq 5; then /bin/true; else /bin/false; fi])
+# homology files probably originate from Labspace/PotentialFitting/Ammonia
+# recreate homology file: PYTHONPATH=... /usr/bin/python .../tests/regression/Potential/FitPotential/pre/measurement_function.py improper_common.pdb 2 0 0 5 4 127.0.0.1 2050 6-311G* 1 2. 10 .../share/molecuilder/data/bondtables/bondtable.dat
 
 file=improper_homology.dat
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/FitPotential/pre/$file $file], 0)
 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --dry-run 	--parse-homologies $file 	--set-random-number-engine "lagged_fibonacci607" 		--random-number-engine-parameters "seed=1;" 	--set-random-number-distribution "uniform_real" 		--random-number-distribution-parameters "min=0;max=1;" 	--fit-potential 		--potential-type "improper" 		--potential-charges 1 7 1 1 		--fragment-charges 7 1 1 1 		--set-threshold 3e-4 	--save-potentials improper.potentials --no-dry-run --store-session session-potential-fit-potential.py --session-type python], 0, [stdout], [ignore])
+AT_CHECK([../../molecuilder --dry-run 	--parse-homologies $file 	--set-random-number-engine "lagged_fibonacci607" 		--random-number-engine-parameters "seed=1;" 	--set-random-number-distribution "uniform_real" 		--random-number-distribution-parameters "min=0;max=1;" 	--fit-potential 		--potential-type "improper" 		--potential-charges 7 1 1 1 		--fragment-charges 7 1 1 1 		--set-threshold 3e-4 	--save-potentials improper.potentials --no-dry-run --store-session session-potential-fit-potential.py --session-type python], 0, [stdout], [ignore])
 AT_CHECK([grep -v "Command.*DryRun" session-potential-fit-potential.py >session-potential-fit-potential_new.py], 0, [ignore], [ignore])
 AT_CHECK([../../molecuilderguitest session-potential-fit-potential_new.py], 0, [stdout], [ignore])
 # check that L_2 error is below 3e-4
 # check parameters to printed precision
-AT_CHECK([grep "improper:.*particle_type1=1,.*particle_type2=7,.*particle_type3=1,.*particle_type4=1,.*spring_constant=.*,.*equilibrium_distance=.*;" improper.potentials], 0, [ignore], [ignore])
-#AT_CHECK([grep "improper:.*particle_type1=1,.*particle_type2=7,.*particle_type3=1,.*particle_type4=1,.*spring_constant=1.02.*,.*equilibrium_distance=0.85.*;" improper.potentials], 0, [ignore], [ignore])
+AT_CHECK([grep "improper:.*particle_type1=7,.*particle_type2=1,.*particle_type3=1,.*particle_type4=1,.*spring_constant=.*,.*equilibrium_distance=.*;" improper.potentials], 0, [ignore], [ignore])
+#AT_CHECK([grep "improper:.*particle_type1=7,.*particle_type2=1,.*particle_type3=1,.*particle_type4=1,.*spring_constant=1.02.*,.*equilibrium_distance=0.85.*;" improper.potentials], 0, [ignore], [ignore])
 
 AT_CLEANUP
@@ -103,4 +113,6 @@
 AT_KEYWORDS([potential parse-homologies fit-potential lennardjones])
 AT_SKIP_IF([../../molecuilder --help fit-potential; if test $? -eq 5; then /bin/true; else /bin/false; fi])
+# homology files probably originate from Labspace/PotentialFitting/Argon
+# recreate homology file: PYTHONPATH=... /usr/bin/python .../tests/regression/Potential/FitPotential/pre/measurement_function.py lj_common.pdb 2 0 0 5 4 127.0.0.1 2050 6-311G* 2 11. 10 .../share/molecuilder/data/bondtables/bondtable.dat
 
 file=lj_homology.dat
Index: tests/GuiChecks/Potential/SaveParseParticleParameters/testsuite-potential-save-parse-particle-parameters.at
===================================================================
--- tests/GuiChecks/Potential/SaveParseParticleParameters/testsuite-potential-save-parse-particle-parameters.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Potential/SaveParseParticleParameters/testsuite-potential-save-parse-particle-parameters.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,31 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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/>.
+#
+### parse and save some particle parameters
+
+AT_SETUP([Potential - save and parse particle file])
+AT_KEYWORDS([potential parse-particle-parameters save-particle-parameters])
+
+file=harmonic.particles
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/SaveParseParticleParameters/pre/$file $file], 0)
+AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run 	--parse-particle-parameters $file 	--save-particle-parameters harmonic_new.particles --no-dry-run --store-session session-potential-save-parse-particle-parameters.py --session-type python], 0, [stdout], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-potential-save-parse-particle-parameters.py >session-potential-save-parse-particle-parameters_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-potential-save-parse-particle-parameters_new.py], 0, [stdout], [ignore])
+AT_CHECK([diff $file harmonic_new.particles], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Potential/SaveParsePotentials/testsuite-potential-save-parse-potentials.at
===================================================================
--- tests/GuiChecks/Potential/SaveParsePotentials/testsuite-potential-save-parse-potentials.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/Potential/SaveParsePotentials/testsuite-potential-save-parse-potentials.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,31 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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/>.
+#
+### parse and save some potentials
+
+AT_SETUP([Potential - save and parse potential file])
+AT_KEYWORDS([potential parse-potentials save-potentials])
+
+file=harmonic.potentials
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Potential/SaveParsePotentials/pre/$file $file], 0)
+AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder --dry-run 	--parse-potentials $file 	--save-potentials harmonic_new.potentials --no-dry-run --store-session session-potential-save-parse-potentials.py --session-type python], 0, [stdout], [ignore])
+AT_CHECK([grep -v "Command.*DryRun" session-potential-save-parse-potentials.py >session-potential-save-parse-potentials_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-potential-save-parse-potentials_new.py], 0, [stdout], [ignore])
+AT_CHECK([diff $file harmonic_new.potentials], 0, [ignore], [ignore])
+
+AT_CLEANUP
Index: tests/GuiChecks/Potential/testsuite-potential.at
===================================================================
--- tests/GuiChecks/Potential/testsuite-potential.at	(revision cb20c09b195f295f42c00057cfe8d57f332c6572)
+++ tests/GuiChecks/Potential/testsuite-potential.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -19,7 +19,13 @@
 AT_BANNER([MoleCuilder - potential tests])
 
+# parsing and saving potential file
+m4_include([Potential/SaveParsePotentials/testsuite-potential-save-parse-potentials.at])
+
 # fitting potential to fragment results
 m4_include([Potential/FitPotential/testsuite-potential-fit-potential.at])
 
+# parsing and saving particles file
+m4_include([Potential/SaveParseParticleParameters/testsuite-potential-save-parse-particle-parameters.at])
+
 # fitting particle charges to fragment results
 m4_include([Potential/FitPartialCharges/testsuite-potential-fit-partial-charges.at])
Index: tests/GuiChecks/WorldTime/SetWorldTime/testsuite-worldtime-set-world-time.at
===================================================================
--- tests/GuiChecks/WorldTime/SetWorldTime/testsuite-worldtime-set-world-time.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/WorldTime/SetWorldTime/testsuite-worldtime-set-world-time.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,48 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2008-2012 University of Bonn
+#    Copyright (C) 2016 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/>.
+#
+### set world time
+
+AT_SETUP([Worldtime - set])
+AT_KEYWORDS([worldtime set-world-time])
+
+AT_CHECK([../../molecuilder --dry-run --set-world-time 10 --no-dry-run --store-session session-worldtime-set-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-set-world-time.py >session-worldtime-set-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-set-world-time_new.py], 0, [stdout], [stderr])
+
+AT_CLEANUP
+
+
+AT_SETUP([Worldtime - set with Undo])
+AT_KEYWORDS([worldtime set-world-time undo])
+
+AT_CHECK([../../molecuilder --dry-run --set-world-time 10 --undo --no-dry-run --store-session session-worldtime-set-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-set-world-time.py >session-worldtime-set-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-set-world-time_new.py], 0, [stdout], [stderr])
+
+AT_CLEANUP
+
+
+AT_SETUP([Worldtime - set with Redo])
+AT_KEYWORDS([worldtime set-world-time undo redo])
+
+AT_CHECK([../../molecuilder --dry-run --set-world-time 10 --undo --redo --no-dry-run --store-session session-worldtime-set-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-set-world-time.py >session-worldtime-set-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-set-world-time_new.py], 0, [stdout], [stderr])
+
+AT_CLEANUP
Index: tests/GuiChecks/WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at
===================================================================
--- tests/GuiChecks/WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,53 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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/>.
+#
+### step through world time
+
+AT_SETUP([Worldtime - stepping])
+AT_KEYWORDS([worldtime step-world-time set-world-time])
+
+AT_CHECK([../../molecuilder --dry-run --step-world-time --steps-forward 1 --no-dry-run --store-session session-worldtime-step-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-step-world-time.py >session-worldtime-step-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-step-world-time_new.py], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --dry-run --set-world-time 4 --step-world-time --steps-backward 2 --no-dry-run --store-session session-worldtime-step-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-step-world-time.py >session-worldtime-step-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-step-world-time_new.py], 0, [stdout], [stderr])
+# stepping back too far fails
+AT_CHECK([../../molecuilder --dry-run --set-world-time 1 --step-world-time --steps-backward 2 --no-dry-run --store-session session-worldtime-step-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-step-world-time.py >session-worldtime-step-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-step-world-time_new.py], 5, [stdout], [stderr])
+
+AT_CLEANUP
+
+
+AT_SETUP([Worldtime - stepping with Undo])
+AT_KEYWORDS([worldtime step-world-time set-world-time undo])
+
+AT_CHECK([../../molecuilder --dry-run --set-world-time 2 --step-world-time --steps-backward  1 --undo --no-dry-run --store-session session-worldtime-step-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-step-world-time.py >session-worldtime-step-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-step-world-time_new.py], 0, [stdout], [stderr])
+
+AT_CLEANUP
+
+AT_SETUP([Worldtime - stepping with Redo])
+AT_KEYWORDS([worldtime step-world-time set-world-time undo redo])
+
+AT_CHECK([../../molecuilder --dry-run --set-world-time 2 --step-world-time --steps-backward 1 --undo --redo --no-dry-run --store-session session-worldtime-step-world-time.py --session-type python], 0, [stdout], [stderr])
+AT_CHECK([grep -v "Command.*DryRun" session-worldtime-step-world-time.py >session-worldtime-step-world-time_new.py], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilderguitest session-worldtime-step-world-time_new.py], 0, [stdout], [stderr])
+
+AT_CLEANUP
Index: tests/GuiChecks/WorldTime/testsuite-worldtime.at
===================================================================
--- tests/GuiChecks/WorldTime/testsuite-worldtime.at	(revision d50b9151219b75020931486afa73b2b92312849b)
+++ tests/GuiChecks/WorldTime/testsuite-worldtime.at	(revision d50b9151219b75020931486afa73b2b92312849b)
@@ -0,0 +1,24 @@
+#
+#    MoleCuilder - creates and alters molecular systems
+#    Copyright (C) 2016 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 - worldtime])
+
+# setting
+m4_include([WorldTime/SetWorldTime/testsuite-worldtime-set-world-time.at])
+
+# stepping
+m4_include([WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at])
