From 68102a57cf31a97561407f3e1d3265ba0ba545d3 Mon Sep 17 00:00:00 2001 From: mithe24 Date: Mon, 13 Oct 2025 13:10:27 +0200 Subject: test(all): Added test script for testing against sort Added test.sh that tests our program against sort Added generate_test_data.sh for generating a large test data set --- test.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 test.sh (limited to 'test.sh') diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..0a1f6b8 --- /dev/null +++ b/test.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +TEST_DIR="test" +DATA_DIR="$TEST_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="$TEST_DIR/$FILE_NAME.diff" + + 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 in $TEST_DIR/" +fi -- cgit v1.2.3-70-g09d2