diff --git a/test/expected_output/load_platform.SABjson b/test/expected_output/load_platform.SABjson
new file mode 100644
index 0000000000000000000000000000000000000000..d035a6efd92e1fd14f163675a68b1bab2510807e
--- /dev/null
+++ b/test/expected_output/load_platform.SABjson
@@ -0,0 +1,105 @@
+{
+    "description": "Test feedback when platform is fully loaded.",
+    "nb_res": 16,
+    "sessions": [
+        {
+            "id": 1,
+            "first_submit_time": 0.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 1,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 2,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [1],
+            "thinking_time_after_preceding_session": [1000],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 2,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 3,
+            "first_submit_time": 10000.0,
+            "preceding_sessions": [
+                2
+            ],
+            "thinking_time_after_preceding_session": [
+                7000.0
+            ],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 3,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 4,
+            "first_submit_time": 12000.0,
+            "preceding_sessions": [
+                3
+            ],
+            "thinking_time_after_preceding_session": [
+                1000.0
+            ],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 4,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 5,
+            "first_submit_time": 9000.0,
+            "preceding_sessions": [
+                2
+            ],
+            "thinking_time_after_preceding_session": [
+                6000.0
+            ],
+            "nb_jobs": 2,
+            "jobs": [
+                {
+                    "id": 5,
+                    "profile": "5000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                },
+                {
+                    "id": 6,
+                    "profile": "5000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/expected_output/many_following.SABjson b/test/expected_output/many_following.SABjson
new file mode 100644
index 0000000000000000000000000000000000000000..35a1e9cb7ca40e8093537045cabd847cca4760b2
--- /dev/null
+++ b/test/expected_output/many_following.SABjson
@@ -0,0 +1,102 @@
+{
+    "description": "A session (session 1) has five followers, four with a think time of 1000s and one with a think time of 2000s.",
+    "nb_res": 16,
+    "sessions": [
+        {
+            "id": 1,
+            "first_submit_time": 0.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 1,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 2,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [1],
+            "thinking_time_after_preceding_session": [1000],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 2,
+                    "profile": "2000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 3,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [1],
+            "thinking_time_after_preceding_session": [1000],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 3,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 4,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [1],
+            "thinking_time_after_preceding_session": [1000],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 4,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 5,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [1],
+            "thinking_time_after_preceding_session": [1000],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 5,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 6,
+            "first_submit_time": 3000.0,
+            "preceding_sessions": [1],
+            "thinking_time_after_preceding_session": [2000],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 6,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/expected_output/many_preceding.SABjson b/test/expected_output/many_preceding.SABjson
new file mode 100644
index 0000000000000000000000000000000000000000..8ca4d285b1d0d329de8f29a161964b680387f053
--- /dev/null
+++ b/test/expected_output/many_preceding.SABjson
@@ -0,0 +1,102 @@
+{
+    "description": "A session (session 6) depends on five others, with a think time of 1000s.",
+    "nb_res": 16,
+    "sessions": [
+        {
+            "id": 1,
+            "first_submit_time": 1000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 1,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 2,
+            "first_submit_time": 1000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 2,
+                    "profile": "2000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 3,
+            "first_submit_time": 1000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 3,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 4,
+            "first_submit_time": 1500.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 4,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 5,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 5,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 6,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [1,2,3,4,5],
+            "thinking_time_after_preceding_session": [1000,1000,1000,1000,1000],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 6,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/expected_output/many_start_sessions.SABjson b/test/expected_output/many_start_sessions.SABjson
new file mode 100644
index 0000000000000000000000000000000000000000..2a48296e478ae4f08aa802e0c31aac4b998cc66b
--- /dev/null
+++ b/test/expected_output/many_start_sessions.SABjson
@@ -0,0 +1,86 @@
+{
+    "description": "Five start sessions with no dependency between them.",
+    "nb_res": 16,
+    "sessions": [
+        {
+            "id": 1,
+            "first_submit_time": 1000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 1,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 2,
+            "first_submit_time": 1000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 2,
+                    "profile": "2000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 3,
+            "first_submit_time": 1000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 3,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 4,
+            "first_submit_time": 1500.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 4,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 5,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 5,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/expected_output/no_session.SABjson b/test/expected_output/no_session.SABjson
new file mode 100644
index 0000000000000000000000000000000000000000..12a6e78f3df23825974b5354611808522c8a352e
--- /dev/null
+++ b/test/expected_output/no_session.SABjson
@@ -0,0 +1,5 @@
+{
+    "description": "Empty SABjson.",
+    "nb_res": 0,
+    "sessions": []
+}
\ No newline at end of file
diff --git a/test/expected_output/one_session_many_jobs.SABjson b/test/expected_output/one_session_many_jobs.SABjson
new file mode 100644
index 0000000000000000000000000000000000000000..b3f95568f571cea7ab2ca517f64c0377476c91b8
--- /dev/null
+++ b/test/expected_output/one_session_many_jobs.SABjson
@@ -0,0 +1,85 @@
+{
+    "description": "One session that contains ten jobs.",
+    "nb_res": 16,
+    "sessions": [
+        {
+            "id": 1,
+            "first_submit_time": 0.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 10,
+            "jobs": [
+                {
+                    "id": 750,
+                    "profile": "450",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 86400.0
+                },
+                {
+                    "id": 751,
+                    "profile": "210",
+                    "res": 16,
+                    "subtime": 591.0,
+                    "walltime": 86400.0
+                },
+                {
+                    "id": 752,
+                    "profile": "81540",
+                    "res": 16,
+                    "subtime": 767.0,
+                    "walltime": 163068.0
+                },
+                {
+                    "id": 757,
+                    "profile": "86140",
+                    "res": 16,
+                    "subtime": 895.0,
+                    "walltime": 172260.0
+                },
+                {
+                    "id": 758,
+                    "profile": "86130",
+                    "res": 16,
+                    "subtime": 959.0,
+                    "walltime": 172250.0
+                },
+                {
+                    "id": 768,
+                    "profile": "920",
+                    "res": 16,
+                    "subtime": 1537.0,
+                    "walltime": 86400.0
+                },
+                {
+                    "id": 781,
+                    "profile": "290",
+                    "res": 16,
+                    "subtime": 1841.0,
+                    "walltime": 86400.0
+                },
+                {
+                    "id": 791,
+                    "profile": "86130",
+                    "res": 16,
+                    "subtime": 2068.0,
+                    "walltime": 172248.0
+                },
+                {
+                    "id": 794,
+                    "profile": "86120",
+                    "res": 16,
+                    "subtime": 2149.0,
+                    "walltime": 172226.0
+                },
+                {
+                    "id": 795,
+                    "profile": "86130",
+                    "res": 16,
+                    "subtime": 2533.0,
+                    "walltime": 172246.0
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/expected_output/zero_think_time.SABjson b/test/expected_output/zero_think_time.SABjson
new file mode 100644
index 0000000000000000000000000000000000000000..f88e3284c938ed000905eb5c7d7d356f49fa5115
--- /dev/null
+++ b/test/expected_output/zero_think_time.SABjson
@@ -0,0 +1,38 @@
+{
+    "description": "Two sessions following each other, with a think time of 0s between them.",
+    "nb_res": 16,
+    "sessions": [
+        {
+            "id": 1,
+            "first_submit_time": 0.0,
+            "preceding_sessions": [],
+            "thinking_time_after_preceding_session": [],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 1,
+                    "profile": "1000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        },
+        {
+            "id": 2,
+            "first_submit_time": 2000.0,
+            "preceding_sessions": [1],
+            "thinking_time_after_preceding_session": [0],
+            "nb_jobs": 1,
+            "jobs": [
+                {
+                    "id": 2,
+                    "profile": "2000",
+                    "res": 16,
+                    "subtime": 0.0,
+                    "walltime": 2592000.0
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file