openjdk version "21.0.11" 2026-04-21 LTS
OpenJDK Runtime Environment Corretto-21.0.11.10.1 (build 21.0.11+10-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.11.10.1 (build 21.0.11+10-LTS, mixed mode, sharing)
javac 21.0.11
PASS blank equipment id -> IllegalArgumentException
PASS null request id -> IllegalArgumentException
PASS zero-length interval -> IllegalArgumentException
PASS reversed interval -> IllegalArgumentException
PASS missing start -> NullPointerException
PASS missing end -> NullPointerException
PASS missing request identity -> NullPointerException
PASS missing equipment identity -> NullPointerException
PASS missing period -> NullPointerException
PASS reference booking 0
PASS interval [5,10) against [10,20): CONFIRMED
PASS reference booking 1
PASS interval [20,25) against [10,20): CONFIRMED
PASS reference booking 2
PASS interval [0,5) against [10,20): CONFIRMED
PASS reference booking 3
PASS interval [25,30) against [10,20): CONFIRMED
PASS reference booking 4
PASS interval [5,11) against [10,20): OVERLAP_REJECTED
PASS reference booking 5
PASS interval [19,25) against [10,20): OVERLAP_REJECTED
PASS reference booking 6
PASS interval [12,18) against [10,20): OVERLAP_REJECTED
PASS reference booking 7
PASS interval [5,25) against [10,20): OVERLAP_REJECTED
PASS reference booking 8
PASS interval [10,20) against [10,20): OVERLAP_REJECTED
PASS reference booking 9
PASS interval [10,15) against [10,20): OVERLAP_REJECTED
PASS reference booking 10
PASS interval [15,20) against [10,20): OVERLAP_REJECTED
PASS initial request confirmed
PASS same payload retry returns original outcome
PASS changed interval under reused id rejected -> IllegalArgumentException
PASS changed equipment under reused id rejected -> IllegalArgumentException
PASS failed changed payload leaves original booking active
PASS different equipment accepts same interval
PASS unknown cancellation changes nothing
PASS rejected request has no booking to cancel
PASS cancellation releases original booking
PASS repeated cancellation reports no active booking
PASS retry after cancellation retains original outcome
PASS rejected outcome remains stable after availability changes
PASS rejected request id cannot change payload -> IllegalArgumentException
PASS new request uses released interval; old retry did not rebook
PASS replacement booking protects released interval again
PASS null request rejected -> NullPointerException
PASS null cancellation rejected -> NullPointerException
PASS total=48
PASS counterexample record alone leaks mutable list alias
PASS description copies input list
PASS output list rejects mutation
PASS description has structural equality
PASS null tags rejected
PASS same attributes different identities
PASS different references same entity identity
PASS equal entities have equal hash
PASS entity aliases observe lifecycle change
PASS identity equality is not state equality
PASS hash identity stable after state mutation
PASS snapshot retains old state
PASS description change preserves identity
PASS active can require inspection
PASS duplicate approval rejected
PASS retired cannot reactivate
PASS retired cannot require inspection
PASS retired description cannot change
PASS duplicate retirement rejected
PASS rejected transitions leave retired state
PASS unapproved equipment may retire
PASS different identifier types do not compare equal
PASS counterexample raw decimal equals includes scale
PASS money normalizes scale for equality and hash
PASS same numeric amount different currency
PASS money addition returns value without changing operand
PASS signed amount supported without payment meaning
PASS mixed currency addition rejected
PASS precision loss rejected without rounding
PASS unsupported currency rejected
PASS existing core Period value equality
PASS existing core half-open boundary retained
PASS existing core rejects empty period
PASS boundary: unchanged core does not know entity retirement
PASS existing core same request retry retained
PASS existing core cancellation retained
RESULT 36 checks passed; lifecycle gate not integrated into RentalDesk
