如何测试函数的正确与否呢

描述

上堂课讲到了测试函数的内容,如何测试呢?要通过写测试文件来检验函数的正确与否。这样的方法不仅在MATLAB中有效,对于c、verilog等语言都有效。

一起来学习测试程序吧。真正的干货!本程序还附带了字节转换的内容。

为什么有这段?当年在研发卫星地球站的时候,需要和ARM中的结果进行比对。于是留下了这段代码!

%***********            函数测试程序       ************%

%%%%           File: test_function_crc_itu.m      %%%%

%%           date: 2010-04-07   author: 算法工匠        %%

%%%                           程序说明

% 测试函数function_crc_itu结果和存储表法是否一致。

% 函数按照ITU定义的生成多项式  G(x) = x^16 + x^12 + x^5 + 1

%%**********            程序主体          **********%%

data_binary = randint(1,100);

% 矩阵运算函数

crc_result = function_crc_itu(data_binary);

% 比特运算函数

crc_result1 = function_crc_itu_v1(data_binary);

% 用于查表法计算的等效检验。

% 在计算机中使用字节的概念。

%%%%%      字节转换

for i = 1:length(data_binary)/4

    % 高位进寄存器

    data_16(i) = 2^3*data_binary((i-1)*4+1) + 2^2*data_binary((i-1)*4+2) + 2*data_binary((i-1)*4+3) + data_binary((i-1)*4+4) ;

end

for i = 1:4

    % 寄存器0是高位

    result_16(i) = 2^3*crc_result((i-1)*4+1) + 2^2*crc_result((i-1)*4+2) + 2*crc_result((i-1)*4+3) + crc_result((i-1)*4+4) ;

end

%%%%      文本存储

data_hex = dec2hex(data_16);

fid = fopen('data_hex.txt', 'wt');

fprintf(fid, '%s ', data_hex);

fclose(fid);

result_hex = dec2hex(result_16);

fid = fopen('result_hex.txt', 'wt');

fprintf(fid, '%s ', result_hex);

fclose(fid);

%%%                  结论

% 测试结果表明函数正确。

% function_crc_itu_v1适合在FPGA中使用。

% 2016-11-17       

本程序中测试的函数不是上堂课给出的CRC生成函数,需要同学们自己改动相关语句来完成上堂课所写的函数的测试。自己动手,丰衣足食。不能老是靠老师扶着走。调完程序后还要干什么呢?写报告。软件测试报告或者仿真报告是必须要写的。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分