From c6a3c2534c2915de58fbba9a9935e33883cc4da4 Mon Sep 17 00:00:00 2001 From: ldXiao Date: Sun, 16 May 2021 11:29:22 -0400 Subject: [PATCH] initial run --- grade.md | 215 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 185 insertions(+), 30 deletions(-) diff --git a/grade.md b/grade.md index ba656ff..d1a96f6 100644 --- a/grade.md +++ b/grade.md @@ -1,32 +1,187 @@ -## Grading +# CORE TESTS +Reading pa3-tests/core/stmt_while.py.ast.typed ++ Test: pa3-tests/core/stmt_while.py.ast.typed passed +Reading pa3-tests/core/op_div_mod.py.ast.typed ++ Test: pa3-tests/core/op_div_mod.py.ast.typed passed +Reading pa3-tests/core/object_attr_get_none.py.ast.typed ++ Test: pa3-tests/core/object_attr_get_none.py.ast.typed passed +Reading pa3-tests/core/call.py.ast.typed ++ Test: pa3-tests/core/call.py.ast.typed passed +Reading pa3-tests/core/id_local.py.ast.typed ++ Test: pa3-tests/core/id_local.py.ast.typed passed +Reading pa3-tests/core/list_get_element.py.ast.typed ++ Test: pa3-tests/core/list_get_element.py.ast.typed passed +Reading pa3-tests/core/list_set_element_none.py.ast.typed ++ Test: pa3-tests/core/list_set_element_none.py.ast.typed passed +Reading pa3-tests/core/object_method_none.py.ast.typed ++ Test: pa3-tests/core/object_method_none.py.ast.typed passed +Reading pa3-tests/core/nested.py.ast.typed ++ Test: pa3-tests/core/nested.py.ast.typed passed +Reading pa3-tests/core/str_cat.py.ast.typed ++ Test: pa3-tests/core/str_cat.py.ast.typed passed +Reading pa3-tests/core/literal_bool.py.ast.typed ++ Test: pa3-tests/core/literal_bool.py.ast.typed passed +Reading pa3-tests/core/list_set_element_oob_1.py.ast.typed ++ Test: pa3-tests/core/list_set_element_oob_1.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list.py.ast.typed passed +Reading pa3-tests/core/object_attr_set_none.py.ast.typed ++ Test: pa3-tests/core/object_attr_set_none.py.ast.typed passed +Reading pa3-tests/core/error_invalid_print.py.ast.typed ++ Test: pa3-tests/core/error_invalid_print.py.ast.typed passed +Reading pa3-tests/core/id_global.py.ast.typed ++ Test: pa3-tests/core/id_global.py.ast.typed passed +Reading pa3-tests/core/pass.py.ast.typed ++ Test: pa3-tests/core/pass.py.ast.typed passed +Reading pa3-tests/core/len_invalid_1.py.ast.typed ++ Test: pa3-tests/core/len_invalid_1.py.ast.typed passed +Reading pa3-tests/core/stmt_for_str_eval.py.ast.typed ++ Test: pa3-tests/core/stmt_for_str_eval.py.ast.typed passed +Reading pa3-tests/core/literal_str.py.ast.typed ++ Test: pa3-tests/core/literal_str.py.ast.typed passed +Reading pa3-tests/core/op_cmp_int.py.ast.typed ++ Test: pa3-tests/core/op_cmp_int.py.ast.typed passed +Reading pa3-tests/core/str_cat_2.py.ast.typed ++ Test: pa3-tests/core/str_cat_2.py.ast.typed passed +Reading pa3-tests/core/op_sub.py.ast.typed ++ Test: pa3-tests/core/op_sub.py.ast.typed passed +Reading pa3-tests/core/object_method_nested.py.ast.typed ++ Test: pa3-tests/core/object_method_nested.py.ast.typed passed +Reading pa3-tests/core/list_len_empty.py.ast.typed ++ Test: pa3-tests/core/list_len_empty.py.ast.typed passed +Reading pa3-tests/core/str_get_element_oob_1.py.ast.typed ++ Test: pa3-tests/core/str_get_element_oob_1.py.ast.typed passed +Reading pa3-tests/core/op_negate.py.ast.typed ++ Test: pa3-tests/core/op_negate.py.ast.typed passed +Reading pa3-tests/core/list_get_element_oob_1.py.ast.typed ++ Test: pa3-tests/core/list_get_element_oob_1.py.ast.typed passed +Reading pa3-tests/core/var_assign.py.ast.typed ++ Test: pa3-tests/core/var_assign.py.ast.typed passed +Reading pa3-tests/core/literal_int.py.ast.typed ++ Test: pa3-tests/core/literal_int.py.ast.typed passed +Reading pa3-tests/core/object_attr_get.py.ast.typed ++ Test: pa3-tests/core/object_attr_get.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_nested.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_nested.py.ast.typed passed +Reading pa3-tests/core/list_get_element_complex.py.ast.typed ++ Test: pa3-tests/core/list_get_element_complex.py.ast.typed passed +Reading pa3-tests/core/stmt_return_early.py.ast.typed ++ Test: pa3-tests/core/stmt_return_early.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_nested_same_var.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_nested_same_var.py.ast.typed passed +Reading pa3-tests/core/op_logical.py.ast.typed ++ Test: pa3-tests/core/op_logical.py.ast.typed passed +Reading pa3-tests/core/expr_if.py.ast.typed ++ Test: pa3-tests/core/expr_if.py.ast.typed passed +Reading pa3-tests/core/error_mod_zero.py.ast.typed ++ Test: pa3-tests/core/error_mod_zero.py.ast.typed passed +Reading pa3-tests/core/stmt_for_str_same_var.py.ast.typed ++ Test: pa3-tests/core/stmt_for_str_same_var.py.ast.typed passed +Reading pa3-tests/core/str_cmp.py.ast.typed ++ Test: pa3-tests/core/str_cmp.py.ast.typed passed +Reading pa3-tests/core/op_mul.py.ast.typed ++ Test: pa3-tests/core/op_mul.py.ast.typed passed +Reading pa3-tests/core/list_concat_2.py.ast.typed ++ Test: pa3-tests/core/list_concat_2.py.ast.typed passed +Reading pa3-tests/core/list_get_element_oob_2.py.ast.typed ++ Test: pa3-tests/core/list_get_element_oob_2.py.ast.typed passed +Reading pa3-tests/core/list_len.py.ast.typed ++ Test: pa3-tests/core/list_len.py.ast.typed passed +Reading pa3-tests/core/input.py.ast.typed ++ Test: pa3-tests/core/input.py.ast.typed passed +Reading pa3-tests/core/stmt_for_str.py.ast.typed ++ Test: pa3-tests/core/stmt_for_str.py.ast.typed passed +Reading pa3-tests/core/str_get_element_oob_2.py.ast.typed ++ Test: pa3-tests/core/str_get_element_oob_2.py.ast.typed passed +Reading pa3-tests/core/object_method.py.ast.typed ++ Test: pa3-tests/core/object_method.py.ast.typed passed +Reading pa3-tests/core/call_with_args.py.ast.typed ++ Test: pa3-tests/core/call_with_args.py.ast.typed passed +Reading pa3-tests/core/nested2.py.ast.typed ++ Test: pa3-tests/core/nested2.py.ast.typed passed +Reading pa3-tests/core/str_get_element_oob_3.py.ast.typed ++ Test: pa3-tests/core/str_get_element_oob_3.py.ast.typed passed +Reading pa3-tests/core/op_add.py.ast.typed ++ Test: pa3-tests/core/op_add.py.ast.typed passed +Reading pa3-tests/core/op_cmp_bool.py.ast.typed ++ Test: pa3-tests/core/op_cmp_bool.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_return.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_return.py.ast.typed passed +Reading pa3-tests/core/stmt_for_str_empty.py.ast.typed ++ Test: pa3-tests/core/stmt_for_str_empty.py.ast.typed passed +Reading pa3-tests/core/object_attr_set.py.ast.typed ++ Test: pa3-tests/core/object_attr_set.py.ast.typed passed +Reading pa3-tests/core/list_concat_none.py.ast.typed ++ Test: pa3-tests/core/list_concat_none.py.ast.typed passed +Reading pa3-tests/core/predef_constructors.py.ast.typed ++ Test: pa3-tests/core/predef_constructors.py.ast.typed passed +Reading pa3-tests/core/list_get_element_oob_3.py.ast.typed ++ Test: pa3-tests/core/list_get_element_oob_3.py.ast.typed passed +Reading pa3-tests/core/stmt_if.py.ast.typed ++ Test: pa3-tests/core/stmt_if.py.ast.typed passed +Reading pa3-tests/core/list_set_element.py.ast.typed ++ Test: pa3-tests/core/list_set_element.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_modify.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_modify.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_nonlocal.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_nonlocal.py.ast.typed passed +Reading pa3-tests/core/object_attr_set_eval_order.py.ast.typed ++ Test: pa3-tests/core/object_attr_set_eval_order.py.ast.typed passed +Reading pa3-tests/core/error_div_zero.py.ast.typed ++ Test: pa3-tests/core/error_div_zero.py.ast.typed passed +Reading pa3-tests/core/op_is.py.ast.typed ++ Test: pa3-tests/core/op_is.py.ast.typed passed +Reading pa3-tests/core/list_set_element_oob_3.py.ast.typed ++ Test: pa3-tests/core/list_set_element_oob_3.py.ast.typed passed +Reading pa3-tests/core/object_init.py.ast.typed ++ Test: pa3-tests/core/object_init.py.ast.typed passed +Reading pa3-tests/core/list_concat.py.ast.typed ++ Test: pa3-tests/core/list_concat.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_eval.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_eval.py.ast.typed passed +Reading pa3-tests/core/len_invalid_2.py.ast.typed ++ Test: pa3-tests/core/len_invalid_2.py.ast.typed passed +Reading pa3-tests/core/object_method_override.py.ast.typed ++ Test: pa3-tests/core/object_method_override.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_none.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_none.py.ast.typed passed +Reading pa3-tests/core/stmt_for_list_empty.py.ast.typed ++ Test: pa3-tests/core/stmt_for_list_empty.py.ast.typed passed +Reading pa3-tests/core/str_get_element.py.ast.typed ++ Test: pa3-tests/core/str_get_element.py.ast.typed passed +Reading pa3-tests/core/stmt_for_str_nested.py.ast.typed ++ Test: pa3-tests/core/stmt_for_str_nested.py.ast.typed passed +Reading pa3-tests/core/object_method_complex_call.py.ast.typed ++ Test: pa3-tests/core/object_method_complex_call.py.ast.typed passed +Reading pa3-tests/core/list_set_element_oob_2.py.ast.typed ++ Test: pa3-tests/core/list_set_element_oob_2.py.ast.typed passed +Reading pa3-tests/core/str_len.py.ast.typed ++ Test: pa3-tests/core/str_len.py.ast.typed passed +Reading pa3-tests/core/list_get_element_none.py.ast.typed ++ Test: pa3-tests/core/list_get_element_none.py.ast.typed passed +Tests: 80 passed, 0 failed, and 0 ignored. -Core Tests: 59/59 +# BENCHMARK CORRECTNESS TESTS +Reading pa3-tests/benchmarks/prime.py.ast.typed ++ Test: pa3-tests/benchmarks/prime.py.ast.typed passed +Reading pa3-tests/benchmarks/sieve.py.ast.typed ++ Test: pa3-tests/benchmarks/sieve.py.ast.typed passed +Reading pa3-tests/benchmarks/exp.py.ast.typed ++ Test: pa3-tests/benchmarks/exp.py.ast.typed passed +Reading pa3-tests/benchmarks/tree.py.ast.typed ++ Test: pa3-tests/benchmarks/tree.py.ast.typed passed +Reading pa3-tests/benchmarks/stdlib.py.ast.typed ++ Test: pa3-tests/benchmarks/stdlib.py.ast.typed passed +Tests: 5 passed, 0 failed, and 0 ignored. -Extra: 21/21 - -========================= - -Standard tests: 80/80 - -Work Log: 10/10 - -Additional Tests: 10/10 - -Code style: 10/10 - -Improvements: +1 - -Overall: 111/110 - -Congratulations! Your analyzer has solved every test case correctly again. Your improvement is solid and easy to verify. The two-passes design is clear and direct. - -## Testing - -The additional test cases provided in the `student_contributed` directory are carefully selected and well structured. I am surprised that you managed to reproduce those error messages from reference-implementation. Some of them are weird and probably not worth reproducing, but thanks for reducing the workload on my end. - -## Miscellaneous -The Code structure is clear and consistent but could still be improved by removing commented codes (at least in the final version). - -The automatic test shell scripts are very helpful. It would be even better if you could organize them with CI tools like travis.ci or gitflow. It is totally optional but it would be fun to construct a CI pipeline. - -The worklog contains some typos that could be avoided by adding a spellchecker to the IDE or CI. +# BENCHMARK PERFORMANCE TESTS +Reading pa3-tests/benchmarks/prime.py.ast.typed +Cycles executed = 65741 +Reading pa3-tests/benchmarks/sieve.py.ast.typed +Cycles executed = 65720 +Reading pa3-tests/benchmarks/exp.py.ast.typed +Cycles executed = 29039 +Reading pa3-tests/benchmarks/tree.py.ast.typed +Cycles executed = 239089 +Reading pa3-tests/benchmarks/stdlib.py.ast.typed +Cycles executed = 34689