Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from nose.tools import *
- from testing import *
- def test_directions():
- assert_equal(scan("north"), [('direction', 'north')])
- result = scan("north south east")
- assert_equal(result, [('direction', 'north'), ('direction', 'south'), ('direction', 'east')])
- import string
- def convert_number(s):
- try:
- return int(s)
- except ValueError:
- return None
- def scan(s):
- direction_words= ("north", "south", "east", "west", "down", "up", "left", "right", "back", "forwards", "backwards")
- verbs= ("go", "stop", "kill", "eat", "shoot", "run", "hide", "dodge")
- stop_words= ("the", "in", "of", "from", "at", "it")
- nouns= ("door", "bear", "princess", "cabinet", "gold", "money", "chest", "gun", "sword")
- numbers= s.split()
- i=0
- j=0
- g=0
- m=0
- a=0
- b=0
- while a < len(numbers):
- if type(convert_number(numbers[a])) == int:
- print [('number', int(numbers[a]) )]
- a += 1
- else:
- a += 1
- while i < len(direction_words):
- if direction_words[i] in s.split():
- s= string.lower(s)
- print [('direction', direction_words[i] ) ]
- i+=1
- else:
- i+=1
- while j < len(verbs):
- if verbs[j] in s.split():
- s= string.lower(s)
- print [('verb', verbs[j] )]
- j+=1
- else:
- j+=1
- while g < len(stop_words):
- if stop_words[g] in s.split():
- s= string.lower(s)
- print [('stop', stop_words[g] )]
- g+=1
- else:
- g+=1
- while m < len(nouns):
- if nouns[m] in s.split():
- s= string.lower(s)
- print [('noun', nouns[m] )]
- m+=1
- else:
- m+=1
- while b< len(s.split()):
- if numbers[b] not in nouns:
- if numbers[b] not in stop_words:
- if numbers[b] not in verbs:
- if numbers[b] not in direction_words:
- if type(convert_number(numbers[b])) != int:
- print [('error', numbers[b] )]
- b += 1
- else:
- b+=1
- else: b+=1
- else: b+=1
- else: b+=1
- else: b+=1
- else:
- return
- F
- ======================================================================
- FAIL: tests.ex48_tests.test_directions
- ----------------------------------------------------------------------
- Traceback (most recent call last):
- File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
- self.test(*self.arg)
- File "/Users/Adam/Desktop/projects/ex48/tests/ex48_tests.py", line 6, in test_directions
- assert_equal(scan("north"), [('direction', 'north')])
- AssertionError: None != [('direction', 'north')]
- -------------------- >> begin captured stdout << ---------------------
- [('direction', 'north')]
- --------------------- >> end captured stdout << ----------------------
- ----------------------------------------------------------------------
- Ran 1 test in 0.015s
- FAILED (failures=1)
- while i < len(direction_words):
- if direction_words[i] in s.split():
- s= string.lower(s)
- print [('direction', direction_words[i] ) ] # <--- HERE
- i+=1
- def scan(s):
- result = []
- ...
- while i < len(direction_words):
- if direction_words[i] in s.split():
- s= string.lower(s)
- # change the `print` statements to `result += …`
- result += [('direction', direction_words[i] ) ]
- i+=1
- ...
- return result
- assert_equal(scan("north"), [('direction', 'north')])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement