2020-07-18 01:59:23 +00:00
use nu_test_support ::nu ;
2022-04-28 05:45:39 +00:00
#[ allow(unused) ]
2020-07-18 01:59:23 +00:00
use nu_test_support ::pipeline ;
2019-11-21 17:18:00 +00:00
2019-12-15 16:15:06 +00:00
#[ test ]
fn filters_by_unit_size_comparison ( ) {
let actual = nu! (
cwd : " tests/fixtures/formats " ,
2021-02-10 02:31:12 +00:00
" ls | where size > 1kib | sort-by size | get name | first 1 | str trim "
2019-12-15 16:15:06 +00:00
) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " cargo_sample.toml " ) ;
2019-12-15 16:15:06 +00:00
}
2019-11-21 17:18:00 +00:00
2020-03-20 22:02:49 +00:00
#[ test ]
fn filters_with_nothing_comparison ( ) {
let actual = nu! (
cwd : " tests/fixtures/formats " ,
2020-10-26 06:55:52 +00:00
r # "echo '[{"foo": 3}, {"foo": null}, {"foo": 4}]' | from json | get foo | compact | where $it > 1 | math sum"#
2020-03-20 22:02:49 +00:00
) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 7 " ) ;
2020-03-20 22:02:49 +00:00
}
2020-04-26 05:32:17 +00:00
#[ test ]
fn where_in_table ( ) {
let actual = nu! (
cwd : " tests/fixtures/formats " ,
2020-10-26 06:55:52 +00:00
r # "echo '[{"name": "foo", "size": 3}, {"name": "foo", "size": 2}, {"name": "bar", "size": 4}]' | from json | where name in ["foo"] | get size | math sum"#
2020-04-26 05:32:17 +00:00
) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 5 " ) ;
2020-04-26 05:32:17 +00:00
}
#[ test ]
fn where_not_in_table ( ) {
let actual = nu! (
cwd : " tests/fixtures/formats " ,
2020-10-26 06:55:52 +00:00
r # "echo '[{"name": "foo", "size": 3}, {"name": "foo", "size": 2}, {"name": "bar", "size": 4}]' | from json | where name not-in ["foo"] | get size | math sum"#
2020-04-26 05:32:17 +00:00
) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 4 " ) ;
2020-04-26 05:32:17 +00:00
}
2022-04-24 09:29:21 +00:00
#[ cfg(feature = " database " ) ]
2019-11-21 17:18:00 +00:00
#[ test ]
2019-12-15 16:15:06 +00:00
fn binary_operator_comparisons ( ) {
2019-11-21 17:18:00 +00:00
let actual = nu! (
2019-12-15 16:15:06 +00:00
cwd : " tests/fixtures/formats " , pipeline (
2019-11-21 17:18:00 +00:00
r #"
open sample . db
2022-04-14 03:15:02 +00:00
| get ints
2019-11-21 17:18:00 +00:00
| first 4
| where z > 4200
2022-04-14 03:15:02 +00:00
| get z . 0
2019-11-21 17:18:00 +00:00
" #
) ) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 4253 " ) ;
2019-11-21 17:18:00 +00:00
let actual = nu! (
2019-12-15 16:15:06 +00:00
cwd : " tests/fixtures/formats " , pipeline (
2019-11-21 17:18:00 +00:00
r #"
open sample . db
2022-04-14 03:15:02 +00:00
| get ints
2019-11-21 17:18:00 +00:00
| first 4
| where z > = 4253
2022-04-14 03:15:02 +00:00
| get z . 0
2019-11-21 17:18:00 +00:00
" #
) ) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 4253 " ) ;
2019-11-21 17:18:00 +00:00
let actual = nu! (
2019-12-15 16:15:06 +00:00
cwd : " tests/fixtures/formats " , pipeline (
2019-11-21 17:18:00 +00:00
r #"
open sample . db
2022-04-14 03:15:02 +00:00
| get ints
2019-11-21 17:18:00 +00:00
| first 4
| where z < 10
2022-04-14 03:15:02 +00:00
| get z . 0
2019-11-21 17:18:00 +00:00
" #
) ) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 1 " ) ;
2019-11-21 17:18:00 +00:00
let actual = nu! (
2019-12-15 16:15:06 +00:00
cwd : " tests/fixtures/formats " , pipeline (
2019-11-21 17:18:00 +00:00
r #"
open sample . db
2022-04-14 03:15:02 +00:00
| get ints
2019-11-21 17:18:00 +00:00
| first 4
| where z < = 1
2022-04-14 03:15:02 +00:00
| get z . 0
2019-11-21 17:18:00 +00:00
" #
) ) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 1 " ) ;
2019-11-21 17:18:00 +00:00
let actual = nu! (
2019-12-15 16:15:06 +00:00
cwd : " tests/fixtures/formats " , pipeline (
2019-11-21 17:18:00 +00:00
r #"
open sample . db
2022-04-14 03:15:02 +00:00
| get ints
2019-11-21 17:18:00 +00:00
| where z ! = 1
| first 1
| get z
" #
) ) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 42 " ) ;
2019-11-21 17:18:00 +00:00
}
2022-04-24 09:29:21 +00:00
#[ cfg(feature = " database " ) ]
2019-11-21 17:18:00 +00:00
#[ test ]
2019-12-15 16:15:06 +00:00
fn contains_operator ( ) {
2019-11-21 17:18:00 +00:00
let actual = nu! (
2019-12-15 16:15:06 +00:00
cwd : " tests/fixtures/formats " , pipeline (
2019-11-21 17:18:00 +00:00
r #"
open sample . db
2022-04-14 03:15:02 +00:00
| get strings
2019-11-21 17:18:00 +00:00
| where x = ~ ell
2021-03-13 21:46:40 +00:00
| length
2019-11-21 17:18:00 +00:00
" #
) ) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 4 " ) ;
2019-11-21 17:18:00 +00:00
let actual = nu! (
2019-12-15 16:15:06 +00:00
cwd : " tests/fixtures/formats " , pipeline (
2019-11-21 17:18:00 +00:00
r #"
open sample . db
2022-04-14 03:15:02 +00:00
| get strings
2019-11-21 17:18:00 +00:00
| where x ! ~ ell
2021-03-13 21:46:40 +00:00
| length
2019-11-21 17:18:00 +00:00
" #
) ) ;
2020-05-07 11:03:43 +00:00
assert_eq! ( actual . out , " 2 " ) ;
2019-11-21 17:18:00 +00:00
}