開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
Head First はじめてのプログラミング ―頭とからだで覚えるPythonプログラミング入門 (Eric Freeman(著)、嶋田 健志(監修)、木下 哲也(翻訳)、株式会社オライリー・ジャパン)を8章(再帰と辞書 - 反復とインデックスを超えて)の自分で考えてみよう(347ページ)の解答を求めてみる。
コード
Python 3
#!/usr/bin/env python3 from unittest import TestCase, main class SampleTestCase(TestCase): def setUp(self): pass def tearDown(self): pass def test_empty(self): self.assertTrue(palindrome('')) def test_one(self): self.assertTrue(palindrome(' ')) self.assertTrue(palindrome('a')) def test_two(self): self.assertTrue(palindrome('aa')) self.assertFalse(palindrome('ab')) def test_three(self): self.assertTrue(palindrome('aaa')) self.assertFalse(palindrome('aab')) self.assertTrue(palindrome('aba')) self.assertFalse(palindrome('abb')) self.assertFalse(palindrome('baa')) self.assertTrue(palindrome('bab')) self.assertFalse(palindrome('bba')) self.assertTrue(palindrome('bbb')) def test_five(self): self.assertTrue(palindrome('abcba')) self.assertFalse(palindrome('abcbb')) def test_six(self): self.assertTrue(palindrome('abccba')) self.assertFalse(palindrome('abccbb')) def palindrome(s: str) -> bool: if not s: return True l = len(s) if l == 1: return True if s[0] == s[-1]: return palindrome(s[1:-1]) return False if __name__ == '__main__': main()
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
$ ./sample1.py EEEEEE ====================================================================== ERROR: test_empty (__main__.SampleTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "./sample1.py", line 13, in test_empty self.assertTrue(palindrome('')) NameError: name 'palindrome' is not defined ====================================================================== ERROR: test_five (__main__.SampleTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "./sample1.py", line 34, in test_five self.assertTrue(palindrome('abcba')) NameError: name 'palindrome' is not defined ====================================================================== ERROR: test_one (__main__.SampleTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "./sample1.py", line 16, in test_one self.assertTrue(palindrome(' ')) NameError: name 'palindrome' is not defined ====================================================================== ERROR: test_six (__main__.SampleTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "./sample1.py", line 38, in test_six self.assertTrue(palindrome('abccba')) NameError: name 'palindrome' is not defined ====================================================================== ERROR: test_three (__main__.SampleTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "./sample1.py", line 24, in test_three self.assertTrue(palindrome('aaa')) NameError: name 'palindrome' is not defined ====================================================================== ERROR: test_two (__main__.SampleTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "./sample1.py", line 20, in test_two self.assertTrue(palindrome('aa')) NameError: name 'palindrome' is not defined ---------------------------------------------------------------------- Ran 6 tests in 0.001s FAILED (errors=6) $ ./sample1.py ...... ---------------------------------------------------------------------- Ran 6 tests in 0.000s OK $
0 コメント:
コメントを投稿