您的位置:首页 > 编程语言 > Python开发

Python测试驱动编写

2016-03-16 15:33 489 查看
通过gr_modtool会自动生成测试驱动程序的模板,只需要修改模板即可,模板如下:

from gnuradio import gr, gr_unittest
from gnuradio import blocks
import double_diff_swig as double_diff

class qa_translate (gr_unittest.TestCase):

def setUp (self):
self.tb = gr.top_block ()

def tearDown (self):
self.tb = None

def test_001_t (self):
# set up fg
self.tb.run ()
# check data

if __name__ == '__main__':
gr_unittest.run(qa_translate, "qa_translate.xml")
这里module的名称为double_diff,block的名称为translate。

我们需要做的就是补充test_001_t()函数:构建流图、给出测试数据以及预期结果、运行流图、将实际结果与预期结果I进行比较。修改好的程序如下:

from gnuradio import gr, gr_unittest
from gnuradio import blocks
import double_diff

class qa_translate (gr_unittest.TestCase):

def setUp (self):
self.tb = gr.top_block ()

def tearDown (self):
self.tb = None

def test_001_t (self):
src_data=[1,-1,-1,1,1,-1]
expected_ampl=(1,1,1,1,1,1)
expected_phase=(0,1,1,0,0,1)

src=blocks.vector_source_c(src_data)
op=double_diff.translate()
dst0=blocks.vector_sink_f()
dst1=blocks.vector_sink_f()

self.tb.connect(src,op)
self.tb.connect((op,0),dst0)
self.tb.connect((op,1),dst1)
# set up fg
self.tb.run ()
# check data
result_ampl=dst0.data()
result_phase=dst1.data()
self.assertEqual(expected_ampl,result_ampl)
self.assertEqual(expected_phase,result_phase)

if __name__ == '__main__':
gr_unittest.run(qa_translate, "qa_translate.xml")
运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: