開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
行列プログラマー(Philip N. Klein (著)、 松田 晃一 (翻訳)、 弓林 司 (翻訳)、 脇本 佑紀 (翻訳)、 中田 洋 (翻訳)、 齋藤 大吾 (翻訳)、オライリージャパン)の0章(関数(とその他の数学とコンピュータに関する予備知識))、0.8(問題)、Python の内包表記に関する問題0.8.1、0.8.2を取り組んでみる。
課題 0.6.6、0.6.7、0.6.8
コード(Emacs)
Unit Test
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import unittest
from sample8_1 import *
class SampleTest(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_tuple_sum(self):
res = tuple_sum([(1, 2), (10, 20)], [(3, 4), (30, 40)])
self.assertEqual(res, [(4, 6), (40, 60)])
def test_inv_dict(self):
res = inv_dict({'thank you': 'merci', 'goodbye': 'au revoir'})
self.assertEqual(res, {'merci': 'thank you', 'au revoir': 'goodbye'})
def test_row(self):
res = row(10, 4)
self.assertEqual(res, [10, 11, 12, 13])
def test_row_15_20(self):
res = [row(i, 20) for i in range(15)]
self.assertEqual(res, [[i + j for j in range(20)] for i in range(15)])
if __name__ == '__main__':
unittest.main()
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def tuple_sum(a, b):
return [(x + b[i][0], y + b[i][1]) for i, (x, y) in enumerate(a)]
def inv_dict(d):
return {v: k for k, v in d.items()}
def row(p, n):
return [p + i for i in range(n)]
入出力結果(Terminal, IPython)
$ ./test8_1.py -v test_inv_dict (__main__.SampleTest) ... ok test_row (__main__.SampleTest) ... ok test_row_15_20 (__main__.SampleTest) ... ok test_tuple_sum (__main__.SampleTest) ... ok ---------------------------------------------------------------------- Ran 4 tests in 0.004s OK $
0 コメント:
コメントを投稿