#[inline]
pub fn estimate_properties_count(token_count: usize) -> usize {
usize::max(8, token_count / 5)
}
#[inline]
pub fn estimate_array_items_count(token_count: usize) -> usize {
usize::max(4, token_count / 9)
}
#[inline]
pub fn estimate_statements_count(token_count: usize) -> usize {
usize::max(4, token_count / 12)
}
#[inline]
pub fn estimate_enum_fields_count(token_count: usize) -> usize {
usize::max(4, token_count / 2)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_estimates_have_minimums() {
assert_eq!(estimate_properties_count(0), 8);
assert_eq!(estimate_array_items_count(0), 4);
assert_eq!(estimate_statements_count(0), 4);
assert_eq!(estimate_enum_fields_count(0), 4);
}
#[test]
fn test_estimates_scale_with_tokens() {
assert!(estimate_properties_count(100) > 8);
assert!(estimate_array_items_count(100) > 4);
assert!(estimate_statements_count(100) > 4);
assert!(estimate_enum_fields_count(100) > 4);
}
#[test]
fn test_enum_fields_estimate() {
assert_eq!(estimate_enum_fields_count(50), 25);
}
}