3.15 Random Values Homework

POPCORN HACK 1

Code Runner Challenge

POPCORN HACK 1

View IPYNB Source
# CODE_RUNNER: POPCORN HACK 1

import random

record_count = 4

for test in range(5):
    record_id = random.randint(1, record_count)
    print("SFI record selected for QA:", record_id)

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

POPCORN HACK 2

Code Runner Challenge

POPCORN HACK 2

View IPYNB Source
# CODE_RUNNER: POPCORN HACK 2

import random

parts = [
    {
        "product_name": "Replacement Flywheels and Clutch Assemblies",
        "category": "Auto Racing",
        "spec_number": "1.1"
    },
    {
        "product_name": "Multiple Disc Clutch Assemblies",
        "category": "Drag Racing",
        "spec_number": "1.2"
    },
    {
        "product_name": "Racing Flywheel Record",
        "category": "Auto Racing",
        "spec_number": "2.1"
    }
]

selected_part = random.choice(parts)

print("Selected product:", selected_part["product_name"])
print("Category:", selected_part["category"])
print("Spec number:", selected_part["spec_number"])

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

POPCORN HACK 3

Code Runner Challenge

POPCORN HACK 3

View IPYNB Source
# CODE_RUNNER: POPCORN HACK 3

import random

parts = [
    {"product_name": "Replacement Flywheels", "spec_number": "1.1"},
    {"product_name": "Multiple Disc Clutch Assemblies", "spec_number": "1.2"},
    {"product_name": "Racing Flywheel Record", "spec_number": "2.1"}
]

actions = [
    "GET/search",
    "POST/create",
    "PUT/update"
]

selected_part = random.choice(parts)
selected_action = random.choice(actions)

print("Selected part:", selected_part["product_name"])
print("Selected action:", selected_action)

if selected_action == "GET/search":
    print("QA result: search returned spec", selected_part["spec_number"])
elif selected_action == "POST/create":
    print("QA result: validate create request for", selected_part["spec_number"])
else:
    print("QA result: update existing record", selected_part["spec_number"])

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

MCQ Check

HOMEWORK HACK

Code Runner Challenge

HOMEWORK HACK

View IPYNB Source
# CODE_RUNNER: HOMEWORK HACK

import random

parts = [
    {
        "product_name": "Replacement Flywheels",
        "category": "Auto Racing",
        "spec_number": "1.1"
    },
    {
        "product_name": "Multiple Disc Clutch Assemblies",
        "category": "Drag Racing",
        "spec_number": "1.2"
    },
    {
        "product_name": "Racing Flywheel Record",
        "category": "Auto Racing",
        "spec_number": "2.1"
    }
]

actions = [
    "GET/search",
    "POST/create",
    "PUT/update",
    "DELETE/remove"
]

existing_spec_numbers = ["1.1", "2.1"]
test_count = 5

def run_qa_test(part, action, existing_specs):
    if action == "GET/search":
        return "FOUND: " + part["product_name"] + " has spec " + part["spec_number"]
    elif action == "POST/create":
        if part["spec_number"] in existing_specs:
            return "REJECT CREATE: duplicate spec " + part["spec_number"]
        else:
            existing_specs.append(part["spec_number"])
            return "ACCEPT CREATE: new spec " + part["spec_number"]
    elif action == "PUT/update":
        if part["spec_number"] in existing_specs:
            return "UPDATE OK: existing spec " + part["spec_number"]
        else:
            return "UPDATE BLOCKED: missing spec " + part["spec_number"]
    else:
        if part["spec_number"] in existing_specs:
            existing_specs.remove(part["spec_number"])
            return "DELETE OK: removed spec " + part["spec_number"]
        else:
            return "DELETE BLOCKED: missing spec " + part["spec_number"]

for test_number in range(1, test_count + 1):
    selected_part = random.choice(parts)
    selected_action = random.choice(actions)
    result = run_qa_test(selected_part, selected_action, existing_spec_numbers)

    print("Test", test_number)
    print("Record:", selected_part["product_name"], "| spec", selected_part["spec_number"])
    print("Action:", selected_action)
    print("Result:", result)
    print("Existing specs now:", existing_spec_numbers)
    print("---")

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Reproducibility Test

Code Runner Challenge

3.15 Fixed seed vs unseeded comparison

View IPYNB Source
# CODE_RUNNER: 3.15 Fixed seed vs unseeded comparison

import random

actions = ["GET/search", "POST/create", "PUT/update", "DELETE/remove"]

random.seed(15)
print("Fixed seed run A:")
for i in range(5):
    print(random.choice(actions))

random.seed(15)
print("Fixed seed run B:")
for i in range(5):
    print(random.choice(actions))

random.seed()
print("Unseeded run:")
for i in range(5):
    print(random.choice(actions))

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...