refactor: organiza imports e simplifica funções em diversos arquivos
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
use crate::domain::{
|
||||
entities::{
|
||||
nota::Nota,
|
||||
resultado_analise::{IntervaloSerie, ResultadoAnalise, ResultadoPreAnalise},
|
||||
resultado_analise::{ResultadoAnalise, ResultadoPreAnalise},
|
||||
},
|
||||
services::{
|
||||
detector_duplicidade::duplicidades_por_serie,
|
||||
detector_sequencia::{calcular_intervalo, detectar_faltantes, LIMITE_FALTANTES},
|
||||
detector_sequencia::{LIMITE_FALTANTES, calcular_intervalo, detectar_faltantes},
|
||||
},
|
||||
};
|
||||
use rust_decimal::Decimal;
|
||||
@@ -55,9 +55,7 @@ pub fn pre_analisar(notas: &[Nota]) -> ResultadoPreAnalise {
|
||||
|
||||
/// Verifica se alguma série excede o limite de faltantes.
|
||||
/// Retorna lista de séries que precisam de confirmação.
|
||||
pub fn series_com_intervalo_excessivo(
|
||||
pre: &ResultadoPreAnalise,
|
||||
) -> Vec<(String, u64)> {
|
||||
pub fn series_com_intervalo_excessivo(pre: &ResultadoPreAnalise) -> Vec<(String, u64)> {
|
||||
pre.intervalos_por_serie
|
||||
.iter()
|
||||
.filter(|(_, iv)| iv.excede_limite(LIMITE_FALTANTES))
|
||||
@@ -89,19 +87,18 @@ pub fn expandir_analise(pre: ResultadoPreAnalise, notas: &[Nota]) -> ResultadoAn
|
||||
}
|
||||
}
|
||||
|
||||
/// Executa análise completa sem verificar limites (use case simplificado).
|
||||
/// Útil quando o caller já confirmou ou sabe que não há intervalos excessivos.
|
||||
pub fn executar_analise(notas: &[Nota]) -> ResultadoAnalise {
|
||||
let pre = pre_analisar(notas);
|
||||
expandir_analise(pre, notas)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::domain::entities::nota::Nota;
|
||||
use rust_decimal_macros::dec;
|
||||
|
||||
/// Executa análise completa sem verificar limites (atalho para testes).
|
||||
fn executar_analise(notas: &[Nota]) -> ResultadoAnalise {
|
||||
let pre = pre_analisar(notas);
|
||||
expandir_analise(pre, notas)
|
||||
}
|
||||
|
||||
fn nota(numero: u64, serie: &str, valor: Option<rust_decimal::Decimal>) -> Nota {
|
||||
Nota::new(numero, serie.to_string(), valor, None)
|
||||
}
|
||||
@@ -133,10 +130,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn pre_analise_detecta_intervalo_excessivo() {
|
||||
let notas = vec![
|
||||
nota(1, "001", None),
|
||||
nota(20_000, "001", None),
|
||||
];
|
||||
let notas = vec![nota(1, "001", None), nota(20_000, "001", None)];
|
||||
let pre = pre_analisar(¬as);
|
||||
let excessivos = series_com_intervalo_excessivo(&pre);
|
||||
assert_eq!(excessivos.len(), 1);
|
||||
|
||||
Reference in New Issue
Block a user