mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
Coerce resched:days as well
This commit is contained in:
parent
5eb2c7b271
commit
81d851610e
2 changed files with 14 additions and 2 deletions
|
@ -358,7 +358,7 @@ fn parse_flag(s: &str) -> ParseResult<SearchNode<'static>> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// eg rated:3 or rated:10:2
|
/// eg rated:3 or rated:10:2
|
||||||
/// second arg must be between 0-4
|
/// second arg must be between 1-4
|
||||||
fn parse_rated(val: &str) -> ParseResult<SearchNode<'static>> {
|
fn parse_rated(val: &str) -> ParseResult<SearchNode<'static>> {
|
||||||
let mut it = val.splitn(2, ':');
|
let mut it = val.splitn(2, ':');
|
||||||
|
|
||||||
|
@ -383,7 +383,10 @@ fn parse_rated(val: &str) -> ParseResult<SearchNode<'static>> {
|
||||||
/// eg resched:3
|
/// eg resched:3
|
||||||
fn parse_resched(val: &str) -> ParseResult<SearchNode<'static>> {
|
fn parse_resched(val: &str) -> ParseResult<SearchNode<'static>> {
|
||||||
let mut it = val.splitn(1, ':');
|
let mut it = val.splitn(1, ':');
|
||||||
let days = it.next().unwrap().parse()?;
|
|
||||||
|
let n: u32 = it.next().unwrap().parse()?;
|
||||||
|
let days = n.max(1).min(365);
|
||||||
|
|
||||||
let ease = EaseKind::Manually;
|
let ease = EaseKind::Manually;
|
||||||
|
|
||||||
Ok(SearchNode::Rated { days, ease })
|
Ok(SearchNode::Rated { days, ease })
|
||||||
|
|
|
@ -732,6 +732,15 @@ mod test {
|
||||||
);
|
);
|
||||||
assert_eq!(s(ctx, "rated:0").0, s(ctx, "rated:1").0);
|
assert_eq!(s(ctx, "rated:0").0, s(ctx, "rated:1").0);
|
||||||
|
|
||||||
|
// resched
|
||||||
|
assert_eq!(
|
||||||
|
s(ctx, "resched:400").0,
|
||||||
|
format!(
|
||||||
|
"(c.id in (select cid from revlog where id>{} and ease = 0))",
|
||||||
|
(timing.next_day_at - (86_400 * 365)) * 1_000
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
// props
|
// props
|
||||||
assert_eq!(s(ctx, "prop:lapses=3").0, "(lapses = 3)".to_string());
|
assert_eq!(s(ctx, "prop:lapses=3").0, "(lapses = 3)".to_string());
|
||||||
assert_eq!(s(ctx, "prop:ease>=2.5").0, "(factor >= 2500)".to_string());
|
assert_eq!(s(ctx, "prop:ease>=2.5").0, "(factor >= 2500)".to_string());
|
||||||
|
|
Loading…
Reference in a new issue