Gens的动态构成

时间:2016-09-26 18:53:42

标签: scala scalacheck

假设我有以下Gen可以构建名称的各个部分。

genPrefix
genTitle
genFirstName
genMiddleName
genLastName
genSuffix

我想要一种基于用户想要的部分动态组合Gen(使用Gen.zip)的机制。对于例如用户可能想要的和可能的组合。很少列出如下

  1. FirstName和LastName
  2. FirstName,MiddleName和LastName
  3. 1 with Prefix
  4. 2 with Prefix
  5. 等。
  6. 我应该为所有可能的组合创建一个新的Gen并根据输入选择它们还是有更好的方法?

    修改

    我组合1.定义如下

    def genFirstAndLastName(locale: Locale = Locale.US): Gen[(String, String)] = {
        Gen.zip(genFirstName(locale), genLastName(locale))
    }
    

    我希望用户提供NameParts作为Seq[NumPart]包含在Gen中,如下所示。将NumPart视为总和类型或枚举。

    def genName(parts: Seq[NamePart]) = {
    // ???
    }
    

    NumPart总和类型

    sealed abstract class NamePart
    object FirstName extends NamePart
    object LastName extends NamePart
    object Prefix extends NamePart
    object Title extends NamePart
    object Suffix extends NamePart
    

0 个答案:

没有答案