diff --git a/.gitignore b/.gitignore
index 5df6c0005a..fbd69abb0a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
/venv
/docs/_site
/docs/Gemfile.lock
+generated/
+/requirements-dev.txt
diff --git a/generate.sh b/generate.sh
index 6763530a79..52571a392e 100755
--- a/generate.sh
+++ b/generate.sh
@@ -1,4 +1,6 @@
#!/bin/bash
+set -e
+
echo "*** Generate Webpages ***"
python scripts/automate.py
@@ -18,7 +20,7 @@ done
echo ""
echo "*** Build With Jekyll ***"
-export JEKYLL_VERSION=3.8
+export JEKYLL_VERSION=4.2.2
docker run --rm \
-e "JEKYLL_UID=$(id -u)" \
-e "JEKYLL_GID=$(id -g)" \
@@ -36,7 +38,8 @@ echo "*** Start Webserver ***"
cd docs/_site
python -m http.server >/dev/null &
pid=$!
-trap "printf '\n\n*** Kill webserver (PID %s) ***' $pid; kill $pid" SIGINT SIGHUP SIGABRT
+trap "printf '\n\n*** Kill webserver (PID %s) ***\n' $pid; kill $pid" SIGINT SIGHUP SIGABRT
+sleep 5
echo ""
echo "*** Open Index ***"
diff --git a/requirements.txt b/requirements.txt
index 35cee9a1bd..c65730982c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
snakemd>=0.10.0, <0.11.0
-subete>=0.14.0, <0.15.0
+subete>=0.15.0, <0.16.0
image-titler>=2.3.0, <2.4.0
+glotter2>=0.6.0, <0.7.0
diff --git a/scripts/automate.py b/scripts/automate.py
index 696e1aa963..0e3ccb3376 100644
--- a/scripts/automate.py
+++ b/scripts/automate.py
@@ -1,12 +1,14 @@
import logging
+import os
import pathlib
from datetime import date
-from typing import List
import snakemd
import subete
+import glotter
log = logging.getLogger(__name__)
+AUTO_GEN_TEST_DOC_DIR = "sources/generated"
def _add_section(doc: snakemd.Document, source: str, source_instance: str, section: str, level: int = 2):
@@ -34,7 +36,12 @@ def _add_section(doc: snakemd.Document, source: str, source_instance: str, secti
def _add_testing_section(doc: snakemd.Document, source: str, source_instance: str):
valid_path = pathlib.Path(f"sources/{source}/{source_instance}/valid-tests.md")
invalid_path = pathlib.Path(f"sources/{source}/{source_instance}/invalid-tests.md")
- if valid_path.exists() and invalid_path.exists():
+ auto_gen_path = pathlib.Path(f"{AUTO_GEN_TEST_DOC_DIR}/{source_instance}/testing.md")
+ if auto_gen_path.exists():
+ _add_section(
+ doc, pathlib.Path(AUTO_GEN_TEST_DOC_DIR).name, source_instance, "Testing", level=2
+ )
+ elif valid_path.exists() and invalid_path.exists():
doc.add_header("Testing", level=2)
doc.add_paragraph(
f"""
@@ -282,6 +289,21 @@ def generate_language_paths(repo: subete.Repo):
_generate_language_index(language)
+def generate_auto_gen_test_docs(repo: subete.Repo):
+ """
+ Generate auto-generated test documentation
+ """
+ curr_dir = os.getcwd()
+ doc_dir = pathlib.Path(AUTO_GEN_TEST_DOC_DIR).absolute()
+ os.chdir(repo.sample_programs_repo_dir())
+ glotter.generate_test_docs(
+ doc_dir=doc_dir,
+ repo_name="Sample Programs",
+ repo_url="https://github.com/TheRenegadeCoder/sample-programs"
+ )
+ os.chdir(curr_dir)
+
+
def generate_languages_index(repo: subete.Repo):
"""
Creates the index.md files for the root directories.
@@ -368,8 +390,10 @@ def clean(folder: str):
logging.basicConfig(level=logging.INFO)
clean("docs/projects")
clean("docs/languages")
+ clean(AUTO_GEN_TEST_DOC_DIR)
repo = subete.load()
generate_language_paths(repo)
+ generate_auto_gen_test_docs(repo)
generate_project_paths(repo)
generate_sample_programs(repo)
generate_languages_index(repo)
diff --git a/sources/projects/baklava/testing.md b/sources/projects/baklava/testing.md
deleted file mode 100644
index 96a59c1d97..0000000000
--- a/sources/projects/baklava/testing.md
+++ /dev/null
@@ -1 +0,0 @@
-Verify that the actual output matches the expected output (see [requirements](#requirements)).
diff --git a/sources/projects/binary-search/invalid-tests.md b/sources/projects/binary-search/invalid-tests.md
deleted file mode 100644
index 0631e2dd3d..0000000000
--- a/sources/projects/binary-search/invalid-tests.md
+++ /dev/null
@@ -1,13 +0,0 @@
-| Description | List Input | Target Integer Input |
-| --------------------- | ------------ | -------------------- |
-| No Input | | |
-| Missing Input: List | `1, 2, 3, 4` | |
-| Missing Input: Target | `""` | `5` |
-| Out of Order Input | `3, 5, 1, 2` | `3` |
-
-All invalid tests should spit out a usage statement in the following
-form:
-
-```
-Usage: please provide a list of sorted integers ("1, 4, 5, 11, 12") and the integer to find ("11")
-```
diff --git a/sources/projects/binary-search/valid-tests.md b/sources/projects/binary-search/valid-tests.md
deleted file mode 100644
index 5a4633c58d..0000000000
--- a/sources/projects/binary-search/valid-tests.md
+++ /dev/null
@@ -1,8 +0,0 @@
-| Description | List Input | Target Integer Input | Output |
-| ------------------------- | -------------- | -------------------- | ------- |
-| Sample Input: First True | `"1, 3, 5, 7"` | `"1"` | `true` |
-| Sample Input: Last True | `"1, 3, 5, 7"` | `"7"` | `true` |
-| Sample Input: Middle True | `"1, 3, 5, 7"` | `"5"` | `true` |
-| Sample Input: One True | `"5"` | `"5"` | `true` |
-| Sample Input: One False | `"5"` | `"7"` | `false` |
-| Sample Input: Many False | `"1, 3, 5, 6"` | `"7"` | `false` |
diff --git a/sources/projects/bubble-sort/invalid-tests.md b/sources/projects/bubble-sort/invalid-tests.md
deleted file mode 100644
index b85c663b5d..0000000000
--- a/sources/projects/bubble-sort/invalid-tests.md
+++ /dev/null
@@ -1,12 +0,0 @@
-| Description | Input |
-| --------------------------- | --------- |
-| No Input | |
-| Empty Input | `""` |
-| Invalid Input: Not a List | `"1"` |
-| Invalid Input: Wrong Format | `"4 5 3"` |
-
-All invalid tests should spit out a usage statement in the following form:
-
-```
-Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5"
-```
diff --git a/sources/projects/bubble-sort/valid-tests.md b/sources/projects/bubble-sort/valid-tests.md
deleted file mode 100644
index 9de05c2e4d..0000000000
--- a/sources/projects/bubble-sort/valid-tests.md
+++ /dev/null
@@ -1,7 +0,0 @@
-
-| Description | List Input | Output |
-| ---------------------------- | ----------------------------- | --------------------------- |
-| Sample Input | `"4, 5, 3, 1, 2"` | `1, 2, 3, 4, 5` |
-| Sample Input: With Duplicate | `"4, 5, 3, 1, 4, 2"` | `1, 2, 3, 4, 4, 5` |
-| Sample Input: Already Sorted | `"1, 2, 3, 4, 5"` | `1, 2, 3, 4, 5` |
-| Sample Input: Reverse Sorted | `"9, 8, 7, 6, 5, 4, 3, 2, 1"` | `1, 2, 3, 4, 5, 6, 7, 8, 9` |
diff --git a/sources/projects/capitalize/invalid-tests.md b/sources/projects/capitalize/invalid-tests.md
deleted file mode 100644
index b79b20458f..0000000000
--- a/sources/projects/capitalize/invalid-tests.md
+++ /dev/null
@@ -1,10 +0,0 @@
-| Description | Input |
-| ---------------- | --------------- |
-| No input | |
-| Empty input | `""` |
-
-All invalid tests should spit out a usage statement in the following form:
-
-```
-Usage: please provide a string
-```
diff --git a/sources/projects/capitalize/valid-tests.md b/sources/projects/capitalize/valid-tests.md
deleted file mode 100644
index 38cb695824..0000000000
--- a/sources/projects/capitalize/valid-tests.md
+++ /dev/null
@@ -1,7 +0,0 @@
-| Description | Input | Output |
-| ---------------- | --------------- | ------------- |
-| Lowercase String | `"hello"` | `Hello` |
-| Uppercase String | `"Hello"` | `Hello` |
-| Long String | `"hello world"` | `Hello world` |
-| Mixed Casing | `"heLLo World"` | `HeLLo World` |
-| Symbols | `"12345"` | `12345` |
diff --git a/sources/projects/convex-hull/invalid-tests.md b/sources/projects/convex-hull/invalid-tests.md
deleted file mode 100644
index 52958f2eb4..0000000000
--- a/sources/projects/convex-hull/invalid-tests.md
+++ /dev/null
@@ -1,12 +0,0 @@
-| Description | Input X | Input Y |
-| --------------------- | ----------------- | ------------------------- |
-| Too few values | `"100, 180"` | `"240, 60, 40, 200, 300"` |
-| Different cardinality | `"100, 180, 240"` | `"240, 60, 40, 200, 300"` |
-| Missing y | `"100, 180, 240"` | |
-| Invalid integer | `"100, 1A0, 240"` | `"220, 120, 20"` |
-
-All invalid tests should spit out a usage statement in the following form:
-
-```
-Usage: please provide at least 3 x and y coordinates as separate lists (e.g. "100, 440, 210")
-```
diff --git a/sources/projects/convex-hull/valid-tests.md b/sources/projects/convex-hull/valid-tests.md
deleted file mode 100644
index 47f105bbed..0000000000
--- a/sources/projects/convex-hull/valid-tests.md
+++ /dev/null
@@ -1,7 +0,0 @@
-| Description | Input X | Input Y | Output |
-| ------------------- | ----------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------- |
-| X-Ordered triangle | `"100, 180, 240"` | `"220, 120, 20"` | `(100, 220)`
`(240, 20)`
`(180, 120)` |
-| Pentagon, clockwise | `"100, 140, 320, 480, 280"` | `"240, 60, 40, 200, 300"` | `(100, 240)`
`(140, 60)`
`(320, 40)`
`(480, 200)`
`(280, 300)` |
-| Cluster in center | `"260, 280, 300, 320, 600, 360, 20, 240"` | `"160, 100, 180, 140, 160, 320, 200, 0"` | `(20, 200)`
`(240, 0)`
`(600, 160)`
`(360, 320)` |
-
-**Note**: different algorithms could produce the output starting from a different point, and/or in the opposite direction.
diff --git a/sources/projects/depth-first-search/invalid-tests.md b/sources/projects/depth-first-search/invalid-tests.md
deleted file mode 100644
index 8370622dae..0000000000
--- a/sources/projects/depth-first-search/invalid-tests.md
+++ /dev/null
@@ -1,13 +0,0 @@
-| Description | Tree Input | Vertex Values | Target Integer Input |
-| ---------------------------- | ----------------------------------------------------------------------------- | ----------------- | -------------------- |
-| No Input | | | |
-| Missing Input: Tree | `""` | `"1, 3, 5, 2, 4"` | `"4"` |
-| Missing Input: Vertex Values | `"0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0"` | `""` | `"1"` |
-| Missing Input: Target | `"0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0"` | `"1, 3, 5, 2, 4"` | `""` |
-
-All invalid tests should spit out a usage statement in the following
-form:
-
-```
-Usage: please provide a tree in an adjacency matrix form ("0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0") together with a list of vertex values ("1, 3, 5, 2, 4") and the integer to find ("4")
-```
diff --git a/sources/projects/depth-first-search/valid-tests.md b/sources/projects/depth-first-search/valid-tests.md
deleted file mode 100644
index 66d39ce227..0000000000
--- a/sources/projects/depth-first-search/valid-tests.md
+++ /dev/null
@@ -1,9 +0,0 @@
-| Description | Tree Input | Vertex Values | Target Integer Input | Output |
-| ------------------------- | ----------------------------------------------------------------------------- | ----------------- | -------------------- | ------- |
-| Sample Input: First True | `"0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0"` | `"1, 3, 5, 2, 4"` | `"1"` | `true` |
-| Sample Input: Last True | `"0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0"` | `"1, 3, 5, 2, 4"` | `"4"` | `true` |
-| Sample Input: Middle True | `"0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0"` | `"1, 3, 5, 2, 4"` | `"5"` | `true` |
-| Sample Input: One True | `"0"` | `"1"` | `"1"` | `true` |
-| Sample Input: One False | `"0"` | `"1"` | `"6"` | `false` |
-| Sample Input: Many False | `"0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0"` | `"1, 3, 5, 2, 4"` | `"7"` | `false` |
-
diff --git a/sources/projects/dijkstra/invalid-tests.md b/sources/projects/dijkstra/invalid-tests.md
deleted file mode 100644
index 5a431b4cde..0000000000
--- a/sources/projects/dijkstra/invalid-tests.md
+++ /dev/null
@@ -1,18 +0,0 @@
-| Description | Matrix | Source | Destination |
-| ------------------------------------------------------ | ------------------------------------------------------------------------------- | ------ | ----------- |
-| No Input | | | |
-| Empty Input | `""` | `""` | `""` |
-| Non-Square Input | `"1, 0, 3, 0, 5, 1"` | `"1"` | `"2"` |
-| No Destination | `"0, 2, 0, 6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, 6, 8, 0, 0, 9, 0, 5, 7, 9, 0"` | `"0"` | `""` |
-| No Source and Destination | `"0, 2, 0, 6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, 6, 8, 0, 0, 9, 0, 5, 7, 9, 0"` | `""` | `""` |
-| The Source or The Destination < 0 | `"0, 2, 0, 6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, 6, 8, 0, 0, 9, 0, 5, 7, 9, 0"` | `"-1"` | `"2"` |
-| The Source or The Destination < 0 | `"0, 2, 0, 6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, 6, 8, 0, 0, 9, 0, 5, 7, 9, 0"` | `"-1"` | `"2"` |
-| Weight < 0 | `"0, 2, 0, -6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, -6, 8, 0, 0, 9, 0, 5, 7, 9, 0"` | `"1"` | `"2"` |
-| The Source or The Destination > SquareRootOfMatrix - 1 | `"0, 2, 0, 6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, 6, 8, 0, 0, 9, 0, 5, 7, 9, 0"` | `"1"` | `"10"` |
-| No way | `"0, 0, 0, 0"` | `"0"` | `"1"` |
-
-All invalid tests should spit out a usage statement in the following form:
-
-```
-Usage: please provide three inputs: a serialized matrix, a source node and a destination node
-```
diff --git a/sources/projects/dijkstra/valid-tests.md b/sources/projects/dijkstra/valid-tests.md
deleted file mode 100644
index 83d7010a6e..0000000000
--- a/sources/projects/dijkstra/valid-tests.md
+++ /dev/null
@@ -1,3 +0,0 @@
-| Description | Matrix | Source | Destination | Output |
-| ------------ | ----------------------------------------------------------------------------- | ------ | ----------- | ------ |
-| Proper Input | `"0, 2, 0, 6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, 6, 8, 0, 0, 9, 0, 5, 7, 9, 0"` | `"0"` | `"1"` | 2 |
diff --git a/sources/projects/duplicate-character-counter/testing.md b/sources/projects/duplicate-character-counter/testing.md
deleted file mode 100644
index 512acefedc..0000000000
--- a/sources/projects/duplicate-character-counter/testing.md
+++ /dev/null
@@ -1,7 +0,0 @@
-| Description | Input | Output |
-| :------------ | :------------: | :----------------------: |
-| No Input | | Usage: please provide a string |
-| Empty Input | "" | Usage: please provide a string |
-| Basic String | "goodbyeblues" | o: 2
b: 2
e: 2 |
-| Correct Order | "abba" | a: 2
b: 2 |
-| Case Distinct | "aAbB" | No duplicate characters |
diff --git a/sources/projects/even-odd/testing.md b/sources/projects/even-odd/testing.md
deleted file mode 100644
index 66dbb68359..0000000000
--- a/sources/projects/even-odd/testing.md
+++ /dev/null
@@ -1,11 +0,0 @@
-The following table contains various test cases that you can use to verify the correctness of your solution:
-
-| Description | Input | Output |
-|------------------------------|-------|--------|
-| no input | None | Usage: please input a number |
-| empty input | "" | Usage: please input a number |
-| invalid input: not a number | a | Usage: please input a number |
-| sample input: even | 2 | Even |
-| sample input: odd | 5 | Odd |
-| sample input: negative even | -14 | Even |
-| sample input: negative odd | -27 | Odd |
diff --git a/sources/projects/factorial/testing.md b/sources/projects/factorial/testing.md
deleted file mode 100644
index bb43f99799..0000000000
--- a/sources/projects/factorial/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-Some tests for your program are:
-
-| Description | Input | Output |
-| :------------------------------ | :-------- | :------------------------------------------- |
-| No input | | "Usage: please input a non-negative integer" |
-| Empty input | "" | "Usage: please input a non-negative integer" |
-| Invalid Input: Not a number | "asdf" | "Usage: please input a non-negative integer" |
-| Invalid Input: Negative integer | -1 | "Usage: please input a non-negative integer" |
-| Sample Input: Zero | 0 | 1 |
-| Sample Input: One | 1 | 1 |
-| Sample Input: Four | 4 | 24 |
-| Sample Input: Eight | 8 | 40320 |
-| Sample Input: Ten | 10 | 3628800 |
diff --git a/sources/projects/fibonacci/testing.md b/sources/projects/fibonacci/testing.md
deleted file mode 100644
index 209b3ad893..0000000000
--- a/sources/projects/fibonacci/testing.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Some tests for your program are:
-
-| Description | Input | Output |
-| :---------- | :---- | :----- |
-| No Input | | "Usage: please input the count of fibonacci numbers to output" |
-| Empty Input | "" | "Usage: please input the count of fibonacci numbers to output" |
-| Invalid Input: not a number | word | "Usage: please input the count of fibonacci numbers to output" |
-| Sample Input: 0 | 0 | |
-| Sample Input: 1 | 1 | 1: 1 |
-| Sample Input: 2 | 2 | 1: 1
2: 1 |
-| Sample Input: 5 | 5 | 1: 1
2: 1
3: 2
4: 3
5: 5 |
-| Sample Input: 10 | 10 | 1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
9: 34
10: 55 |
diff --git a/sources/projects/file-input-output/testing.md b/sources/projects/file-input-output/testing.md
deleted file mode 100644
index 6d16c6b6fb..0000000000
--- a/sources/projects/file-input-output/testing.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Verify that the actual output matches the expected output. See the
-[requirements](#requirements) section for an example of the expected output.
diff --git a/sources/projects/fizz-buzz/testing.md b/sources/projects/fizz-buzz/testing.md
deleted file mode 100644
index 6d16c6b6fb..0000000000
--- a/sources/projects/fizz-buzz/testing.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Verify that the actual output matches the expected output. See the
-[requirements](#requirements) section for an example of the expected output.
diff --git a/sources/projects/fraction-math/testing.md b/sources/projects/fraction-math/testing.md
deleted file mode 100644
index e45aed571b..0000000000
--- a/sources/projects/fraction-math/testing.md
+++ /dev/null
@@ -1,16 +0,0 @@
-Some tests for your program are:
-
-| Description | Input | Output |
-| :---------- | :---- | :----- |
-| No Input | | "Usage: ./fraction-math operand1 operator operand2" |
-| Empty Input | "" | "Usage: ./fraction-math operand1 operator operand2" |
-| Sample Input: | 2/3 + 4/5 | 22/15 |
-| Sample Input: | 2/3 * 4/5 | 8/15 |
-| Sample Input: | 2/3 - 4/5 | -2/15 |
-| Sample Input: | 2/3 / 4/5 | 5/6 |
-| Sample Input: | 2/3 == 4/5 | 0 |
-| Sample Input: | 2/3 > 4/5 | 0 |
-| Sample Input: | 2/3 < 4/5 | 1 |
-| Sample Input: | 2/3 >= 4/5 | 0 |
-| Sample Input: | 2/3 <= 4/5 | 1 |
-| Sample Input: | 2/3 != 4/5 | 1 |
diff --git a/sources/projects/hello-world/testing.md b/sources/projects/hello-world/testing.md
deleted file mode 100644
index 6d16c6b6fb..0000000000
--- a/sources/projects/hello-world/testing.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Verify that the actual output matches the expected output. See the
-[requirements](#requirements) section for an example of the expected output.
diff --git a/sources/projects/insertion-sort/testing.md b/sources/projects/insertion-sort/testing.md
deleted file mode 100644
index ddb76c38da..0000000000
--- a/sources/projects/insertion-sort/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|------------------------------|-------|--------|
-| No Input | | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Empty Input | "" | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Not a list | 1 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Wrong Format | 4 5 3 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Sample Input | 4, 5, 3, 1, 2 | 1, 2, 3, 4, 5 |
-| Sample Input: With Duplicate | 4, 5, 3, 1, 4, 2 | 1, 2, 3, 4, 4, 5 |
-| Sample Input: Already Sorted | 1, 2, 3, 4, 5 | 1, 2, 3, 4, 5 |
-| Sample Input: Reverse Sorted | 9, 8, 7, 6, 5, 4, 3, 2, 1 | 1, 2, 3, 4, 5, 6, 7, 8, 9 |
diff --git a/sources/projects/job-sequencing/testing.md b/sources/projects/job-sequencing/testing.md
deleted file mode 100644
index 8b4b417f18..0000000000
--- a/sources/projects/job-sequencing/testing.md
+++ /dev/null
@@ -1,11 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|-------------|-------|--------|
-| No Input | | "Usage: please provide a list of profits and a list of deadlines" |
-| Empty Input | "" | "Usage: please provide a list of profits and a list of deadlines" |
-| Missing Input | "25, 15, 10, 5" | "Usage: please provide a list of profits and a list of deadlines" |
-|Lists Different Lengths | "1, 2, 3, 4" "1, 2, 3, 4, 5" | "Usage: please provide a list of profits and a list of deadlines" |
-| Sample Input | "25, 15, 10, 5" "3, 1, 2, 2" | 50 |
-| Sample Input | "20, 15, 10, 5, 1" "2, 2, 1, 3, 3" | 40 |
diff --git a/sources/projects/josephus-problem/testing.md b/sources/projects/josephus-problem/testing.md
deleted file mode 100644
index 9770411a7e..0000000000
--- a/sources/projects/josephus-problem/testing.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Some tests for your program are:
-
-
-| Description | Input (n) | Input (k) | Output |
-| :---------- | :---- | :---- | :----- |
-| No Input | | | "Usage: please input the total number of people and number of people to skip." |
-| Empty Input | "" | "" | "Usage: please input the total number of people and number of people to skip." |
-| Invalid Input: not a number | word | word | "Usage: please input the total number of people and number of people to skip." |
-| Sample Input: 0, 1 (0 people in circle) | 0 | 1 | "Usage: please input the total number of people and number of people to skip." |
-| Sample Input: 5, 2 | 5 | 2 | 3 |
-| Sample Input: 7, 3 | 7 | 3 | 4 |
-| Sample Input: 41, 4 | 41 | 4 | 11 |
diff --git a/sources/projects/linear-search/testing.md b/sources/projects/linear-search/testing.md
deleted file mode 100644
index 78976a6eb3..0000000000
--- a/sources/projects/linear-search/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-| Description | List Input | Target Integer Input | Output |
-|---------------------------|--------------|----------------------|---------|
-| No Input | | | error\* |
-| Missing Input: List | `1, 2, 3, 4` | | error\* |
-| Missing Input: Target | `""` | `5` | error\* |
-| Sample Input: First True | `1, 3, 5, 7` | `1` | `true` |
-| Sample Input: Last True | `1, 3, 5, 7` | `7` | `true` |
-| Sample Input: Middle True | `1, 3, 5, 7` | `5` | `true` |
-| Sample Input: One True | `5` | `5` | `true` |
-| Sample Input: One False | `5` | `7` | `false` |
-| Sample Input: Many False | `1, 3, 5, 6` | `7` | `false` |
-
-\*The error string to print: `Usage: please provide a list of integers ("1, 4, 5, 11, 12") and the integer to find ("11")`
diff --git a/sources/projects/longest-common-subsequence/testing.md b/sources/projects/longest-common-subsequence/testing.md
deleted file mode 100644
index ef418d549c..0000000000
--- a/sources/projects/longest-common-subsequence/testing.md
+++ /dev/null
@@ -1,10 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|-------------|-------|--------|
-| No Input | | "Usage: please provide two lists in the format "1, 2, 3, 4, 5" |
-| Empty Input | "" | "Usage: please provide two lists in the format "1, 2, 3, 4, 5" |
-| Missing Input | "25, 15, 10, 5" | "Usage: please provide two lists in the format "1, 2, 3, 4, 5" |
-| Sample Input: Same Length | "1, 4, 5, 3, 15, 6" "1, 7, 4, 5, 11, 6" | "1, 4, 5, 6" |
-| Sample Input: Different Lengths | "1, 4, 8, 6, 9, 3, 15, 11, 6" "1, 7, 4, 5, 8, 11, 6" | "1, 4, 8, 11, 6" |
diff --git a/sources/projects/longest-palindromic-substring/testing.md b/sources/projects/longest-palindromic-substring/testing.md
deleted file mode 100644
index 335c1c3f9f..0000000000
--- a/sources/projects/longest-palindromic-substring/testing.md
+++ /dev/null
@@ -1,10 +0,0 @@
-The following table contains various test cases that you can use to verify the correctness of your solution:
-
-| Description | Input | Output |
-|----------------------------------|-------------------|------------------------------------------------------------------------|
-| No Input | | "Usage: please provide a string that contains at least one palindrome" |
-| Empty String | "" | "Usage: please provide a string that contains at least one palindrome" |
-| No Palindromes | "polip" | "Usage: please provide a string that contains at least one palindrome" |
-| Sample Input: One Palindrome | "racecar" | "racecar" |
-| Sample Input: Two Palindromes | "kayak mom" | "kayak" |
-| Sample Input: Complex Palindrome | "step on no pets" | "step on no pets" |
diff --git a/sources/projects/longest-word/testing.md b/sources/projects/longest-word/testing.md
deleted file mode 100644
index 88f7445a05..0000000000
--- a/sources/projects/longest-word/testing.md
+++ /dev/null
@@ -1,10 +0,0 @@
-The following table contains various test cases that you can use to verify the
-correctness of your solution:
-
-| Description | Input | Output |
-|---------------------------|---------------------------------|----------------------------------|
-| No Input | | "Usage: please provide a string" |
-| Empty Input | "" | "Usage: please provide a string" |
-| Sample Input: Many Words | "May the force be with you" | 5 |
-| Sample Input: Single Word | "Floccinaucinihilipilification" | 29 |
-| Sample Input: Multiline | "Hi,\nMy name is Paul!" | 5 |
diff --git a/sources/projects/maximum-array-rotation/testing.md b/sources/projects/maximum-array-rotation/testing.md
deleted file mode 100644
index d9c949d35e..0000000000
--- a/sources/projects/maximum-array-rotation/testing.md
+++ /dev/null
@@ -1,7 +0,0 @@
-| Description | Input | Output |
-| ---------------------------- | ------------------------- | -------------------------------------------------------------- |
-| No Input | | "Usage: please provide a list of integers (e.g. "8, 3, 1, 2")" |
-| Empty Input | "" | "Usage: please provide a list of integers (e.g. "8, 3, 1, 2")" |
-| Sample Input: No Rotation | "3, 1, 2, 8" | 29 |
-| Sample Input: One Rotation | "1, 2, 8, 3" | 29 |
-| Sample Input: Many Rotations | "8, 3, 1, 2" | 29 |
diff --git a/sources/projects/maximum-subarray/testing.md b/sources/projects/maximum-subarray/testing.md
deleted file mode 100644
index 1de87ce066..0000000000
--- a/sources/projects/maximum-subarray/testing.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Some tests for your program are:
-
-| Description | Input | Output |
-| :----------------------------------------------------------- | :------------------------ | :------------------------------------------------------------------------------------------- |
-| No input | | Usage: Please provide a list of integers in the format: "1, 2, 3, 4, 5" |
-| Empty input | " " | Usage: Please provide a list of integers in the format: "1, 2, 3, 4, 5" |
-| Sample Input: Array with size 1 | 1 | 1 |
-| Sample Input: Array with no negative integers | "1, 2, 3" | 6 |
-| Sample Input: Array with all negative integers | "-1, -2, -3" | -1 |
-| Sample Input: Array with both positive and negative integers | "-2, -1, 3, 4, 5" | 12 |
-| Sample Input: Array with both positive and negative integers | "-1, -4, 2, 3, -3, -4, 9" | 9 |
-| Sample Input: Array with both positive and negative integers | "-1, -4, 2, 9, -3, -4, 9" | 13 |
diff --git a/sources/projects/merge-sort/testing.md b/sources/projects/merge-sort/testing.md
deleted file mode 100644
index ddb76c38da..0000000000
--- a/sources/projects/merge-sort/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|------------------------------|-------|--------|
-| No Input | | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Empty Input | "" | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Not a list | 1 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Wrong Format | 4 5 3 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Sample Input | 4, 5, 3, 1, 2 | 1, 2, 3, 4, 5 |
-| Sample Input: With Duplicate | 4, 5, 3, 1, 4, 2 | 1, 2, 3, 4, 4, 5 |
-| Sample Input: Already Sorted | 1, 2, 3, 4, 5 | 1, 2, 3, 4, 5 |
-| Sample Input: Reverse Sorted | 9, 8, 7, 6, 5, 4, 3, 2, 1 | 1, 2, 3, 4, 5, 6, 7, 8, 9 |
diff --git a/sources/projects/minimum-spanning-tree/testing.md b/sources/projects/minimum-spanning-tree/testing.md
deleted file mode 100644
index bae71e14e9..0000000000
--- a/sources/projects/minimum-spanning-tree/testing.md
+++ /dev/null
@@ -1,6 +0,0 @@
-| Description | Input | Output |
-| ---------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------- |
-| No Input | | "Usage: please provide a comma-separated list of integers" |
-| Empty Input | "" | "Usage: please provide a comma-separated list of integers" |
-| Non-Square Input | "1, 0, 3, 0, 5, 1" | "Usage: please provide a comma-separated list of integers" |
-| Proper Input | "0, 2, 0, 6, 0, 2, 0, 3, 8, 5, 0, 3, 0, 0, 7, 6, 8, 0, 0, 9, 0, 5, 7, 9, 0" | 16 |
diff --git a/sources/projects/palindromic-number/invalid-tests.md b/sources/projects/palindromic-number/invalid-tests.md
deleted file mode 100644
index 449d6f4206..0000000000
--- a/sources/projects/palindromic-number/invalid-tests.md
+++ /dev/null
@@ -1,13 +0,0 @@
-| Description | Input |
-| ------------------------------ | ----- |
-| no input | None |
-| empty input | "" |
-| invalid input: not a number | a |
-| invalid input: negative number | -5 |
-| invalid input: float | 5.41 |
-
-All invalid tests should spit out a usage statement in the following form:
-
-```
-Usage: please input a non-negative integer
-```
diff --git a/sources/projects/palindromic-number/valid-tests.md b/sources/projects/palindromic-number/valid-tests.md
deleted file mode 100644
index 54dbf1b0f7..0000000000
--- a/sources/projects/palindromic-number/valid-tests.md
+++ /dev/null
@@ -1,7 +0,0 @@
-| Description | Positive Integer | Output |
-| ---------------------------------------- | ---------------- | ------ |
-| sample input: one digit | 7 | true |
-| sampel input: even digits | 2442 | true |
-| sample input: odd digits | 232 | true |
-| sample input: even digits not palindrome | 5215 | false |
-| sample input: odd digits not palindrome | 521 | false |
diff --git a/sources/projects/prime-number/testing.md b/sources/projects/prime-number/testing.md
deleted file mode 100644
index ed0dd6d9d2..0000000000
--- a/sources/projects/prime-number/testing.md
+++ /dev/null
@@ -1,17 +0,0 @@
-The following table contains various test cases that you can use to verify the
-correctness of your solution:
-
-| Description | Input | Output |
-|--------------|-------|--------|
-| No Input | | "Usage: please input a non-negative integer" |
-| Empty Input | "" | "Usage: please input a non-negative integer" |
-| Invalid Input: not a number | a | "Usage: please input a non-negative integer" |
-| Invalid Input: not an integer | 6.7 | "Usage: please input a non-negative integer" |
-| Invalid Input: negative | -7 | "Usage: please input a non-negative integer" |
-| Sample Input: Zero | 0 | Composite |
-| Sample Input: One | 1 | Composite |
-| Sample Input: Two | 2 | Prime |
-| Sample Input: Small Composite | 4 | Composite |
-| Sample Input: Small Prime | 7 | Prime |
-| Sample Input: Large Composite | 4011 | Composite |
-| Sample Input: Large Prime | 3727 | Prime |
diff --git a/sources/projects/quick-sort/testing.md b/sources/projects/quick-sort/testing.md
deleted file mode 100644
index ddb76c38da..0000000000
--- a/sources/projects/quick-sort/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|------------------------------|-------|--------|
-| No Input | | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Empty Input | "" | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Not a list | 1 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Wrong Format | 4 5 3 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Sample Input | 4, 5, 3, 1, 2 | 1, 2, 3, 4, 5 |
-| Sample Input: With Duplicate | 4, 5, 3, 1, 4, 2 | 1, 2, 3, 4, 4, 5 |
-| Sample Input: Already Sorted | 1, 2, 3, 4, 5 | 1, 2, 3, 4, 5 |
-| Sample Input: Reverse Sorted | 9, 8, 7, 6, 5, 4, 3, 2, 1 | 1, 2, 3, 4, 5, 6, 7, 8, 9 |
diff --git a/sources/projects/quine/testing.md b/sources/projects/quine/testing.md
deleted file mode 100644
index 6d16c6b6fb..0000000000
--- a/sources/projects/quine/testing.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Verify that the actual output matches the expected output. See the
-[requirements](#requirements) section for an example of the expected output.
diff --git a/sources/projects/remove-all-whitespace/testing.md b/sources/projects/remove-all-whitespace/testing.md
deleted file mode 100644
index 01c9793182..0000000000
--- a/sources/projects/remove-all-whitespace/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The following table contains various test cases that you can use to verify the correctness of your solution:
-
-| Description | Input | Output |
-|--------------------------------|--------------------------------|----------------------------------|
-| No Input | | "Usage: please provide a string" |
-| Empty Input | "" | "Usage: please provide a string" |
-| Sample Input: No Spaces | "RemoveAllWhitespace" | "RemoveAllWhitespace" |
-| Sample Input: Leading Spaces | " RemoveAllWhitespace" | "RemoveAllWhitespace" |
-| Sample Input: Trailing Spaces | "RemoveAllWhitespace " | "RemoveAllWhitespace" |
-| Sample Input: Inner Spaces | "Remove All Whitespace" | "RemoveAllWhitespace" |
-| Sample Input: Tabs | "\tRemove\tAll\tWhitespace\t" | "RemoveAllWhitespace" |
-| Sample Input: Newlines | "\nRemove\nAll\nWhitespace\n" | "RemoveAllWhitespace" |
-| Sample Input: Carriage Returns | "\rRemove\rAll\rWhitespace\r" | "RemoveAllWhitespace" |
diff --git a/sources/projects/reverse-string/testing.md b/sources/projects/reverse-string/testing.md
deleted file mode 100644
index a0bb1fa6b0..0000000000
--- a/sources/projects/reverse-string/testing.md
+++ /dev/null
@@ -1,9 +0,0 @@
-If the solution passes these test cases, then it's a good fit for the repo.
-Feel free to test other strings for fun. For instance, you may find that
-your language can handle unicode characters, but it fails for emojis.
-
-| Description | Input | Output |
-| ------------ | :------------: | :------------: |
-| No Input | | |
-| Empty String | "" | |
-| Ascii String | "Hello, World" | "dlroW ,olleH" |
diff --git a/sources/projects/roman-numeral/testing.md b/sources/projects/roman-numeral/testing.md
deleted file mode 100644
index a3a6db2bc5..0000000000
--- a/sources/projects/roman-numeral/testing.md
+++ /dev/null
@@ -1,17 +0,0 @@
-The following table contains appropriate examples for testing a Roman Numeral
-Conversion program:
-
-| Description | Input | Output |
-| ------------- | ----- | -------------------------------------------------- |
-| No Input | | "Usage: please provide a string of roman numerals" |
-| Invalid Input | "XT" | "Error: invalid string of roman numerals" |
-| Empty Input | "" | 0 |
-| Single I | "I" | 1 |
-| Single V | "V" | 5 |
-| Single X | "X" | 10 |
-| Single L | "L" | 50 |
-| Single C | "C" | 100 |
-| Single D | "D" | 500 |
-| Single M | "M" | 1000 |
-| Addition | "XXV" | 25 |
-| Subtraction | "XIV" | 14 |
diff --git a/sources/projects/rot13/testing.md b/sources/projects/rot13/testing.md
deleted file mode 100644
index fdef1627ee..0000000000
--- a/sources/projects/rot13/testing.md
+++ /dev/null
@@ -1,10 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|--------------|-------|--------|
-| No Input | | "Usage: please provide a string to encrypt" |
-| Empty Input | "" | "Usage: please provide a string to encrypt" |
-| Sample Input: Lower Case | the quick brown fox jumped over the lazy dog | gur dhvpx oebja sbk whzcrq bire gur ynml qbt |
-| Sample Input: Upper Case | THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG | GUR DHVPX OEBJA SBK WHZCRQ BIRE GUR YNML QBT |
-| Sample Input: Punctuation | The quick brown fox jumped. Was it over the lazy dog? | Gur dhvpx oebja sbk whzcrq. Jnf vg bire gur ynml qbt? |
diff --git a/sources/projects/selection-sort/testing.md b/sources/projects/selection-sort/testing.md
deleted file mode 100644
index ddb76c38da..0000000000
--- a/sources/projects/selection-sort/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|------------------------------|-------|--------|
-| No Input | | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Empty Input | "" | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Not a list | 1 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Wrong Format | 4 5 3 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Sample Input | 4, 5, 3, 1, 2 | 1, 2, 3, 4, 5 |
-| Sample Input: With Duplicate | 4, 5, 3, 1, 4, 2 | 1, 2, 3, 4, 4, 5 |
-| Sample Input: Already Sorted | 1, 2, 3, 4, 5 | 1, 2, 3, 4, 5 |
-| Sample Input: Reverse Sorted | 9, 8, 7, 6, 5, 4, 3, 2, 1 | 1, 2, 3, 4, 5, 6, 7, 8, 9 |
diff --git a/sources/projects/sleep-sort/testing.md b/sources/projects/sleep-sort/testing.md
deleted file mode 100644
index ddb76c38da..0000000000
--- a/sources/projects/sleep-sort/testing.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The following table contains various test cases that you can use to
-verify the correctness of your solution:
-
-| Description | Input | Output |
-|------------------------------|-------|--------|
-| No Input | | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Empty Input | "" | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Not a list | 1 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Invalid Input: Wrong Format | 4 5 3 | Usage: please provide a list of at least two integers to sort in the format "1, 2, 3, 4, 5" |
-| Sample Input | 4, 5, 3, 1, 2 | 1, 2, 3, 4, 5 |
-| Sample Input: With Duplicate | 4, 5, 3, 1, 4, 2 | 1, 2, 3, 4, 4, 5 |
-| Sample Input: Already Sorted | 1, 2, 3, 4, 5 | 1, 2, 3, 4, 5 |
-| Sample Input: Reverse Sorted | 9, 8, 7, 6, 5, 4, 3, 2, 1 | 1, 2, 3, 4, 5, 6, 7, 8, 9 |
diff --git a/sources/projects/transpose-matrix/testing.md b/sources/projects/transpose-matrix/testing.md
deleted file mode 100644
index 9c496a3d28..0000000000
--- a/sources/projects/transpose-matrix/testing.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Verify that the actual output matches the expected output (see [requirements](#requirements))
-
-| Description | Cols | Rows | Matrix | Output |
-| ----------------------- |:-----:|:-----:|:----------------------:| -------------------------------------------------------------------------:|
-| No input | | | | Usage: please enter the dimension of the matrix and the serialized matrix |
-| Missing input: Size | | | ```1, 2, 3, 4, 5, 6``` | Usage: please enter the dimension of the matrix and the serialized matrix |
-| Missing input: integers | 3 | 3 | | Usage: please enter the dimension of the matrix and the serialized matrix |
-| Sample input | 3 | 2 | ```1, 2, 3, 4, 5, 6``` | ```1, 4, 2, 5, 3, 6``` |