Index: tests/regression/Selection/Atoms/AtomByOrder/post/empty.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/empty.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/empty.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,2 @@
+0
+	Created by molecuilder for unselect-atom-by-id test
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id0_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id0_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id0_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	1
+H	0	1	0
+H	0	1	1
+H	1	0	0
+H	1	0	1
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id0_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id0_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id0_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	0	0	0
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id1_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id1_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id1_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	1	0
+H	0	1	1
+H	1	0	0
+H	1	0	1
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id1_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id1_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id1_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	0	0	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id2_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id2_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id2_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	1
+H	1	0	0
+H	1	0	1
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id2_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id2_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id2_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	0	1	0
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id3_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id3_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id3_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	0
+H	1	0	0
+H	1	0	1
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id3_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id3_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id3_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	0	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id4_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id4_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id4_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	0
+H	0	1	1
+H	1	0	1
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id4_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id4_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id4_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	1	0	0
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id5_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id5_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id5_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	0
+H	0	1	1
+H	1	0	0
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id5_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id5_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id5_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	1	0	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id6_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id6_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id6_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	0
+H	0	1	1
+H	1	0	0
+H	1	0	1
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id6_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id6_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id6_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	1	1	0
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id7_missing.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id7_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id7_missing.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,9 @@
+7
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	0
+H	0	1	1
+H	1	0	0
+H	1	0	1
+H	1	1	0
Index: tests/regression/Selection/Atoms/AtomByOrder/post/id7_present.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/id7_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/id7_present.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,3 @@
+1
+	Created by molecuilder for unselect-atom-by-id
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/post/test-undo.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/post/test-undo.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/post/test-undo.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,10 @@
+8
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	0
+H	0	1	1
+H	1	0	0
+H	1	0	1
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,10 @@
+8
+	Created by molecuilder for select-atom-by-id
+H	0	0	0
+H	0	0	1
+H	0	1	0
+H	0	1	1
+H	1	0	0
+H	1	0	1
+H	1	1	0
+H	1	1	1
Index: tests/regression/Selection/Atoms/AtomByOrder/testsuite-selection-select-atom-by-order.at
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/testsuite-selection-select-atom-by-order.at	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/testsuite-selection-select-atom-by-order.at	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,87 @@
+### 6. (un)select atom by order
+
+AT_SETUP([Selection - atom with specific order])
+AT_KEYWORDS([selection order atom select-atom-by-order])
+# go through all possible orders (0-7) and removed
+i=1
+while test $i -le 8; do
+  let id=$i-1
+  file=id${id}_missing.xyz
+  # normal
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-atom-by-order ${i} -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_missing.xyz])
+  ((i+=1))
+done
+# go through all possible orders (0-7) and removed
+i=1
+while test $i -le 8; do
+  let id=8-$i
+  file=id${id}_missing.xyz
+  # normal
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-atom-by-order -${i} -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_missing.xyz])
+  ((i+=1))
+done
+AT_CLEANUP
+
+
+AT_SETUP([Selection - atom with specific order with Undo])
+AT_KEYWORDS([selection order atom select-atom-by-order undo])
+# go through all possible ids (0-7) and removed
+i=1
+while test $i -le 8; do
+  let id=$i-1
+  file=id${id}_missing.xyz
+  # undo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-atom-by-order ${i} --undo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/test-undo.xyz])
+  ((i+=1))
+done
+# go reverse through all possible ids (0-7) and removed
+i=1
+while test $i -le 8; do
+  let id=8-$i
+  file=id${id}_missing.xyz
+  # undo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-atom-by-order -${i} --undo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/test-undo.xyz])
+  ((i+=1))
+done
+AT_CLEANUP
+
+
+AT_SETUP([Selection - atom with specific order with Redo])
+AT_KEYWORDS([selection order atom select-atom-by-order redo])
+# go through all possible ids (0-7) and removed
+i=1
+while test $i -le 8; do
+  let id=$i-1
+  file=id${id}_missing.xyz
+  # redo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-atom-by-order ${i} --undo --redo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_missing.xyz])
+  ((i+=1))
+done
+# go reverse through all possible ids (0-7) and removed
+i=1
+while test $i -le 8; do
+  let id=8-$i
+  file=id${id}_missing.xyz
+  # redo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-atom-by-order -${i} --undo --redo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_missing.xyz])
+  ((i+=1))
+done
+AT_CLEANUP
Index: tests/regression/Selection/Atoms/AtomByOrder/testsuite-selection-unselect-atom-by-order.at
===================================================================
--- tests/regression/Selection/Atoms/AtomByOrder/testsuite-selection-unselect-atom-by-order.at	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
+++ tests/regression/Selection/Atoms/AtomByOrder/testsuite-selection-unselect-atom-by-order.at	(revision 61c364e5234bfac462d451e14f2d8a128787f6bb)
@@ -0,0 +1,88 @@
+### 6. (un)select atom by order
+
+
+AT_SETUP([Unselection - atom with specific order])
+AT_KEYWORDS([unselection order atom unselect-atom-by-order])
+# go through all possible orders (0-7) and remove others
+i=1
+while test $i -le 8; do
+  let id=$i-1
+  file=order${id}_present.xyz
+  # normal
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-all-atoms --unselect-atom-by-order ${i} -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_present.xyz])
+  ((i+=1))
+done
+# go reverse through all possible orders (0-7) and remove others
+i=1
+while test $i -le 8; do
+  let id=8-$i
+  file=order${id}_present.xyz
+  # normal
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-all-atoms --unselect-atom-by-order -${i} -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_present.xyz])
+  ((i+=1))
+done
+AT_CLEANUP
+
+
+AT_SETUP([Unselection - atom with specific order with Undo])
+AT_KEYWORDS([unselection order atom unselect-atom-by-order undo])
+# go through all possible orders (0-7) and remove others
+i=1
+while test $i -le 8; do
+  let id=$i-1
+  file=order${id}_present.xyz
+  # undo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-all-atoms --unselect-atom-by-order ${i} --undo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/empty.xyz])
+  ((i+=1))
+done
+# go reverse through all possible orders (0-7) and remove others
+i=1
+while test $i -le 8; do
+  let id=8-$i
+  file=order${id}_present.xyz
+  # undo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-all-atoms --unselect-atom-by-order -${i} --undo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/empty.xyz])
+  ((i+=1))
+done
+AT_CLEANUP
+
+
+AT_SETUP([Unselection - atom with specific order with Redo])
+AT_KEYWORDS([unselection order atom unselect-atom-by-order redo])
+# go through all possible orders (0-7) and remove others
+i=1
+while test $i -le 8; do
+  let id=$i-1
+  file=order${id}_present.xyz
+  # redo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-all-atoms --unselect-atom-by-order ${i} --undo --redo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_present.xyz])
+  ((i+=1))
+done
+# go reverse through all possible orders (0-7) and remove others
+i=1
+while test $i -le 8; do
+  let id=8-$i
+  file=order${id}_present.xyz
+  # redo
+  AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/pre/test.xyz $file])
+  AT_CHECK([chmod u+w $file], 0)
+  AT_CHECK([../../molecuilder -i $file -v 3 --select-all-atoms --unselect-atom-by-order -${i} --undo --redo -r], [], [ignore], [ignore])
+  AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Selection/Atoms/AtomByOrder/post/id${id}_present.xyz])
+  ((i+=1))
+done
+AT_CLEANUP
