Python で動かす
polyphony
2019-3-12 23:35 JST

Polyphony: Pythonインタプリタで動作検証

テストベンチを合成する前に、これが実際にPythonのコードとして正しいのか動作検証しましょう。

fact.pyの先頭に以下を追加します。

fact.pyの一部
from polyphony import testbench

これは、Pythonのインタプリタがに対して、polyphonyというライブラリの中で、testbenchというシンボルが定義されていることを示します。続けてfact.pyの終わりに以下を追加し、Pythonインタプリタが実際にtest()を実行するようにします。(注意:Polyphony のライブラリを使用するには Polyphony がインストールされている必要があります。pip3 で簡単にインストール可能です。詳細はこちら)

fact.pyの一部
test()

最終的にfact.pyは以下のようになります。

fact.py
test()
from polyphony import testbench

def fact(x):
    y = 1
    for i in range(1, x+1):
        y = y * i
    return y

@testbench
def test():
    assert 1 == fact(0)
    assert 1 == fact(1)
    assert 2 == fact(2)
    assert 6 == fact(3)
    assert 24 == fact(4)
    assert 120 == fact(5)

test()

Pythonインタプリタでこれを実行します。なお Polyphnoy がサポートするのはバージョン3以降のPythonコードです。

$ python3 fact.py

test()の実行の結果として何も表示されなければ、関数fact()は正しく動いているはずです。