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