aboutsummaryrefslogtreecommitdiff
path: root/test/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/test.sh')
-rwxr-xr-xtest/test.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/test.sh b/test/test.sh
new file mode 100755
index 0000000..c0dbe2b
--- /dev/null
+++ b/test/test.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+DATA_DIR="data"
+
+SRC_DIR="../src"
+SORTER="$SRC_DIR/sorter"
+REF="sort -s -n -k 2" # '-s' for using a stable algo
+
+total=0
+passed=0
+failed=0
+
+for TEST_FILE in "$DATA_DIR"/*; do
+ ((total++))
+ FILE_NAME=$(basename "$TEST_FILE")
+ DIFF_FILE="diff/$FILE_NAME.diff"
+
+ echo "Testing $FILE_NAME ..."
+
+ diff -u <($REF "$TEST_FILE") <($SORTER "$TEST_FILE") > "$DIFF_FILE"
+ if [ ! -s "$DIFF_FILE" ]; then
+ echo "Passed: $TEST_FILE"
+ ((passed++))
+ rm -f "$DIFF_FILE"
+ else
+ echo "Failed: $TEST_FILE"
+ ((failed++))
+ fi
+done
+
+# Summary overview
+echo "=============================="
+echo "Test Summary:"
+echo "Total tests: $total"
+echo "Passed: $passed"
+echo "Failed: $failed"
+echo "=============================="
+
+if [ $failed -ne 0 ]; then
+ echo "Diff files for failed tests are saved"
+fi