首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何生成与有效数据相似的模糊字符串来测试输入验证

如何生成与有效数据相似的模糊字符串来测试输入验证
EN

Stack Overflow用户
提问于 2020-10-23 06:58:53
回答 1查看 12关注 0票数 1

这是我用来解析国际象棋符号,继续黑棋走法,并定义变体的格式。<1. Nf3 Nf6 2. e3 e6> <1... Nf6 2. e3> <main2 main 3. Nf3 Nf6 4. e3>

我用一堆测试数据测试了我的解析器。现在,我想用类似于格式的随机模糊数据来测试它。

如何生成与有效格式60%相似的模糊测试数据?如下所示:

<1. <1. B3a 1<B N C>

我试过了,但它产生了完全的胡言乱语,有点无用。

代码语言:javascript
复制
function genCode(len) {
  let chars = "<>abcdefgh.NBQRKO-12345678 ".split('');

  function nextChar() {
    return chars[Math.floor(Math.random()*chars.length)];
  };

  let res = "";

  for (let i = 0; i < len; i++) {
    res += nextChar();
  }

  return res;
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-23 07:10:16

所以我试了一下,结果还行得通:

代码语言:javascript
复制
function repeat(code, n) {
  let res = "";
  while (--n) {
    res += code;
  }
  return res;
}


function corrupt(code) {
  let chars = "<>abcdefgh.NBQRKO-12345678 ".split('');

  function nextChar() {
    return chars[Math.floor(Math.random()*chars.length)];
  };

  let res = "";
  for (let i = 0; i < code.length; i++) {
    res += Math.random() < 0.8 ? code[i] : nextChar();
  }
  return res;
}

 console.log(corrupt(repeat(`<1. Nf3 Nf6 2. Ba5 Bg4 3. e4> <4... a6> <5... Qa7> <7... a8>`, 100\
)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64491642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档