~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to exercises/sample/all_input.xml

  • Committer: Matt Giuca
  • Date: 2009-12-15 04:44:25 UTC
  • Revision ID: matt.giuca@gmail.com-20091215044425-uxzmdrd89s2d5ax6
doc: Added dev/faq, with some helpful tips on creating certain objects.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<exercise name = "Test all IO">
 
2
    <desc>Write a program which does the following:
 
3
      <ol>
 
4
        <li>Gets the value of a variable "foo" and prints it to stdout.</li>
 
5
        <li>Gets the contents of a file "input.txt" and prints it to stdout.
 
6
        </li>
 
7
        <li>Gets the contents of stdin and writes it to a file "output.txt".
 
8
        </li>
 
9
      </ol>
 
10
    </desc>
 
11
    <include>
 
12
        <!-- Here you can place any Python functions to use for normalisation.
 
13
             Note: "id" will be in our standard test functions lib.
 
14
          -->
 
15
<![CDATA[
 
16
def id(x):
 
17
    return x
 
18
]]>
 
19
    </include>
 
20
    <solution>
 
21
<![CDATA[
 
22
# Sample solution, used to generate test output
 
23
input1 = raw_input()
 
24
input2 = file('input.txt').read()
 
25
input3 = foo
 
26
 
 
27
print input3
 
28
 
 
29
print input2
 
30
 
 
31
f = file('output.txt','w')
 
32
f.write(input1)
 
33
f.close()
 
34
]]>
 
35
    </solution>
 
36
    <!-- Alternatively, <solution src="all_input_test_soln.py" /> -->
 
37
    <case name="All Tests">
 
38
        <!-- Specify input -->
 
39
        <stdin>This is Standard Input</stdin>
 
40
        <file name='input.txt'>
 
41
            File Input
 
42
        </file>
 
43
        <var name="foo" value="'Variable Input'" />
 
44
 
 
45
        <!-- Functions test varying levels of compliance with the spec -->
 
46
        <!-- 'default="match"' means exactly match any unlisted files.
 
47
              (The default behaviour)
 
48
             'default="ignore"' means ignore any unlisted files.
 
49
          -->
 
50
        <!-- Match stdout case insensitive, output.txt match exactly,
 
51
             and ignore other files. -->
 
52
        <function desc="Match case insensitive and ignore other files"
 
53
            default="ignore">
 
54
            <stdout>str.lower</stdout>
 
55
            <!-- 'type="norm"' treats the function as a normalisation
 
56
                 function (the default behaviour).
 
57
                 'type="check"' treats it as a 2-argument check. -->
 
58
            <file name="output.txt" type="norm">str.lower</file>
 
59
        </function>
 
60
        <function desc="Match expected files" default="ignore">
 
61
                <stdout/>
 
62
                <file name="output.txt"/>
 
63
        </function>
 
64
        <!-- Match all files exactly, even those not listed. -->
 
65
        <function desc="Match output, no unexpected files allowed" />
 
66
    </case>
 
67
</exercise>
 
68