Python测试驱动编写

通过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")
运行结果:


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值