<<
Ammar Fatihallah7,417 Points
assert raises, just can't understand the question.
Im trying to pass this question but just couldn't understand what's telling me to do. i looked at the code that was in the video and still didn't get what I'm suppose to do, any suggestions are appreciated ?
import unittest from string_fun import get_anagrams class AnagramTestCase(unittest.TestCase): def test_empty_string(self): with self.assertRaises(ValueError): get_anagrams()
import itertools def is_palindrome(yarn): """Return whether or not a string is a palindrome. A palindrome is a word/phrase that's the same in both directions. """ return yarn == yarn[::-1] def get_anagrams(*yarn): """Return a list of anagrams for a string.""" # If only one letter came in, return it if yarn: if len(yarn[0]) == 1: return list(yarn) elif len(yarn[0] == 0): raise ValueError("Must provide at least two letters") else: raise ValueError("Must provide at least two letters") # Get all of the words from the dictionary words = set([ w.strip().lower() for w in open('words.txt') ]) output = set() for thread in yarn: thread = thread.lower() # Find all possible anagrams for i in range(2, len(thread)): fibers = set( [''.join(w) for w in itertools.permutations(thread, i)] ) output.update(fibers.intersection(words)) # Finally, return all of the combinations that are in the dictionary return sorted(list(output))
1 Answer
Ryan S27,275 Points
Hi Ammar,
The challenge wants you to set up a unittest to make sure that when
get_anagrams gets an empty string passed in, it raises a ValueError. Your logic is correct, but don't forget that
get_anagrams takes an argument.
Good luck.
Ammar Fatihallah7,417 Points
Never mind, i got the hang of it :) thanks for the explanation
Ammar Fatihallah7,417 Points
Ammar Fatihallah7,417 Points
Can you please explain to me how am i suppose to do it ? in the video, it shows that he used
withso that's what i used. I just need to know if the code below is on the right side and if so, what am i suppose to write as an output for the
withThis is the code I'm talking about
I'm sorry if im annoying you, its just that i couldn't understand the way to do it.