feat: intentionally skipping the logic to check for the input #3
379 passed, 15 failed and 0 skipped
❌ pytest.xml
394 tests were completed in 12s with 379 passed, 15 failed and 0 skipped.
| Test suite | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| pytest | 379✅ | 15❌ | 12s |
❌ pytest
evaluation_function.tests.test_analyzer.TestLoopInfo
✅ test_for_loop_description_with_bounds
✅ test_for_loop_description_without_bounds
✅ test_foreach_loop_description
✅ test_while_loop_description
✅ test_repeat_loop_description
evaluation_function.tests.test_analyzer.TestRecursionInfo
✅ test_linear_recursion_description
✅ test_divide_conquer_description
✅ test_binary_recursion_description
✅ test_multiple_recursion_description
evaluation_function.tests.test_analyzer.TestAnalysisResult
✅ test_get_complexity_string
✅ test_result_with_loops
evaluation_function.tests.test_analyzer.TestAnalyzerPatternBased
✅ test_constant_complexity_no_loops
✅ test_single_for_loop_linear
✅ test_nested_for_loops_quadratic
✅ test_triple_nested_loops_cubic
✅ test_while_loop_linear
✅ test_while_loop_logarithmic
✅ test_foreach_loop_linear
✅ test_repeat_until_loop
evaluation_function.tests.test_analyzer.TestAnalyzerRecursion
✅ test_simple_linear_recursion
✅ test_binary_recursion_exponential
✅ test_divide_and_conquer_merge_sort
✅ test_binary_search_recursion
✅ test_space_complexity_recursive
✅ test_space_complexity_divide_conquer
evaluation_function.tests.test_analyzer.TestAnalyzerAST
✅ test_analyze_ast_single_loop
✅ test_analyze_ast_nested_loops
✅ test_analyze_ast_global_statements
✅ test_analyze_ast_loop_with_conditional
evaluation_function.tests.test_analyzer.TestIterationEstimation
✅ test_constant_bounds
✅ test_variable_n_bound
✅ test_length_bound
evaluation_function.tests.test_analyzer.TestFeedbackGenerator
✅ test_generate_constant_feedback
✅ test_generate_linear_feedback
✅ test_generate_quadratic_feedback
✅ test_generate_recursion_feedback
✅ test_feedback_sections
✅ test_feedback_suggestions
evaluation_function.tests.test_analyzer.TestFeedbackFormats
✅ test_to_string_brief
✅ test_to_string_standard
✅ test_to_string_detailed
✅ test_to_dict
✅ test_format_for_student
✅ test_format_brief
evaluation_function.tests.test_analyzer.TestComplexityExplanations
✅ test_constant_explanation
✅ test_linear_explanation
✅ test_quadratic_explanation
evaluation_function.tests.test_analyzer.TestEdgeCases
✅ test_empty_code
✅ test_whitespace_only
✅ test_comments_only
✅ test_multiple_independent_loops
✅ test_deeply_nested_loops
✅ test_mixed_loop_types
✅ test_loop_with_constant_bound
✅ test_confidence_levels
evaluation_function.tests.test_analyzer.TestAnalyzerIntegration
✅ test_full_pipeline_linear
✅ test_full_pipeline_quadratic
✅ test_full_pipeline_recursive
✅ test_full_pipeline_exponential
evaluation_function.tests.test_analyzer.TestFeedbackSection
✅ test_section_creation
✅ test_section_importance_levels
evaluation_function.tests.test_analyzer.TestDetailedFeedback
✅ test_feedback_creation
✅ test_feedback_with_sections
✅ test_feedback_to_dict_structure
evaluation_function.tests.test_ast_builder.TestASTNodeTypes
✅ test_node_types_exist
✅ test_loop_types_exist
✅ test_operator_types_exist
evaluation_function.tests.test_ast_builder.TestProgramNode
✅ test_create_empty_program
✅ test_create_program_with_functions
✅ test_create_program_with_global_statements
✅ test_program_to_dict
evaluation_function.tests.test_ast_builder.TestFunctionNode
✅ test_create_simple_function
✅ test_create_function_with_parameters
✅ test_create_function_with_body
✅ test_create_recursive_function
✅ test_function_to_dict
evaluation_function.tests.test_ast_builder.TestBlockNode
✅ test_create_empty_block
✅ test_create_block_with_statements
✅ test_nested_blocks
evaluation_function.tests.test_ast_builder.TestLoopNode
✅ test_create_for_loop
✅ test_create_for_loop_with_step
✅ test_create_while_loop
✅ test_create_foreach_loop
✅ test_create_repeat_until_loop
✅ test_loop_nesting_level
✅ test_loop_estimated_iterations
✅ test_loop_to_dict
evaluation_function.tests.test_ast_builder.TestConditionalNode
✅ test_create_simple_if
✅ test_create_if_else
✅ test_create_if_elif_else
evaluation_function.tests.test_ast_builder.TestAssignmentNode
✅ test_create_simple_assignment
✅ test_create_array_assignment
✅ test_create_compound_assignment
evaluation_function.tests.test_ast_builder.TestExpressionNodes
✅ test_create_variable_node
✅ test_create_literal_int
✅ test_create_literal_float
✅ test_create_literal_string
✅ test_create_literal_bool
✅ test_create_binary_op_arithmetic
✅ test_create_binary_op_comparison
✅ test_create_binary_op_logical
✅ test_create_unary_op
✅ test_create_array_access_simple
✅ test_create_array_access_2d
✅ test_create_complex_expression
evaluation_function.tests.test_ast_builder.TestFunctionCallNode
✅ test_create_function_call_no_args
✅ test_create_function_call_with_args
✅ test_create_recursive_call
evaluation_function.tests.test_ast_builder.TestReturnNode
✅ test_create_return_with_value
✅ test_create_return_no_value
evaluation_function.tests.test_ast_builder.TestSourceLocation
✅ test_create_source_location
✅ test_create_source_location_with_end
✅ test_source_location_str
evaluation_function.tests.test_ast_builder.TestASTSerialization
✅ test_serialize_simple_program
✅ test_serialize_function
✅ test_serialize_loop
✅ test_serialize_complex_ast
evaluation_function.tests.test_complexity_schemas.TestComplexityClass
✅ test_complexity_class_values
✅ test_from_string_basic
✅ test_from_string_variations
✅ test_from_string_text_names
✅ test_from_string_unknown
✅ test_compare_complexities
✅ test_compare_with_unknown
✅ test_is_equivalent
✅ test_multiply_complexities
✅ test_get_order
evaluation_function.tests.test_complexity_schemas.TestComplexityExpression
✅ test_create_expression
✅ test_expression_with_coefficient
✅ test_expression_equivalence
evaluation_function.tests.test_complexity_schemas.TestComplexityFactor
✅ test_create_factor
evaluation_function.tests.test_complexity_schemas.TestLoopComplexity
✅ test_create_simple_loop
✅ test_nested_loop_complexity
✅ test_loop_with_bounds
✅ test_loop_to_dict
evaluation_function.tests.test_complexity_schemas.TestRecursionComplexity
✅ test_create_simple_recursion
✅ test_analyze_linear_recursion
✅ test_analyze_exponential_recursion
✅ test_analyze_divide_conquer_logarithmic
✅ test_analyze_divide_conquer_linearithmic
✅ test_recurrence_pattern
✅ test_recursion_to_dict
evaluation_function.tests.test_complexity_schemas.TestTimeComplexity
✅ test_create_time_complexity
✅ test_time_complexity_with_contributions
✅ test_time_complexity_cases
✅ test_time_complexity_to_dict
evaluation_function.tests.test_complexity_schemas.TestSpaceComplexity
✅ test_create_space_complexity
✅ test_space_complexity_with_auxiliary
✅ test_space_complexity_with_recursion_stack
✅ test_space_complexity_data_structures
evaluation_function.tests.test_complexity_schemas.TestComplexityResult
✅ test_create_complexity_result
✅ test_complexity_result_with_metadata
✅ test_complexity_result_with_warnings
✅ test_complexity_result_to_dict
evaluation_function.tests.test_complexity_schemas.TestComplexityClassOrdering
✅ test_complexity_ordering
✅ test_all_pairs_comparison
✅ test_symmetric_comparison
evaluation_function.tests.test_complexity_schemas.TestEdgeCases
✅ test_empty_expression
✅ test_nested_loops_deep
✅ test_zero_branching_factor
✅ test_large_coefficient
evaluation_function.tests.test_evaluation.TestEvaluationBasic
✅ test_evaluation_returns_result
❌ test_linear_meets_linear_bound
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e5070>
❌ test_constant_meets_linear_bound
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e6360>
✅ test_quadratic_exceeds_linear_bound
❌ test_quadratic_meets_quadratic_bound
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e71a0>
evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds
❌ test_log_n_meets_log_n_bound
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e6570>
✅ test_linear_exceeds_log_n_bound
❌ test_nlogn_meets_nlogn_bound
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e6c30>
❌ test_linear_meets_nlogn_bound
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e7b30>
❌ test_cubic_meets_cubic_bound
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e7560>
evaluation_function.tests.test_evaluation.TestEvaluationDictFormats
❌ test_dict_answer_time_complexity
self = <evaluation_function.tests.test_evaluation.TestEvaluationDictFormats object at 0x7f2dff4e7440>
❌ test_dict_response_with_pseudocode
self = <evaluation_function.tests.test_evaluation.TestEvaluationDictFormats object at 0x7f2dff4e4a10>
evaluation_function.tests.test_evaluation.TestEvaluationFeedback
✅ test_feedback_present_in_result
✅ test_feedback_shows_complexity
❌ test_correct_feedback_positive
self = <evaluation_function.tests.test_evaluation.TestEvaluationFeedback object at 0x7f2dff4e4890>
evaluation_function.tests.test_evaluation.TestEvaluationErrorHandling
❌ test_empty_pseudocode
self = <evaluation_function.tests.test_evaluation.TestEvaluationErrorHandling object at 0x7f2dff4dec30>
✅ test_none_response
evaluation_function.tests.test_evaluation.TestEvaluationComplexityVariants
❌ test_accepts_n_squared_notation
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityVariants object at 0x7f2dff4dd550>
❌ test_accepts_unicode_squared
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityVariants object at 0x7f2dff4e4920>
❌ test_accepts_quadratic_word
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityVariants object at 0x7f2dff4e7230>
evaluation_function.tests.test_evaluation.TestEvaluationCurlyBraceSyntax
❌ test_curly_brace_loops
self = <evaluation_function.tests.test_evaluation.TestEvaluationCurlyBraceSyntax object at 0x7f2dff4e6c60>
evaluation_function.tests.test_input_output_schemas.TestStudentResponse
✅ test_create_minimal_response
✅ test_create_full_response
✅ test_pseudocode_validation_empty
✅ test_pseudocode_validation_whitespace_only
✅ test_pseudocode_stripped
✅ test_to_dict
✅ test_json_schema_example
evaluation_function.tests.test_input_output_schemas.TestExpectedAnswer
✅ test_create_minimal_answer
✅ test_create_full_answer
✅ test_get_all_acceptable_time
✅ test_get_all_acceptable_space
✅ test_weight_validation
evaluation_function.tests.test_input_output_schemas.TestEvaluationParams
✅ test_default_params
✅ test_custom_params
✅ test_weight_validation
✅ test_max_nesting_depth_validation
✅ test_timeout_validation
✅ test_pseudocode_style_options
evaluation_function.tests.test_input_output_schemas.TestFeedbackItem
✅ test_create_feedback_item
✅ test_feedback_levels
✅ test_feedback_with_details
evaluation_function.tests.test_input_output_schemas.TestConstructAnalysis
✅ test_create_construct_analysis
✅ test_construct_with_details
evaluation_function.tests.test_input_output_schemas.TestTimeComplexityResult
✅ test_create_correct_result
✅ test_create_incorrect_result
evaluation_function.tests.test_input_output_schemas.TestSpaceComplexityResult
✅ test_create_space_result
evaluation_function.tests.test_input_output_schemas.TestParseResult
✅ test_successful_parse
✅ test_failed_parse
evaluation_function.tests.test_input_output_schemas.TestComplexityAnalysis
✅ test_create_analysis
✅ test_analysis_with_constructs
evaluation_function.tests.test_input_output_schemas.TestEvaluationResult
✅ test_create_correct_result
✅ test_create_partial_result
✅ test_create_result_with_feedback_items
✅ test_create_result_with_warnings_errors
✅ test_to_lambda_feedback_response
✅ test_score_validation
✅ test_result_with_analysis
✅ test_result_with_metadata
evaluation_function.tests.test_input_output_schemas.TestSchemaRoundTrip
✅ test_student_response_roundtrip
✅ test_expected_answer_roundtrip
✅ test_evaluation_result_roundtrip
evaluation_function.tests.test_integration.TestEndToEndParsing
✅ test_parse_simple_assignment
✅ test_parse_simple_loop
✅ test_parse_nested_loops
✅ test_parse_function_with_loop
evaluation_function.tests.test_integration.TestAlgorithmComplexities
✅ test_constant_complexity
✅ test_linear_complexity
✅ test_quadratic_complexity
✅ test_cubic_complexity
✅ test_logarithmic_complexity
✅ test_linearithmic_complexity
✅ test_exponential_complexity
evaluation_function.tests.test_integration.TestPseudocodeStyles
✅ test_pascal_style
✅ test_python_style
✅ test_mixed_case_keywords
✅ test_unicode_operators
evaluation_function.tests.test_integration.TestLoopVariations
✅ test_for_loop_variations
✅ test_while_loop_variations
✅ test_foreach_variations
✅ test_repeat_until_variations
evaluation_function.tests.test_integration.TestConditionalVariations
✅ test_if_variations
✅ test_if_else_variations
✅ test_nested_conditionals
evaluation_function.tests.test_integration.TestFunctionVariations
✅ test_function_keywords
✅ test_function_with_parameters
evaluation_function.tests.test_integration.TestRecursionDetection
✅ test_simple_recursion
✅ test_binary_recursion
✅ test_divide_and_conquer_recursion
✅ test_no_recursion
evaluation_function.tests.test_integration.TestErrorHandling
✅ test_malformed_loop
✅ test_unclosed_block
✅ test_mismatched_keywords
✅ test_unknown_constructs
✅ test_empty_blocks
evaluation_function.tests.test_integration.TestPreprocessorIntegration
✅ test_typo_correction_in_pipeline
✅ test_operator_normalization_in_pipeline
✅ test_case_normalization_in_pipeline
evaluation_function.tests.test_integration.TestComplexAlgorithms
✅ test_quicksort
✅ test_dijkstra
✅ test_dfs
evaluation_function.tests.test_integration.TestEdgeCases
✅ test_deeply_nested_structure
✅ test_very_long_code
✅ test_single_line_constructs
✅ test_multiple_functions
✅ test_unicode_identifiers
✅ test_mixed_loops_and_recursion
evaluation_function.tests.test_integration.TestComplexityTestCases
✅ test_complexity_cases
evaluation_function.tests.test_parser.TestBasicParsing
✅ test_parse_returns_parse_result
✅ test_parse_simple_assignment
✅ test_parse_empty_input
✅ test_parse_whitespace_only
✅ test_normalized_code_returned
evaluation_function.tests.test_parser.TestForLoopParsing
✅ test_parse_simple_for_loop
✅ test_parse_for_loop_with_range
✅ test_parse_for_loop_with_step
✅ test_parse_for_loop_downto
✅ test_parse_nested_for_loops
✅ test_parse_triple_nested_loops
evaluation_function.tests.test_parser.TestWhileLoopParsing
✅ test_parse_simple_while_loop
✅ test_parse_while_with_complex_condition
✅ test_parse_nested_while_loops
evaluation_function.tests.test_parser.TestRepeatUntilParsing
✅ test_parse_repeat_until
✅ test_parse_repeat_with_complex_body
evaluation_function.tests.test_parser.TestForEachParsing
✅ test_parse_foreach_loop
✅ test_parse_foreach_variations
evaluation_function.tests.test_parser.TestConditionalParsing
✅ test_parse_simple_if
✅ test_parse_if_else
✅ test_parse_if_elif_else
✅ test_parse_nested_conditionals
evaluation_function.tests.test_parser.TestFunctionParsing
✅ test_parse_simple_function
✅ test_parse_function_with_parameters
✅ test_parse_function_with_array_parameter
✅ test_parse_multiple_functions
✅ test_parse_recursive_function
evaluation_function.tests.test_parser.TestRecursionDetection
✅ test_detect_simple_recursion
✅ test_detect_double_recursion
✅ test_detect_divide_conquer_recursion
✅ test_no_false_recursion_detection
evaluation_function.tests.test_parser.TestExpressionParsing
✅ test_parse_arithmetic_expressions
✅ test_parse_comparison_expressions
✅ test_parse_logical_expressions
✅ test_parse_array_access
✅ test_parse_function_call_expression
evaluation_function.tests.test_parser.TestStructureDetection
✅ test_detect_no_loops
✅ test_detect_single_loop
✅ test_detect_nested_loops
✅ test_detect_conditionals
✅ test_detect_complex_structure
evaluation_function.tests.test_parser.TestStyleVariations
✅ test_parse_python_style
✅ test_parse_pascal_style
✅ test_parse_mixed_case
✅ test_parse_unicode_operators
evaluation_function.tests.test_parser.TestErrorHandling
✅ test_handle_syntax_error
✅ test_handle_mismatched_blocks
✅ test_handle_unknown_keywords
✅ test_fallback_on_parse_error
✅ test_strict_mode_no_fallback
evaluation_function.tests.test_parser.TestCompleteAlgorithms
✅ test_parse_binary_search
✅ test_parse_bubble_sort
✅ test_parse_merge_sort
✅ test_parse_matrix_multiplication
evaluation_function.tests.test_parser.TestEdgeCases
✅ test_deeply_nested_structure
✅ test_empty_function_body
✅ test_single_statement
✅ test_comments_handling
✅ test_very_long_code
evaluation_function.tests.test_parser.TestCurlyBraceBlocks
✅ test_for_loop_with_curly_braces
✅ test_while_loop_with_curly_braces
✅ test_if_statement_with_curly_braces
✅ test_function_with_curly_braces
✅ test_nested_loops_with_curly_braces
✅ test_mixed_end_and_braces
evaluation_function.tests.test_parser.TestCallKeyword
✅ test_call_keyword_statement
✅ test_call_keyword_in_function
✅ test_direct_function_call
✅ test_call_with_curly_braces
evaluation_function.tests.test_preprocessor.TestKeywordNormalization
✅ test_for_keyword_variations
✅ test_while_keyword_variations
✅ test_if_then_else_variations
✅ test_function_keyword_variations
✅ test_return_keyword_variations
✅ test_boolean_literal_normalization
✅ test_logical_operator_variations
✅ test_end_keyword_variations
evaluation_function.tests.test_preprocessor.TestOperatorNormalization
✅ test_assignment_operators
✅ test_unicode_comparison_operators
✅ test_not_equal_variations
evaluation_function.tests.test_preprocessor.TestTypoCorrection
✅ test_common_keyword_typos
✅ test_typo_warning_message
✅ test_no_typo_correction_when_disabled
evaluation_function.tests.test_preprocessor.TestWhitespaceNormalization
✅ test_tab_to_space_conversion
✅ test_trailing_whitespace_removal
✅ test_multiple_blank_lines_collapse
✅ test_multiple_spaces_normalization
✅ test_indentation_preserved
evaluation_function.tests.test_preprocessor.TestStringPreservation
✅ test_double_quoted_strings_preserved
✅ test_single_quoted_strings_preserved
✅ test_mixed_strings_and_keywords
evaluation_function.tests.test_preprocessor.TestIndentationDetection
✅ test_detect_2_space_indent
✅ test_detect_4_space_indent
✅ test_get_indent_level
evaluation_function.tests.test_preprocessor.TestEdgeCases
✅ test_empty_input
✅ test_only_whitespace
✅ test_single_line
✅ test_windows_line_endings
✅ test_mac_line_endings
✅ test_unicode_identifiers
✅ test_very_long_lines
✅ test_nested_strings
evaluation_function.tests.test_preprocessor.TestPreprocessorConfig
✅ test_disable_case_normalization
✅ test_disable_operator_normalization
✅ test_disable_whitespace_normalization
✅ test_custom_tab_size
evaluation_function.tests.test_preprocessor.TestComplexPseudocode
✅ test_full_algorithm_normalization
✅ test_mixed_style_normalization
✅ test_unicode_operators_normalization
evaluation_function.tests.test_preview.TestPreviewBasic
✅ test_preview_simple_loop
✅ test_preview_nested_loops
✅ test_preview_recursion
evaluation_function.tests.test_preview.TestPreviewEmptyInput
✅ test_preview_empty_input
✅ test_preview_whitespace_only
✅ test_preview_invalid_response_type
evaluation_function.tests.test_preview.TestPreviewDictInput
✅ test_preview_dict_response
✅ test_preview_with_code_key
evaluation_function.tests.test_preview.TestPreviewLoopTypes
✅ test_preview_curly_brace_syntax
✅ test_preview_while_loop
evaluation_function.tests.test_preview.TestPreviewComplexityDetection
✅ test_preview_binary_search
✅ test_preview_constant_complexity
✅ test_preview_merge_sort_pattern
evaluation_function.tests.test_preview.TestPreviewLatex
✅ test_preview_latex_output
evaluation_function.tests.test_preview.TestPreviewEdgeCases
✅ test_preview_very_long_code
✅ test_preview_deeply_nested
Annotations
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationBasic ► test_linear_meets_linear_bound
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e5070>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e5070>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee54440>
def test_linear_meets_linear_bound(self, params):
"""Test linear code meets O(n) bound."""
from ..evaluation import evaluation_function
response = "FOR i = 1 TO n DO\n x = x + 1\nEND FOR"
answer = "O(n)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E AssertionError: assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee54440>', tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:59: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationBasic ► test_constant_meets_linear_bound
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e6360>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e6360>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee72660>
def test_constant_meets_linear_bound(self, params):
"""Test constant code meets O(n) bound (better than required)."""
from ..evaluation import evaluation_function
response = "x = 1\ny = 2"
answer = "O(n)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E AssertionError: assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nx = 1\ny = 2\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee72660>', tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:69: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationBasic ► test_quadratic_meets_quadratic_bound
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e71a0>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationBasic object at 0x7f2dff4e71a0>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee73350>
def test_quadratic_meets_quadratic_bound(self, params):
"""Test quadratic code meets O(n^2) bound."""
from ..evaluation import evaluation_function
response = """FOR i = 1 TO n DO
FOR j = 1 TO n DO
x = x + 1
END FOR
END FOR"""
answer = "O(n^2)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E AssertionError: assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n^2)\n\nresponse\n\nFOR i = 1 TO n DO\n FOR j = 1 TO n DO\n x = x + 1\n END FOR\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee73350>', tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:97: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds ► test_log_n_meets_log_n_bound
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e6570>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e6570>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee73dd0>
def test_log_n_meets_log_n_bound(self, params):
"""Test O(log n) code meets O(log n) bound."""
from ..evaluation import evaluation_function
response = """FUNCTION binarySearch(A, target, low, high)
IF low > high THEN
RETURN -1
END IF
mid = (low + high) / 2
IF A[mid] == target THEN
RETURN mid
ELSE IF A[mid] < target THEN
RETURN binarySearch(A, target, mid + 1, high)
ELSE
RETURN binarySearch(A, target, low, mid - 1)
END IF
END FUNCTION"""
answer = "O(log n)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E AssertionError: assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(log n)\n\nresponse\n\nFUNCTION binarySearch(A, target, low, high)\n IF low > high THEN\n RETURN -1\n END IF\n mid = (low + high) / 2\n IF A[mid] == target THEN\n RETURN mid\n ELSE IF A[mid] < target THEN\n RETURN binarySearch(A, target, mid + 1, high)\n ELSE\n RETURN binarySearch(A, target, low, mid - 1)\n END IF\nEND FUNCTION\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee73dd0>', tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:123: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds ► test_nlogn_meets_nlogn_bound
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e6c30>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e6c30>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee812b0>
def test_nlogn_meets_nlogn_bound(self, params):
"""Test O(n log n) code meets O(n log n) bound."""
from ..evaluation import evaluation_function
response = """FUNCTION mergeSort(A, low, high)
IF low < high THEN
mid = (low + high) / 2
mergeSort(A, low, mid)
mergeSort(A, mid + 1, high)
merge(A, low, mid, high)
END IF
END FUNCTION"""
answer = "O(n log n)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E AssertionError: assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n log n)\n\nresponse\n\nFUNCTION mergeSort(A, low, high)\n IF low < high THEN\n mid = (low + high) / 2\n mergeSort(A, low, mid)\n mergeSort(A, mid + 1, high)\n merge(A, low, mid, high)\n END IF\nEND FUNCTION\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee812b0>', tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:150: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds ► test_linear_meets_nlogn_bound
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e7b30>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e7b30>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee81c10>
def test_linear_meets_nlogn_bound(self, params):
"""Test O(n) code meets O(n log n) bound (better than required)."""
from ..evaluation import evaluation_function
response = "FOR i = 1 TO n DO\n x = x + 1\nEND FOR"
answer = "O(n log n)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E AssertionError: assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n log n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee81c10>', tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:160: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds ► test_cubic_meets_cubic_bound
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e7560>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationComplexityBounds object at 0x7f2dff4e7560>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee82300>
def test_cubic_meets_cubic_bound(self, params):
"""Test O(n^3) code meets O(n^3) bound."""
from ..evaluation import evaluation_function
response = """FOR i = 1 TO n DO
FOR j = 1 TO n DO
FOR k = 1 TO n DO
x = x + 1
END FOR
END FOR
END FOR"""
answer = "O(n^3)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E AssertionError: assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n^3)\n\nresponse\n\nFOR i = 1 TO n DO\n FOR j = 1 TO n DO\n FOR k = 1 TO n DO\n x = x + 1\n END FOR\n END FOR\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee82300>', tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:176: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationDictFormats ► test_dict_answer_time_complexity
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationDictFormats object at 0x7f2dff4e7440>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationDictFormats object at 0x7f2dff4e7440>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee83020>
def test_dict_answer_time_complexity(self, params):
"""Test dict answer with expected_time_complexity."""
from ..evaluation import evaluation_function
response = "FOR i = 1 TO n DO\n x = x + 1\nEND FOR"
answer = {"expected_time_complexity": "O(n)"}
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback="An error occurred during evaluation: answer:\n\n{'expected_time_complexity': 'O(n)'}\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee83020>", tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:190: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationDictFormats ► test_dict_response_with_pseudocode
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationDictFormats object at 0x7f2dff4e4a10>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationDictFormats object at 0x7f2dff4e4a10>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee83a40>
def test_dict_response_with_pseudocode(self, params):
"""Test dict response with pseudocode key."""
from ..evaluation import evaluation_function
response = {"pseudocode": "FOR i = 1 TO n DO\n x = x + 1\nEND FOR"}
answer = "O(n)"
result = evaluation_function(response, answer, params)
> assert result.is_correct is True
E assert False is True
E + where False = Result(is_correct=False, response_latex='', response_simplified='', feedback="An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\n{'pseudocode': 'FOR i = 1 TO n DO\\n x = x + 1\\nEND FOR'}\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee83a40>", tags=['error']).is_correct
evaluation_function/tests/test_evaluation.py:200: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationFeedback ► test_correct_feedback_positive
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationFeedback object at 0x7f2dff4e4890>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationFeedback object at 0x7f2dff4e4890>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfeef8590>
def test_correct_feedback_positive(self, params):
"""Test correct answer gets positive feedback."""
from ..evaluation import evaluation_function
response = "FOR i = 1 TO n DO\n x = x + 1\nEND FOR"
answer = "O(n)"
result = evaluation_function(response, answer, params)
> assert "Correct" in result.feedback or "meets" in result.feedback
E AssertionError: assert ('Correct' in 'An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfeef8590>' or 'meets' in 'An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfeef8590>')
E + where 'An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfeef8590>' = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfeef8590>', tags=['error']).feedback
E + and 'An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfeef8590>' = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\nFOR i = 1 TO n DO\n x = x + 1\nEND FOR\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfeef8590>', tags=['error']).feedback
evaluation_function/tests/test_evaluation.py:236: AssertionError
Check failure on line 0 in pytest.xml
github-actions / Pytest Report
pytest ► evaluation_function.tests.test_evaluation.TestEvaluationErrorHandling ► test_empty_pseudocode
Failed test found in:
pytest.xml
Error:
self = <evaluation_function.tests.test_evaluation.TestEvaluationErrorHandling object at 0x7f2dff4dec30>
Raw output
self = <evaluation_function.tests.test_evaluation.TestEvaluationErrorHandling object at 0x7f2dff4dec30>
params = <evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee82d50>
def test_empty_pseudocode(self, params):
"""Test handling of empty pseudocode."""
from ..evaluation import evaluation_function
response = ""
answer = "O(n)"
result = evaluation_function(response, answer, params)
assert result.is_correct is False
> assert "No pseudocode" in result.feedback
E AssertionError: assert 'No pseudocode' in 'An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\n\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee82d50>'
E + where 'An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\n\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee82d50>' = Result(is_correct=False, response_latex='', response_simplified='', feedback='An error occurred during evaluation: answer:\n\nO(n)\n\nresponse\n\n\n\nparams:\n\n<evaluation_function.tests.test_evaluation.MockParams object at 0x7f2dfee82d50>', tags=['error']).feedback
evaluation_function/tests/test_evaluation.py:251: AssertionError