小编Mar*_*ood的帖子

Python假设:如何组成相互依赖的生成器?

我有一个使用 python 假设的生成器,如下所示:

@st.composite
def generate_network_fault_only(draw):
    fault = {
        "impaired": st.just(True),   # need to detect if all faults are None to switch this back.
        "limit": draw(NetworkFaultGen.generate_limit()),
        "delay": draw(NetworkFaultGen.generate_delay()),
        "loss_random": draw(NetworkFaultGen.generate_loss_random()),
        "corrupt": draw(NetworkFaultGen.generate_corrupt()),
        "duplicate": draw(NetworkFaultGen.generate_duplicate()),
        "reorder": draw(NetworkFaultGen.generate_reorder()),
        "rate": draw(NetworkFaultGen.generate_rate())
    }

    return draw(st.fixed_dictionaries(fault))
Run Code Online (Sandbox Code Playgroud)

上面的每个函数都会返回类似以下内容的内容:

@st.composite
def generate_reorder(draw):
    """
    This must only happen if delay is applied
    """
    return st.one_of(st.fixed_dictionaries(
              {"percent": st.integers(min_value=0, max_value=100),
               "correlation": st.integers(min_value=0, max_value=100),
               "distance": st.integers(min_value=0)}),st.none())
Run Code Online (Sandbox Code Playgroud)

reorder我的值和重新排序中的值之间存在依赖关系,delay只有在延迟不是时才能指定None

我不知道如何实现这一点。过滤似乎遇到了性能问题。此时代码中的delay值还不是具体值。

python python-hypothesis

5
推荐指数
1
解决办法
1287
查看次数

从正则表达式生成字符串数据

我希望能够使用正则表达式并使用 python 假设库生成符合要求的数据。例如,给定一个正则表达式

regex = re.compile('[a-zA-Z]')
Run Code Online (Sandbox Code Playgroud)

这将匹配任何英文字母字符。一个示例生成器可能是。

import hypothesis
import string

hypothesis.strategies.text(alphabet=string.ascii_letters)
Run Code Online (Sandbox Code Playgroud)

但理想情况下,我想构建一个与传入的任何正则表达式匹配的字符串。

python-hypothesis

3
推荐指数
1
解决办法
891
查看次数

标签 统计

python-hypothesis ×2

python ×1