Created
September 17, 2023 05:04
-
-
Save 0xJchen/9693396ef7b8139014825478b3e8ba6e to your computer and use it in GitHub Desktop.
AVL-Tree Testcase Generator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Function to generate a single test file | |
generate_test_file() { | |
local filename=$1 | |
local num_commands=$2 | |
> "$filename" | |
# Generate random 'i' and 'd' commands with random numbers | |
for (( j=0; j<$num_commands; j++ )); do | |
cmd_type=$(($RANDOM % 2)) | |
num=$(($RANDOM % 1000)) | |
if [ $cmd_type -eq 0 ]; then | |
echo -n "i$num " >> "$filename" | |
else | |
echo -n "d$num " >> "$filename" | |
fi | |
done | |
for (( j=0; j<$num_commands; j++ )); do | |
cmd_type=$(($RANDOM % 2)) | |
num=$(($RANDOM % 100)) | |
echo -n "d$num " >> "$filename" | |
done | |
for (( j=0; j<$num_commands; j++ )); do | |
cmd_type=$(($RANDOM % 2)) | |
num=$(($RANDOM % 100)) | |
echo -n "i$num " >> "$filename" | |
done | |
# Add a 'p' at the end of each file | |
echo "p" >> "$filename" | |
} | |
# Generate N test files | |
for i in {1..5}; do | |
echo "Generating test file $i..." | |
generate_test_file "testfile_$i.avl" 5000 | |
done | |
# Run tests for each file and collect coverage data | |
for i in {1..5}; do | |
echo "Running test with test file $i..." | |
coverage run -a avl.py "testfile_$i.avl" | |
done | |
# Generate the coverage report | |
echo "Generating coverage report..." | |
coverage report | |
# Generate an HTML report, if desired | |
coverage html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment