summaryrefslogtreecommitdiffstats
path: root/graders/genpizza.py
diff options
context:
space:
mode:
Diffstat (limited to 'graders/genpizza.py')
-rw-r--r--graders/genpizza.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/graders/genpizza.py b/graders/genpizza.py
new file mode 100644
index 0000000..82f63a2
--- /dev/null
+++ b/graders/genpizza.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+handout = [
+ {'toppings': [('pepperoni', 0)], 'size': 12},
+ {
+ 'toppings': [
+ ('tomato', 1),
+ ('sauce', 2),
+ ],
+ 'size': 8
+ },
+ {
+ 'toppings': [
+ ('some stuff', 0),
+ ('other stuff', 1),
+ ('even more stuff', 1),
+ ],
+ 'size': 10
+ },
+ {
+ 'toppings': [
+ ('tomato', 1),
+ ('sauce', 2),
+ ('', 0),
+ ('food', 0),
+ ],
+ 'size': 6
+ },
+ ]
+invalid = [
+ {'toppings': [('pepperoni', 0)], 'size': 10},
+ {'toppings': [('biribiri', 0)]},
+ {'size': 6},
+ {'toppings': [('pepperoni', 0)], 'size': 9},
+ {'toppings': [('cheese', 1)], 'size': 12},
+ ]
+
+def write_pizza(f, pizza):
+ if 'toppings' in pizza:
+ for topping in pizza['toppings']:
+ f.write('%s,%d,' % (topping[0], topping[1]))
+ if 'size' in pizza:
+ f.write(str(pizza['size']))
+ f.write('\n')
+
+def write_pizfile(filename, pizzas):
+ f = open(filename, 'w')
+ for pizza in pizzas:
+ write_pizza(f, pizza)
+ f.close()
+
+write_pizfile('handout.piz', handout)
+write_pizfile('invalid.piz', invalid)