開発環境
- 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 コメント:
コメントを投稿