開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
行列プログラマー(Philip N. Klein (著)、 松田 晃一 (翻訳)、 弓林 司 (翻訳)、 脇本 佑紀 (翻訳)、 中田 洋 (翻訳)、 齋藤 大吾 (翻訳)、オライリージャパン)の0章(関数(とその他の数学とコンピュータに関する予備知識))、0.5(ラボ: Python 入門 - 集合、リスト、辞書、内包表記)、0.5.9(1行プロシージャを定義する)、インデックス指定、要素のテスト、課題 0.5.27、0.5.28、0.5.29、0.5.30、0.5.31、0.5.32を取り組んでみる。
課題 0.5.27、0.5.28、0.5.29、0.5.30、0.5.31、0.5.32
コード(Emacs)
Unit Test
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import unittest from sample27 import * class TestTwice(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def test_string_empty(self): result = twice('') self.assertEqual(result, '') def test_string(self): result = twice('a') self.assertEqual(result, 'aa') def test_list_empty(self): result = twice([]) self.assertEqual(result, []) def test_list(self): result = twice([1]) self.assertEqual(result, [1, 1]) def test_name_error(self): self.assertRaises(NameError, f) class TestNextInts(unittest.TestCase): def setup(self): pass def tearDown(self): pass def test_empty(self): self.assertEqual(nextInts([]), []) def test_list(self): self.assertEqual(nextInts([1, 5, 7]), [2, 6, 8]) class TestCubes(unittest.TestCase): def setup(self): pass def tearDown(self): pass def test_empty(self): self.assertEqual(cubes([]), []) def test_list(self): self.assertEqual(cubes([1, 2, 3]), [1, 8, 27]) class TestDict2List(unittest.TestCase): def setup(self): pass def tearDown(self): pass def test_empty(self): self.assertEqual(dict2list({}, []), []) def test_dict1(self): self.assertEqual(dict2list(dict(a='A', b='B', c='C'), ['b', 'c', 'a']), ['B', 'C', 'A']) class TestList2Dict(unittest.TestCase): def setup(self): pass def tearDown(self): pass def test_empty(self): self.assertEqual(list2dict([], []), {}) def test_dict1(self): self.assertEqual(list2dict(['A', 'B', 'C'], ['a', 'b', 'c']), dict(a='A', b='B', c='C')) class TestAll3DigitNumbers(unittest.TestCase): def setup(self): pass def tearDown(self): pass def test_2(self): self.assertEqual(all_3_digit_numbers(2, {0, 1}), {0, 1, 2, 3, 4, 5, 6, 7}) def test_3(self): self.assertEqual(all_3_digit_numbers(3, {0, 1, 2}), set(range(27))) def test_10(self): self.assertEqual(all_3_digit_numbers(10, set(range(10))), set(range(1000))) if __name__ == '__main__': unittest.main()
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 5.27 def twice(z): return 2 * z def f(): return z # 5.28 def nextInts(l): return [x + 1 for x in l] # 5.29 def cubes(l): return [x ** 3 for x in l] # 5.30 def dict2list(d, key_list): return [d[k] for k in key_list] # 5.31 def list2dict(l, key_list): return {v: l[i] for i, v in enumerate(key_list)} # 5.32 def all_3_digit_numbers(base, digits): return {i * (base ** 2) + j * (base ** 1) + k * (base ** 0) for i in digits for j in digits for k in digits}
入出力結果(Terminal, IPython)
$ ./test27.py ................ ---------------------------------------------------------------------- Ran 16 tests in 0.010s OK $
0 コメント:
コメントを投稿