開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-10.を解いてみる。
12.7(練習問題)、12-10.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import nose def isSorted(s): if type(s) != list or len(list(filter(lambda x:type(x) != int, s))): raise ValueError return s == sorted(s) def test_valueerror(): ''' リストではない''' try: isSorted("python") assert False except ValueError: pass def test_is_all_int(): '''全て整数のリスト''' try: isSorted([1, 'a']) False except ValueError: pass def test_empty(): '''空のリスト''' assert isSorted([]) def test_one(): '''要素が1つのリスト''' assert isSorted([10]) def test_two_sorted(): '''要素が2つのソート済リスト''' assert isSorted([1, 2]) def test_two_reversed(): '''要素が2つの降順リスト''' assert not isSorted([2, 1]) def test_all_equal(): '''全て等しい要素のリスト''' assert isSorted([10, 10]) def test_first(): '''先頭がソートされてないリスト''' assert not isSorted([10, 1, 2, 3, 4, 5]) def test_middle(): ''' 真ん中の要素がソートされてないリスト''' assert not isSorted([1, 2, 10, 4, 5]) def test_last(): '''末尾がソートされてないリスト''' assert not isSorted([1, 2, 3, 4, 0]) if __name__ == '__main__': nose.runmodule()
入出力結果(Terminal)
$ ./sample.py .......... ---------------------------------------------------------------------- Ran 10 tests in 0.002s OK $
0 コメント:
コメントを投稿