use std::cmp::min;
pub(crate) fn get_schema_sample_rows(
sample_rows: Option<usize>,
offset: usize,
limit: usize,
) -> usize {
let sample_rows = offset + sample_rows.unwrap_or(limit);
min(sample_rows, limit)
}
#[cfg(feature = "__pyo3-tests")]
#[cfg(test)]
mod tests {
use super::get_schema_sample_rows;
use pretty_assertions::assert_eq;
use rstest::rstest;
#[rstest]
#[case(Some(1000), 0, 50, 50)]
#[case(Some(1000), 0, 5000, 1000)]
#[case(Some(1000), 1000, 1500, 1500)]
#[case(Some(100), 1000, 1500, 1100)]
#[case(None, 0, 50, 50)]
#[case(None, 0, 5000, 5000)]
#[case(None, 1000, 1500, 1500)]
fn test_get_schema_sample_rows_return_values(
#[case] sample_rows: Option<usize>,
#[case] offset: usize,
#[case] limit: usize,
#[case] expected: usize,
) {
assert_eq!(get_schema_sample_rows(sample_rows, offset, limit), expected);
}
}