import pytest import eval_code TYPICAL_ANSWER = """[ { "criteria": "DRY", "explanation": "The memory allocation and initialization for ``p1``, ``p2``, and ``p3`` are repetitive. Consider creating a function like ``allocateAndInitializeMemory``." }, { "criteria": "SRP", "explanation": "The ``main`` function handles memory allocation, initialization, and printing. You should separate these responsibilities into different functions like ``allocateMemory``, ``initializeData``, and ``printData``." }, { "criteria": "NAME", "explanation": "``x1`` should be called ``title``, ``y1`` should be called ``author``, ``z1`` should be called ``year``, ``p1`` should be called ``titlePtr``, ``p2`` should be called ``authorPtr``, ``p3`` should be called ``yearPtr``." } ]""" def test_parse_chatgpt_answer(): ans = eval_code.parse_chatgpt_answer(TYPICAL_ANSWER) assert ans is not None assert len(ans) > 0 an_eval = ans[0] assert "criteria" in an_eval.keys() assert "explanation" in an_eval.keys()