use super::super::{ReorderRowsArgs, RunSqueezeArgs, SubsetColumnsArgs, SubsetRowsArgs};
use clap::Parser;
#[derive(Parser)]
struct Cols {
#[command(flatten)]
args: SubsetColumnsArgs,
}
#[derive(Parser)]
struct Rows {
#[command(flatten)]
args: SubsetRowsArgs,
}
#[derive(Parser)]
struct Reorder {
#[command(flatten)]
args: ReorderRowsArgs,
}
#[derive(Parser)]
struct Squeeze {
#[command(flatten)]
args: RunSqueezeArgs,
}
#[test]
fn an_edit_handler_zips_its_output_like_every_builder_does() {
assert!(Cols::parse_from(["x", "in.zarr.zip", "-o", "out"]).args.zip);
assert!(Rows::parse_from(["x", "in.zarr.zip", "-o", "out"]).args.zip);
assert!(
Reorder::parse_from(["x", "in.zarr.zip", "-r", "rows.tsv", "-o", "out"])
.args
.zip
);
assert!(Squeeze::parse_from(["x", "in.zarr.zip"]).args.zip);
}
#[test]
fn no_zip_still_asks_for_a_directory() {
assert!(
!Cols::parse_from(["x", "in.zarr.zip", "-o", "out", "--no-zip"])
.args
.zip
);
assert!(
!Rows::parse_from(["x", "in.zarr.zip", "-o", "out", "--no-zip"])
.args
.zip
);
}
#[test]
fn interactive_output_keeps_the_input_container() {
use super::zip_like_input;
assert!(
!zip_like_input("in.zarr", "out"),
"a directory stays a directory"
);
assert!(zip_like_input("in.zarr.zip", "out"), "a zip stays a zip");
assert!(!zip_like_input("in.h5", "out"), "HDF5 is never zipped");
assert!(
!zip_like_input("in.zarr.zip", "out.zarr"),
"an explicit .zarr output wins"
);
}