test_that("Stream processor handles NA and Inf gracefully", { sch = lifting_scheme("haar") # Janela de 16. As primeiras 15 chamadas serao BYPASS (retorna o input). # A 16a chamada processa. proc = new_wavelet_stream(sch, window_size = 16) # Envia valores normais (Bypass phase) v1 = proc(1) expect_equal(v1, 1) # Deve retornar 1 puro # Envia NA (deve retornar NA e emitir warning) expect_warning({ val_na = proc(NA) }) expect_true(is.na(val_na)) # Envia Inf (deve retornar Inf e emitir warning) expect_warning({ val_inf = proc(Inf) }) expect_true(is.infinite(val_inf)) }) test_that("Stream processor rejects bad window sizes", { sch = lifting_scheme("haar") # O minimo absoluto agora e 8 (para garantir que quando rodar, rode bem) expect_error(new_wavelet_stream(sch, window_size = 7)) })