grade scripts

This commit is contained in:
woojin
2023-08-26 00:30:22 +09:00
parent 176d0df5d2
commit 6858e18da2
27 changed files with 141 additions and 430 deletions

105
scripts/grade.sh Executable file
View File

@@ -0,0 +1,105 @@
#!/usr/bin/env bash
set -e
set -uo pipefail
IFS=$'\n\t'
# Imports library.
BASEDIR=$(dirname "$0")
source $BASEDIR/grade-utils.sh
RUNNER="cargo"
# Lints.
run_linters || exit 1
# Executes test for each runner.
echo "Running with $RUNNER..."
TEST_NAME=$(printf "TEST%02d" $1)
case $TEST_NAME in
TEST01)
TESTS=(
"assignments::assignment01::small_exercises_grade::test"
)
;;
TEST02)
TESTS=(
"assignments::assignment02::small_exercises_grade::test"
"assignments::assignment02::vec_and_mat_grade::test"
)
;;
TEST03)
TESTS=(
"assignments::assignment03::custom_operators_grade::test"
"assignments::assignment03::parse_shell_grade::test"
"assignments::assignment03::small_exercises_grade::test"
)
;;
TEST04)
TESTS=(
"assignments::assignment04::grade::test"
)
;;
TEST06)
TESTS=(
"assignments::assignment06::semiring_grade::test"
"assignments::assignment06::symbolic_differentiation_grade::test"
)
;;
TEST07)
TESTS=(
"assignments::assignment07::generator_grade::test"
"assignments::assignment07::my_itertools_grade::test"
"assignments::assignment07::small_exercises_grade::test"
"assignments::assignment07::transform_grade::test"
)
;;
TEST08)
TESTS=(
"assignments::assignment08::church_grade::test"
"assignments::assignment08::small_exercises_grade::test"
)
;;
TEST09)
TESTS=(
"assignments::assignment09::bigint_grade::test"
"assignments::assignment09::small_exercises_grade::test"
)
;;
TEST10)
TESTS=(
"assignments::assignment10::labyrinth_grade::test"
"assignments::assignment10::small_exercises_grade::test"
)
;;
TEST11)
TESTS=(
"assignments::assignment11::graph_grade::test_graph"
"assignments::assignment11::linked_list_grade::test_linked_list"
"assignments::assignment11::mock_storage_grade::test_mock_storage"
"assignments::assignment11::tv_room_grade::test_tv_room"
)
;;
TEST12)
TESTS=(
"assignments::assignment12::card_grade"
"assignments::assignment12::demux_grade::test_demux"
"assignments::assignment12::funnel_grade::test_funnel"
"assignments::assignment12::small_exercises_grade::test_pingpong"
)
;;
TEST13)
TESTS=(
"assignments::assignment13::small_exercises_grade::test"
)
;;
*)
echo_err "Invalid test name: $TEST_NAME"
exit 1
;;
esac
# Runs tests.
SCORE=$(run_tests)
echo Your score: $SCORE