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