Remove 'empty' block support reminders, for now. (#5214)

This commit is contained in:
Andrés N. Robalino
2022-04-30 22:32:30 -05:00
committed by GitHub
parent 07893e01c1
commit 7a7aa310aa
4 changed files with 77 additions and 103 deletions

View File

@ -56,6 +56,7 @@ impl Command for Empty {
}),
},
Example {
// TODO: revisit empty cell path semantics for a record.
description: "Check if more than one column are empty",
example: "[[meal size]; [arepa small] [taco '']] | empty? meal size",
result: Some(Value::Bool {
@ -125,30 +126,15 @@ fn empty(
span: head,
}
.into_pipeline_data()),
PipelineData::Value(value, ..) => {
let answer = is_empty(value);
Ok(Value::Bool {
val: answer,
span: head,
}
.into_pipeline_data())
PipelineData::Value(value, ..) => Ok(Value::Bool {
val: value.is_empty(),
span: head,
}
.into_pipeline_data()),
}
}
}
pub fn is_empty(value: Value) -> bool {
match value {
Value::List { vals, .. } => vals.is_empty(),
Value::String { val, .. } => val.is_empty(),
Value::Binary { val, .. } => val.is_empty(),
Value::Nothing { .. } => true,
Value::Record { cols, .. } => cols.is_empty(),
_ => false,
}
}
#[cfg(test)]
mod tests {
use super::*;

View File

@ -1,7 +1,5 @@
use nu_test_support::{nu, pipeline};
// FIXME: jt: needs more work
#[ignore]
#[test]
fn reports_emptiness() {
let actual = nu!(
@ -10,85 +8,14 @@ fn reports_emptiness() {
echo [[are_empty];
[([[check]; [[]] ])]
[([[check]; [""] ])]
[([[check]; [(wrap)] ])]
[([[check]; [{}] ])]
]
| get are_empty
| empty? check
| where check
| length
| all? {
empty? check
}
"#
));
assert_eq!(actual.out, "3");
}
// FIXME: jt: needs more work
#[ignore]
#[test]
fn sets_block_run_value_for_an_empty_column() {
let actual = nu!(
cwd: ".", pipeline(
r#"
echo [
[ first_name, last_name, rusty_at, likes ];
[ Andrés, Robalino, 10/11/2013, 1 ]
[ Jonathan, Turner, 10/12/2013, 1 ]
[ Jason, Gedge, 10/11/2013, 1 ]
[ Yehuda, Katz, 10/11/2013, '' ]
]
| empty? likes -b {|_| 1 }
| get likes
| math sum
"#
));
assert_eq!(actual.out, "4");
}
// FIXME: jt: needs more work
#[ignore]
#[test]
fn sets_block_run_value_for_many_empty_columns() {
let actual = nu!(
cwd: ".", pipeline(
r#"
echo [
[ boost check ];
[ 1, [] ]
[ 1, "" ]
[ 1, (wrap) ]
]
| empty? boost check -b { 1 }
| get boost check
| math sum
"#
));
assert_eq!(actual.out, "6");
}
// FIXME: jt: needs more work
#[ignore]
#[test]
fn passing_a_block_will_set_contents_on_empty_cells_and_leave_non_empty_ones_untouched() {
let actual = nu!(
cwd: ".", pipeline(
r#"
echo [
[ NAME, LVL, HP ];
[ Andrés, 30, 3000 ]
[ Alistair, 29, 2900 ]
[ Arepas, "", "" ]
[ Jorge, 30, 3000 ]
]
| empty? LVL -b { 9 }
| empty? HP -b {
$it.LVL * 1000
}
| math sum
| get HP
"#
));
assert_eq!(actual.out, "17900");
assert_eq!(actual.out, "true");
}