from services.control.exporter_monolith import ( REG178_PASSIVE, _drop_registers_matching_last_verified, ) def test_drop_registers_skips_reg178_when_mask_matches(): # last_verified contains extra bits beyond 0x0030; we still want to skip if bits 4–5 match. registers = [(178, "grid_peak_shaving_switch", REG178_PASSIVE)] last_verified = {178: 12030} # real-world example from home-01 (bits4-5 still == 0b11) out, skipped = _drop_registers_matching_last_verified(registers, last_verified) assert out == [] assert skipped == [178] def test_drop_registers_keeps_reg178_when_mask_differs(): registers = [(178, "grid_peak_shaving_switch", REG178_PASSIVE)] last_verified = {178: 32} # SELL mask 0b10 out, skipped = _drop_registers_matching_last_verified(registers, last_verified) assert out == registers assert skipped == []