mirror of
https://github.com/nushell/nushell.git
synced 2024-10-20 01:03:03 +02:00
fbc6f01cfb
`left =~ right` return true if left contains right, using Rust's `String::contains`. `!~` is the negated version. A new `apply_operator` function is added which decouples evaluation from `Value::compare`. This returns a `Value` and opens the door to implementing `+` for example, though it wouldn't be useful immediately. The `operator!` macro had to be changed slightly as it would choke on `~` in arguments.
113 lines
2.3 KiB
Rust
113 lines
2.3 KiB
Rust
mod helpers;
|
|
|
|
use helpers as h;
|
|
|
|
#[test]
|
|
fn test_compare() {
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", h::pipeline(
|
|
r#"
|
|
open sample.db
|
|
| where table_name == ints
|
|
| get table_values
|
|
| first 4
|
|
| where z > 4200
|
|
| get z
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "4253");
|
|
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", h::pipeline(
|
|
r#"
|
|
open sample.db
|
|
| where table_name == ints
|
|
| get table_values
|
|
| first 4
|
|
| where z >= 4253
|
|
| get z
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "4253");
|
|
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", h::pipeline(
|
|
r#"
|
|
open sample.db
|
|
| where table_name == ints
|
|
| get table_values
|
|
| first 4
|
|
| where z < 10
|
|
| get z
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "1");
|
|
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", h::pipeline(
|
|
r#"
|
|
open sample.db
|
|
| where table_name == ints
|
|
| get table_values
|
|
| first 4
|
|
| where z <= 1
|
|
| get z
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "1");
|
|
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", h::pipeline(
|
|
r#"
|
|
open sample.db
|
|
| where table_name == ints
|
|
| get table_values
|
|
| where z != 1
|
|
| first 1
|
|
| get z
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "42");
|
|
}
|
|
|
|
#[test]
|
|
fn test_contains() {
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", h::pipeline(
|
|
r#"
|
|
open sample.db
|
|
| where table_name == strings
|
|
| get table_values
|
|
| where x =~ ell
|
|
| count
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "4");
|
|
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", h::pipeline(
|
|
r#"
|
|
open sample.db
|
|
| where table_name == strings
|
|
| get table_values
|
|
| where x !~ ell
|
|
| count
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "2");
|
|
}
|