modify grading criteria

This commit is contained in:
woojin
2023-08-23 16:52:57 +09:00
parent 5df7e204e3
commit da46ba98c2
3 changed files with 36 additions and 116 deletions

View File

@@ -76,18 +76,19 @@ _run_tests_with() {
exit 1 exit 1
fi fi
local PASSED=0 local FAILED=0
local NUM_TESTS=$(echo $TESTS | wc -w)
for TEST in ${TESTS[@]}; do for TEST in ${TESTS[@]}; do
local TEST_CMD="$CARGO test $* --lib -- --exact $TEST" local TEST_CMD="$CARGO test $* --lib -- $TEST"
timeout ${TIMEOUT:-20s} bash -c "$TEST_CMD &> /dev/null" timeout ${TIMEOUT:-20s} bash -c "$TEST_CMD 2> /dev/null" 1>&2
case $? in case $? in
0) PASSED="$((PASSED + 1))";; 0) ;;
124) echo_err "Test timed out: $TEST_CMD";; 124) echo_err "Test timed out: $TEST_CMD"; FAILED=$((FAILED + 1));;
*) echo_err "Test failed: $TEST_CMD";; *) echo_err "Test failed: $TEST_CMD"; FAILED=$((FAILED + 1));;
esac esac
done done
echo $PASSED echo $((NUM_TESTS - FAILED))
} }
# example: run_tests # example: run_tests

View File

@@ -18,13 +18,11 @@ run_linters || exit 0
echo "Running with $RUNNER..." echo "Running with $RUNNER..."
echo "Below lines will show only failed tests." echo "Below lines will show only failed tests."
ASSIGNMENT=$(printf "assignment%02d" $1)
TEST_NAME=$(printf "TEST%02d" $1) TEST_NAME=$(printf "TEST%02d" $1)
TESTS=$(get_test_cases $TEST_NAME) TESTS=$(get_test_cases $TEST_NAME)
# Runs tests. # Runs tests.
SCORE=$(run_tests) SCORE=$(run_tests)
echo Your score: $SCORE
echo Your score: ${SCORE}
exit $SCORE exit $SCORE

View File

@@ -1,146 +1,67 @@
#!/usr/bin/env bash #!/usr/bin/env bash
TEST01=( TEST01=(
"assignments::assignment01::small_exercises_grade::test::test_add_7_3" "assignments::assignment01::small_exercises_grade::test"
"assignments::assignment01::small_exercises_grade::test::test_add_overflow"
"assignments::assignment01::small_exercises_grade::test::test_sub_7_3"
"assignments::assignment01::small_exercises_grade::test::test_sub_overflow"
) )
TEST02=( TEST02=(
"assignments::assignment02::small_exercises_grade::test::test_capitalize" "assignments::assignment02::small_exercises_grade::test"
"assignments::assignment02::small_exercises_grade::test::test_chooses" "assignments::assignment02::vec_and_mat_grade::test"
"assignments::assignment02::small_exercises_grade::test::test_fahrenheit"
"assignments::assignment02::small_exercises_grade::test::test_gcd"
"assignments::assignment02::small_exercises_grade::test::test_sum_array"
"assignments::assignment02::small_exercises_grade::test::test_up3"
"assignments::assignment02::small_exercises_grade::test::test_zip"
"assignments::assignment02::vec_and_mat_grade::test::test_fibonacci"
"assignments::assignment02::vec_and_mat_grade::test::test_inverse"
) )
TEST03=( TEST03=(
"assignments::assignment03::custom_operators_grade::test::test_my_and_then" "assignments::assignment03::custom_operators_grade::test"
"assignments::assignment03::custom_operators_grade::test::test_my_map"
"assignments::assignment03::custom_operators_grade::test::test_my_option_op_or"
"assignments::assignment03::parse_shell_grade::test::test_shell" "assignments::assignment03::parse_shell_grade::test::test_shell"
"assignments::assignment03::small_exercises_grade::test::test_editor" "assignments::assignment03::small_exercises_grade::test"
"assignments::assignment03::small_exercises_grade::test::test_median"
"assignments::assignment03::small_exercises_grade::test::test_mode"
"assignments::assignment03::small_exercises_grade::test::test_next_weekday"
"assignments::assignment03::small_exercises_grade::test::test_organize"
"assignments::assignment03::small_exercises_grade::test::test_piglatin"
) )
TEST04=( TEST04=(
"assignments::assignment04::grade::test::test_context_calc_command" "assignments::assignment04::grade::test"
"assignments::assignment04::grade::test::test_context_calc_expression"
"assignments::assignment04::grade::test::test_parse"
) )
TEST06=( TEST06=(
"assignments::assignment06::semiring_grade::test::test_123" "assignments::assignment06::semiring_grade::test"
"assignments::assignment06::semiring_grade::test::test_24x" "assignments::assignment06::symbolic_differentiation_grade::test"
"assignments::assignment06::semiring_grade::test::test_2x3_3x2_5x_12"
"assignments::assignment06::semiring_grade::test::test_2x_3"
"assignments::assignment06::semiring_grade::test::test_polynomial_f64"
"assignments::assignment06::semiring_grade::test::test_polynomial_p_u64"
"assignments::assignment06::semiring_grade::test::test_polynomial_u64"
"assignments::assignment06::semiring_grade::test::test_polynomial_xy"
"assignments::assignment06::semiring_grade::test::test_x"
"assignments::assignment06::semiring_grade::test::test_x3"
"assignments::assignment06::semiring_grade::test::test_x5_1"
"assignments::assignment06::semiring_grade::test::test_zero_remove"
"assignments::assignment06::symbolic_differentiation_grade::test::test_differentiate_complex"
"assignments::assignment06::symbolic_differentiation_grade::test::test_differentiate_simple"
"assignments::assignment06::symbolic_differentiation_grade::test::test_rational_arithmetic"
"assignments::assignment06::symbolic_differentiation_grade::test::test_rational_arithmetic_long"
) )
TEST07=( TEST07=(
"assignments::assignment07::generator_grade::test::test_generator" "assignments::assignment07::generator_grade::test"
"assignments::assignment07::my_itertools_grade::test::test_itertools" "assignments::assignment07::my_itertools_grade::test"
"assignments::assignment07::small_exercises_grade::test::test_fib_iter" "assignments::assignment07::small_exercises_grade::test"
"assignments::assignment07::small_exercises_grade::test::test_find" "assignments::assignment07::transform_grade::test"
"assignments::assignment07::small_exercises_grade::test::test_find_usize"
"assignments::assignment07::small_exercises_grade::test::test_large"
"assignments::assignment07::small_exercises_grade::test::test_range_iter"
"assignments::assignment07::small_exercises_grade::test::test_small"
"assignments::assignment07::transform_grade::test::test_transform_identity"
"assignments::assignment07::transform_grade::test::test_transform_repeat"
"assignments::assignment07::transform_grade::test::test_transform_repeat_until_converge"
"assignments::assignment07::transform_grade::test::test_transform_tuple"
) )
TEST08=( TEST08=(
"assignments::assignment08::church_grade::test::be_honest" "assignments::assignment08::church_grade::test"
"assignments::assignment08::church_grade::test::engineering_isnt_just_mathematics" "assignments::assignment08::small_exercises_grade::test"
"assignments::assignment08::church_grade::test::you_must_pass_these_examples"
"assignments::assignment08::small_exercises_grade::test::test_count_repeat"
"assignments::assignment08::small_exercises_grade::test::test_either2_map"
"assignments::assignment08::small_exercises_grade::test::test_funny_map"
"assignments::assignment08::small_exercises_grade::test::test_repeat"
) )
TEST09=( TEST09=(
"assignments::assignment09::bigint_grade::test::test_inf_prec_complex" "assignments::assignment09::bigint_grade::test"
"assignments::assignment09::bigint_grade::test::test_inf_prec_simple" "assignments::assignment09::small_exercises_grade::test"
"assignments::assignment09::matmul_grade::test::dot_product_test"
"assignments::assignment09::matmul_grade::test::matmul_test"
"assignments::assignment09::matmul_grade::test::vec_add_test"
"assignments::assignment09::small_exercises_grade::test::test_calculate_mean"
"assignments::assignment09::small_exercises_grade::test::test_find_count_n"
"assignments::assignment09::small_exercises_grade::test::test_interleave3"
"assignments::assignment09::small_exercises_grade::test::test_interleave_n"
"assignments::assignment09::small_exercises_grade::test::test_is_fibonacci"
"assignments::assignment09::small_exercises_grade::test::test_is_palindrome"
"assignments::assignment09::small_exercises_grade::test::test_k_smallest_man"
"assignments::assignment09::small_exercises_grade::test::test_position_median"
"assignments::assignment09::small_exercises_grade::test::test_sigma"
"assignments::assignment09::small_exercises_grade::test::test_sum_is_n"
"assignments::assignment09::small_exercises_grade::test::test_two_dimensional_sum"
) )
TEST10=( TEST10=(
"assignments::assignment10::labyrinth_grade::test::can_every_husband_rescue_his_wife" "assignments::assignment10::labyrinth_grade::test"
"assignments::assignment10::small_exercises_grade::test::test_du_sort" "assignments::assignment10::small_exercises_grade::test"
"assignments::assignment10::small_exercises_grade::test::test_inversion"
"assignments::assignment10::small_exercises_grade::test::test_natural_join"
"assignments::assignment10::small_exercises_grade::test::test_pythagorean"
"assignments::assignment10::small_exercises_grade::test::test_remove_duplicate"
"assignments::assignment10::small_exercises_grade::test::test_remove_even"
"assignments::assignment10::small_exercises_grade::test::test_traverse_preorder"
) )
TEST11=( TEST11=(
"assignments::assignment11::graph_grade::test_graph::test_graph" "assignments::assignment11::graph_grade::test_graph"
"assignments::assignment11::linked_list_grade::test_linked_list::test_chunk_reverse" "assignments::assignment11::linked_list_grade::test_linked_list"
"assignments::assignment11::linked_list_grade::test_linked_list::test_flatten" "assignments::assignment11::mock_storage_grade::test_mock_storage"
"assignments::assignment11::linked_list_grade::test_linked_list::test_from_as_vec" "assignments::assignment11::tv_room_grade::test_tv_room"
"assignments::assignment11::linked_list_grade::test_linked_list::test_insert"
"assignments::assignment11::linked_list_grade::test_linked_list::test_length"
"assignments::assignment11::linked_list_grade::test_linked_list::test_map"
"assignments::assignment11::linked_list_grade::test_linked_list::test_pair_map"
"assignments::assignment11::linked_list_grade::test_linked_list::test_push_pop"
"assignments::assignment11::mock_storage_grade::test_mock_storage::test_mock_storage"
"assignments::assignment11::tv_room_grade::test_tv_room::test_tv_room"
) )
TEST12=( TEST12=(
"assignments::assignment12::card_grade::test_card::play" "assignments::assignment12::card_grade"
"assignments::assignment12::demux_grade::test_demux::test_demux" "assignments::assignment12::demux_grade::test_demux"
"assignments::assignment12::funnel_grade::test_funnel::test_funnel_concurrent" "assignments::assignment12::funnel_grade::test_funnel"
"assignments::assignment12::small_exercises_grade::test_pingpong::test_ping_pong" "assignments::assignment12::small_exercises_grade::test_pingpong"
"assignments::assignment12::small_exercises_grade::test_pingpong::test_scoped_thread"
"assignments::assignment12::small_exercises_grade::test_pingpong::test_scoped_thread_concurrent"
) )
TEST13=( TEST13=(
"assignments::assignment13::small_exercises_grade::test::dot_product_test" "assignments::assignment13::small_exercises_grade::test"
"assignments::assignment13::small_exercises_grade::test::matmul_test"
"assignments::assignment13::small_exercises_grade::test::test_interleave3_par"
"assignments::assignment13::small_exercises_grade::test::test_sigma_par"
"assignments::assignment13::small_exercises_grade::test::vec_add_test"
) )
get_test_cases() { get_test_cases() {