use crate::syntax::{
ast::{node::ArrayDecl, Const},
parser::tests::check_parser,
};
#[test]
fn check_empty() {
check_parser("[]", vec![ArrayDecl::from(vec![]).into()]);
}
#[test]
fn check_empty_slot() {
check_parser(
"[,]",
vec![ArrayDecl::from(vec![Const::Undefined.into()]).into()],
);
}
#[test]
fn check_numeric_array() {
check_parser(
"[1, 2, 3]",
vec![ArrayDecl::from(vec![
Const::from(1).into(),
Const::from(2).into(),
Const::from(3).into(),
])
.into()],
);
}
#[test]
fn check_numeric_array_trailing() {
check_parser(
"[1, 2, 3,]",
vec![ArrayDecl::from(vec![
Const::from(1).into(),
Const::from(2).into(),
Const::from(3).into(),
])
.into()],
);
}
#[test]
fn check_numeric_array_elision() {
check_parser(
"[1, 2, , 3]",
vec![ArrayDecl::from(vec![
Const::from(1).into(),
Const::from(2).into(),
Const::Undefined.into(),
Const::from(3).into(),
])
.into()],
);
}
#[test]
fn check_numeric_array_repeated_elision() {
check_parser(
"[1, 2, ,, 3]",
vec![ArrayDecl::from(vec![
Const::from(1).into(),
Const::from(2).into(),
Const::Undefined.into(),
Const::Undefined.into(),
Const::from(3).into(),
])
.into()],
);
}
#[test]
fn check_combined() {
check_parser(
"[1, \"a\", 2]",
vec![ArrayDecl::from(vec![
Const::from(1).into(),
Const::from("a").into(),
Const::from(2).into(),
])
.into()],
);
}
#[test]
fn check_combined_empty_str() {
check_parser(
"[1, \"\", 2]",
vec![ArrayDecl::from(vec![
Const::from(1).into(),
Const::from("").into(),
Const::from(2).into(),
])
.into()],
);
}