- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建 End 大于 Start 的数据框。
我用的是:
from hypothesis.extra.pandas import columns, data_frames, column
import hypothesis.strategies as st
positions = st.integers(min_value=0, max_value=int(1e7))
strands = st.sampled_from("+ -".split())
data_frames(columns=columns(["Start", "End"], dtype=int),
rows=st.tuples(positions, positions).map(sorted)).example()
给出
Start End
0 589492 6620613
1 5990807 8083222
2 252458 8368032
3 1575938 5763895
4 4689113 9133040
5 7439297 8646668
6 838051 1886133
但是,我想将第三列 Strand 添加到数据中,这是通过上述策略生成的。然后这停止工作:
data_frames(columns=columns(["Start", "End", "Strands"], dtype=int),
rows=st.tuples(positions, positions, strands).map(sorted)).example()
报错
TypeError: '<' not supported between instances of 'str' and 'int'
这是由于 int 和 str 的元组排序。我该如何解决这个问题?
我可以要求假设生成一个包含 pos、pos、strand_int 的数据帧,其中 strand_int 为 0 或 1,并在测试中将其转换为“-”或“+”,但感觉很恶心。
最佳答案
better_dfs_min = data_frames(index=range_indexes(min_size=better_df_minsize),
columns=[column("Chromosome", chromosomes_small),
column("Start", elements=small_lengths),
column("End", elements=small_lengths),
column("Strand", strands)])
@st.composite()
def dfs_min(draw):
df = draw(better_dfs_min)
df.loc[:, "End"] += df.Start
return df
@given(df=dfs_min())
def test_me(df):
print(df)
assert 0
from hypothesis.extra.pandas import columns, data_frames, column
import hypothesis.strategies as st
def mysort(tp):
key = [-1, tp[1], tp[2], int(1e10)]
return [x for _, x in sorted(zip(key, tp))]
positions = st.integers(min_value=0, max_value=int(1e7))
strands = st.sampled_from("+ -".split())
chromosomes = st.sampled_from(elements=["chr{}".format(str(e)) for e in list(range(23)) + "X Y M".split()])
data_frames(columns=columns(["Chromosome", "Start", "End", "Strand"], dtype=int), rows=st.tuples(chromosomes, positions, positions, strands).map(mysort)).example()
结果:
Chromosome Start End Strand
0 chr13 5660600 6171569 -
1 chrY 3987154 5435816 +
2 chr11 4659655 4956997 +
3 chr14 239357 8566407 +
4 chr3 3200488 9337489 +
5 chr8 304886 1078020 +
一定有比实现您自己的排序更好的方法...我的排序取决于 Start 和 End 中介于 0 和 int(1e10) - 1 之间的整数,这让人觉得恶心。
关于python-hypothesis - 当行元组具有不同的数据类型时,对由假设生成的数据帧进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50621939/
我希望能够采用正则表达式并使用 python 假设库生成符合要求的数据。例如给定一个正则表达式 regex = re.compile('[a-zA-Z]') 这将匹配任何英文字母字符。一个示例生成器可
我有以下使用基因组数据创建数据框的策略: from hypothesis.extra.pandas import columns, data_frames, column import hypothe
我有一个复合的、构建起来昂贵但测试起来便宜的策略。我必须这样做: @given(expensive_strategy()) def test_all(x): assert... ass
我想创建 End 大于 Start 的数据框。 我用的是: from hypothesis.extra.pandas import columns, data_frames, column impor
我刚刚将一个 pytest 测试套件从 quickcheck 迁移到 hypothesis。这工作得很好(并立即发现了一些隐藏的边缘案例错误),但我看到的一个主要区别与两个属性管理器之间的测试隔离有关
高质量的代码离不开单元测试,而设计单元测试的用例往往又比较耗时,而且难以想到一些极端情况,本文讲述如何使用 Hypothesis 来自动化单元测试 刷过力扣算法题的同学都知道,有时候觉得代码已经很
我用 conda install hypothesis 在 Anaconda 上安装了假设.我在 Spyder 上使用 Python 3.7。 在名为 testing.py 的文件中我写 from h
我正在尝试使用假设来生成一组数据帧,并将其合并在一起。我希望允许每个单独的列具有 NaN 值,并且我希望允许 Hypothesis 生成一些古怪的示例。 但我最想关注的是每个数据帧中至少有一行具有实际
我正在尝试使用假设来生成一组数据帧,并将其合并在一起。我希望允许每个单独的列具有 NaN 值,并且我希望允许 Hypothesis 生成一些古怪的示例。 但我最想关注的是每个数据帧中至少有一行具有实际
我有多年的编程经验,但我对 C++ 还很陌生。我不完全明白下面一行会做什么: this -> obj = MyObject(param) 首先,我有以下假设会发生什么: 调用 MyObject(par
可以指示基于属性的框架 QuickCheck 通过使用收集和测量效用函数来测量生成特定测试用例的频率(例如:同一个人平均下订单的频率,下空订单的频率)。是否有可能像在 Quickcheck 中那样调整
我想生成具有以下条件的大小为 2 的整数列表的列表。 第一个元素应小于第二个元素 所有数据都应该是唯一的。 我可以使用自定义函数生成每个元组,但不知道如何使用它来满足第二个条件。 from hypot
我想写一个hypothesis.stateful.RuleBasedStateMachine它断言在某些情况下会引发异常。 pytest提供 raises用于编写异常测试的上下文管理器。如果我使用 p
为了测试当我添加两个非常相似的数据行时我的数据库的行为,我需要为每个参数组合设置一个新数据库。我还使用 Hypothesis 的策略来生成“相似”的数据行。 测试工作流程应如下所示: for exam
考虑以下示例: df = pd.read_csv('myFile.txt',delim_whitespace=True,header=None) df.columns=['vary','vax1','
我有一个分位数回归模型,其中包含 1 个回归变量和 1 个回归变量。我想假设检验回归量在每个分位数上都相等。我想到的一种方法是在 {0.01,0.02,....,0.99} 上测试所有 tau。但是,
我正在使用假设 python 包进行测试。 我收到以下错误: Flaky: Hypothesis test_visiting produces unreliable results: Falsifie
当使用假设库并执行状态测试时,如何查看或输出库正在尝试我的代码的 Bundle“服务”? 例子 import hypothesis.strategies as st from hypothesis.s
我是一名优秀的程序员,十分优秀!