- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在研究如何实现类似于 rrule.js 的 toText()
和 fromText()
方法的重复规则的人性化文本表示形式。 ;但是,我想在 dateutil.rrule 上构建的 Python 中实现它。
测试此类方法,检查它们是否彼此“相反”,即根据另一个方法的结果调用一个方法,并检查结果是否与原始输入相同。这让我想到了一个问题:两个 rrule
对象等效到底意味着什么?
最新版本的 dateutil.rrule
2.6.0 似乎没有用于 rrule
类的 __eq__
方法(请参阅source code)。等价似乎也不像所有属性的等价那么简单,因为有时不同的 freq 参数仍然会导致相同的重复。 (例如,如果选择 byweekday=FR
,freq=DAILY
和 freq=WEEKLY
会导致相同的重复时间;请参阅下面的屏幕截图rrule.js demo)。
有人知道规则的等价关系的实现吗? (它不必是Python)。
最佳答案
Does anyone know of an implementation of an equivalence relation for rrules? (It doesn't have to be in Python).
不,因为据我所知,不可能有可靠的东西。对于有限规则(具有 COUNT 或 UNTIL),您可以比较它们的出现集 - 如果两个集合相同,它们将是“等效的”。但对于无限规则你不能这样做。
您的示例:“如果选择 byweekday=FR,freq=DAILY 和 freq=WEEKLY 会导致相同的重复时间”并不总是正确且无法推广。例如,更改频率。
FREQ=DAILY;BYDAY=FR;INTERVAL=2
FREQ=WEEKLY;BYDAY=FR;INTERVAL=2
或者向“byweekday”添加更多天数并与 BYSETPOS 结合使用。
FREQ=DAILY;BYDAY=MO,FR;BYSETPOS=-1
FREQ=WEEKLY;BYDAY=MO,FR;BYSETPOS=-1
等等...
Testing such methods checking that they are each other's 'inverse', that is, calling one on the result of the other and checking that the result is equivalent to the original input.
话虽这么说,如果您的问题是关于测试,我认为您走错了路。
只需采用一条规则,生成文本,解析文本并将新对象与原始对象进行比较,以确保它们等于。为什么你需要担心“同等”?没有理由生成文本表示会突然改变频率,不是吗?
另一种方法是独立测试这两种方法,只是承认“自然语言”表示是模糊的,并且这两种方法不能严格地相互逆。取一组“规则=>文本版本”的数据集并测试生成。然后取另一个“文本版本=>规则”的数据集并测试解析器。
关于python - 递归规则(规则)的等价关系的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40937237/
是: x -= y; 相当于: x = x - y; 最佳答案 不,它们并不等同于您表达它们的方式。 short x = 0, y = 0; x -= y; // This compiles f
这个问题在这里已经有了答案: What is the rationale for all comparisons returning false for IEEE754 NaN values? (1
我在哪里可以找到与 Python maketrans 和 translate 等效的 C# 代码?谢谢! 最佳答案 这应该带你到那里的大部分方式: public class MakeTrans {
我正在 SwiftUI 中构建一个应用程序其中包含很多组件,包括 Text包含长字符串的 View 。 当我在 iPhone 11 上启动该应用程序时,一切正常,但当我在较小的设备(例如 iPhone
这个问题已经有答案了: What is the equivalent lambda expression for System.out::println (2 个回答) Function pointe
我最近在使用 postgres,我必须做一些计算。然而我一直没能模仿Excel的HOUR()函数,我看了official information但这对我帮助不大。 函数接收一个小数,并得到小数的时、分
如果在 cython 中定义了一个指针 vector ,那么与 python 中的 enumerate 类似的函数或过程是什么,用于遍历指针数组中元素的索引和值在 C 声明类型函数内的循环中? 测试.
要选择: select user_id, max(case when value > 0 then timestamp else 0 end) as max_timestamp_whe
如果没有例子,这个问题很难问,所以这里是: #include struct O { }; struct C { template void function1(void (C::*call
我得到了这个结构的实现: struct NodoQ { Etype elem; NodoQ *sig; }; 下面是这段代码吗, typedef NodoQ *PtrNodoQ; PtrNod
我有一些宏需要访问当前类的类型,目前我通过违反 DRY 的模式解决了这个问题: struct ThisScruct{ int a; double b; //example st
我想知道 TensorFlow 的 softmax_cross_entropy_with_logits 是否有等效的 PyTorch 损失函数? 最佳答案 is there an equivalent
我找到了一个 trie 的 java 实现,并希望在 J2ME 中有一个类似的实现。这是代码。 节点类 import java.util.Collections; import java.util.L
我刚刚学习了 GraphQL,我想找到用户 id=2 OR 用户 id=3 现在我将如何进行 GraphQL 查询,我正在使用以下查询获取整个集合 { users() {
假设我有两个 Web 服务:A 和 B。两者都在 Apache 上运行。我希望它们可以从我的主机的不同端口访问:A 来自端口 88,B 来自端口 89。 我可以手动完成(首先创建图像,然后使用“doc
我一直在 excel 中使用一个非常简单的数组公式来处理一些数据集,但是它们变得太大并且在我更新计算时完全破坏了我的计算机性能。 excel表格和MySQL数据库布局如下: +-Timestamp-+
我有一个类,其实例要通过不同于它们携带的数据值的标识来区分。在我的代码中,我打算使用 == 来表示两个实例在它们的数据方面是等价的,并且 is 表示两个变量引用同一个实例,也就是说,他们是相同的。根据
我正在 Windows 中使用 WinSock 2.0 开发代理服务器。如果我想在阻塞模型中开发它,select() 是等待客户端或远程服务器从中接收数据的方法。是否有任何适用的方法可以使用 I/O
我正在将我制作的 Android 应用移植到 iOS。 Android 有一个 Yield() 函数可以将线程从运行中移到线程队列的后面(?)。这很有用,这样该线程就不会占用过多的 CPU 并使其他一
这是否保证始终为真: std::numeric_limits::max() == INT_MAX C++ 标准对此有何规定?我在标准中找不到任何明确说明这一点的引用资料,但我一直在阅读这些内容应该是等
我是一名优秀的程序员,十分优秀!