2013年12月16日月曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-12.を解いてみる。

12.7(練習問題)、12-12.

まず、python2.7のStringIOおよびcStringIOモジュールは、python3.xではioモジュールのStringIO classに変更されたみたい。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import io
import nose

# ioモジュールのStringIOでは、文字列をファイルデータとして扱うことができる。
# よって、readlinesメソッド等を使うことが出来る。

def count_lines(a):
    return len(a.readlines())

def test_zero_line():
    s = io.StringIO('')
    assert count_lines(s) == 0

def test_one_line():
    s = io.StringIO('python')
    assert count_lines(s) == 1

def test_two_lines():
    s = io.StringIO('''python
haskell
''')
    assert count_lines(s) == 2

def test_three_lines():
    s = io.StringIO('''python
haskell
 ''')
    assert count_lines(s) == 3

def test_four_lines():
    s = io.StringIO('''
    

 ''')
    assert count_lines(s) == 4

def test_five_lines():
    s = io.StringIO('\n\n\n\n\n')
    assert count_lines(s) == 5



if __name__ == '__main__':
    nose.runmodule()

入出力結果(Terminal)

$ ./sample.py
......
----------------------------------------------------------------------
Ran 6 tests in 0.002s

OK
$

0 コメント:

コメントを投稿