87,990
社区成员
发帖
与我相关
我的任务
分享
var test = function(fn, cases){
var i, kiss, len = cases.length;
for(i = 0; i < len; i++){
kiss = cases[i];
if(!fn(kiss.expr) == kiss.result){
alert("用例:" + kiss.expr + "没有通过测试!");
return;
}
}
alert('全部用例通过!');
};
var checker1 = (function(){
var enables = {};
for(var i = 0; i <= 24; i += 0.5){
enables[i] = null;
}
return function(i){
return enables.hasOwnProperty(i);
};
})();
var checker2 = (function(){
var reg = new RegExp(
"^("
+ "([0-9](?:\\.5)?)"
+ "|(1[0-9](?:\\.5)?)"
+ "|(24|2[0-3](?:\\.5)?)"
+ ")$"
);
return function(i){
return reg.test(i);
}
})();
var cases = (function(){
var i, ret = [];
//正确用例
for(i = 0; i<= 24; i += 0.5){
ret.push({
expr : String(i),
result : true
});
}
//错误用例
ret = ret.concat(
{expr : "0.1", result : false},
{expr : "0.2", result : false},
{expr : "10.0", result : false},
{expr : "10.1", result : false},
{expr : "24.1", result : false},
{expr : "24.5", result : false}
);
return ret;
})();
//执行单元测试
test(checker1, cases);
test(checker2, cases);
var arr = [11.3,32,14.5,15,9,25,23,24];
var pattern = /^(([0-1]?\d)|(2[1-3]))(\.5)?$/;
for( var i = 0 ; i <arr.length ; i++){
alert(arr[i]+" : "+pattern.test(arr[i]));
}