3.15 Random Values HW
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 ...