【发布时间】:2015-03-02 22:21:40
【问题描述】:
有没有办法在 FsCheck 中生成一个字符串,方法是从每个字符串列表中选择一个项目,然后连接结果?
我完全陷入困境,似乎无法弄清楚。我查看了docs 和github 回购中的类似内容。我已经阅读了大部分来自FSharpForFunAndProfit 的 FsCheck。
这和我想的差不多:
let rand = System.Random()
let randInt max = rand.Next(0, max)
let selectLetter (string: string) =
let whichLettersIndex = String.length string |> randInt
string.Substring(whichLettersIndex, 1)
let generateOddlySpelledWord listOfStrings =
List.map selectLetter listOfStrings
|> String.concat ""
let usingGenerateOddlySpelledWord =
generateOddlySpelledWord ["zZ"; "oO0Ò"; "eEê"]
这应该会生成类似“Z0ê”或“zÒE”的东西。
【问题讨论】:
-
编写你想要生成
string seq的函数,然后应用Gen.elements。