Craft 7

Beautiful Code
Ka-Ping Yee

Make sure you understand the material in Explore 7 before you do this assignment.


What are you having the most trouble with right now? What might i do that would help?

Submit just this part individually.

The rest of this assignment will be done in partners.

Richard and Omair: test and evaluate thanh.pyc (documentation at thanh.html)
Scott and Jason: test and evaluate kevin.pyc (documentation at kevin.html)
Kevin and Karl: test and evaluate jun.pyc (documentation at jun.html)
Nerissa and Peter: test and evaluate richard.pyc (documentation at richard.html)
Chris and Morgan: test and evaluate hunter.pyc (documentation at hunter.html)
Nadia and Peterson: test and evaluate scott.pyc (documentation at scott.html)
Hunter and Derek: test and evaluate karl.pyc (documentation at karl.html)
Jacob and Jun: test and evaluate chris.pyc (documentation at chris.html)
Varun and David: test and evaluate morgan.pyc (documentation at morgan.html)
Calvin and Thanh: test and evaluate david.pyc (documentation at david.html)

Bonus: find a bug in ping.pyc (documentation at ping.html)!

For this assignment, each pair gets a compiled date module to test. Download the .pyc file using the link above, and import that. Your challenge is to find bugs in the module without looking at the source code. Look at the module's documentation page to see what the authors think the module should do.


(The second letter of the Greek alphabet is pronounced veeta, not bayta.)

Determine whether the module's functionality is adequately specified. Are the behaviours of all the methods and functions precisely stated? Does the documentation describe what all the arguments do? If the documentation is sufficient in all respects, say so here. Otherwise, describe what needs to be clarified.


(The "G" in "gamma" is a soft G, at the back of the throat.)

Determine whether the module as specified meets the assigned requirements. If the specification meets the requirements, say so here. Otherwise, describe what is missing or incorrect.


(The fourth letter of the Greek alphabet is pronounced thelta, with a voiced "th".)

Come up with a test suite to ensure that the module behaves as specified. Your test suite should test all the functionality in the module. Use your test suite to find as many bugs as you can.

See this message for more details on what a test suite looks like.

Submit your test suite here.


Make a numbered list of all the bugs that you found. For each bug, describe the problem, indicate which test failed (you can refer to your tests by the line number in your test suite, or by giving names to your tests in your test suite), and make a hypothesis for what might have caused the bug.

For a bonus, find a bug in ping.pyc. You can include the description of the bug and the failed test here.

Log in to submit this assignment.
This assignment is due on Monday 10 March at 6 pm. You get a bonus if the assignment is submitted at least 24 hours early.