test Invariant act: # create 2 named values period: Period(); today: today() assert: # check the values period.Start = today; not period.Days; period.End = today act: # make a change period.set(Days: 5) assert: # validate period.End = today + 5 act: # make another change period.set(Start: today + 7) assert: # validate period.Start = today + 7; period.End = today + 12 act: # make one more change period.set(End: today - 3 * Days) assert: # validate period.Start = today - 20; period.End = today - 15 act: # Days < 0 violates invariant period.set(Days: -3) assert: # validate that it's ignored period.Days = 5; period.Start = today - 20; period.End = today - 15