aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtest/test.sh67
1 files changed, 36 insertions, 31 deletions
diff --git a/test/test.sh b/test/test.sh
index e8eac6d..bd7f430 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -1,41 +1,46 @@
#!/bin/sh
DATA_DIR="data"
-
SRC_DIR="../src"
-SORTER="$SRC_DIR/sorter -a isort"
-REF="sort -s -n -k 2" # '-s' for using a stable algo
+SORTER="$SRC_DIR/sorter"
-total=0
-passed=0
-failed=0
+ALGORITHMS="isort qsort"
+summaries=""
-for TEST_FILE in "$DATA_DIR"/*; do
- ((total++))
- FILE_NAME=$(basename "$TEST_FILE")
- DIFF_FILE="diff/$FILE_NAME.diff"
+add_summary() {
+ summaries="$summaries
+==============================
+Test Summary for $1:
+Total tests: $2
+Passed: $3
+Failed: $4
+=============================="
+}
- echo "Testing $FILE_NAME ..."
+for ALGORITHM in $ALGORITHMS; do
+ total=0
+ passed=0
+ failed=0
- 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
+ for TEST_FILE in "$DATA_DIR"/*; do
+ total=$((total + 1))
+ FILE_NAME=$(basename "$TEST_FILE")
+ echo "Testing $FILE_NAME with $ALGORITHM ..."
+
+ "$SORTER" -a "$ALGORITHM" "$TEST_FILE" > temp
+ OUTPUT=$(python ./check.py "$TEST_FILE" temp 2>&1)
-# Summary overview
-echo "=============================="
-echo "Test Summary:"
-echo "Total tests: $total"
-echo "Passed: $passed"
-echo "Failed: $failed"
-echo "=============================="
+ if [ -z "$OUTPUT" ]; then
+ echo "Passed: $FILE_NAME"
+ passed=$((passed + 1))
+ else
+ echo "Failed: $FILE_NAME"
+ failed=$((failed + 1))
+ fi
+ done
+
+ add_summary "$ALGORITHM" "$total" "$passed" "$failed"
+done
-if [ $failed -ne 0 ]; then
- echo "Diff files for failed tests are saved"
-fi
+rm temp
+echo "$summaries"