Files

questions / element / stringInput / server.py
Edit Download
import random


def generate(data):
    a = random.randint(2, 4)
    stringname = "love"

    b = "hello "
    c = "it is a beautiful day!"

    list1 = [random.randint(0, 1) for _ in range(8)]

    d = "".join(str(e) for e in list1)
    e = "cAsE iNsEnSiTiVe"
    f = "small"

    g = "“Ε&#x0435”"

    data["params"]["a"] = a
    data["params"]["b"] = b
    data["params"]["c"] = c
    data["params"]["d"] = d
    data["params"]["e"] = e
    data["params"]["f"] = f
    data["params"]["g"] = g
    data["params"]["stringname"] = stringname

    data["correct_answers"]["ans1"] = a * stringname
    data["correct_answers"]["ans2"] = b + c
    data["correct_answers"]["ans3"] = d
    data["correct_answers"]["ans4"] = d
    data["correct_answers"]["ans5"] = "blank"
    data["correct_answers"]["ans6"] = e
    data["correct_answers"]["ans7"] = f
    data["correct_answers"]["ans8"] = '"Ee"'
    data["correct_answers"]["ans9"] = "I'm\nsorry\nDave."


def test(data):
    # ans10 uses a regular-expression correct answer, so pl-string-input cannot
    # generate its own test submissions. Provide them here instead.
    name = "ans10"
    result = data["test_type"]
    if result == "correct":
        data["raw_submitted_answers"][name] = "nitrogen"
        data["partial_scores"][name] = {"score": 1, "weight": 1}
    elif result == "incorrect":
        data["raw_submitted_answers"][name] = "carbon"
        data["partial_scores"][name] = {"score": 0, "weight": 1}
    elif result == "invalid":
        data["raw_submitted_answers"][name] = ""
        data["format_errors"][name] = "invalid"