test_rect.mod 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. MODULE test_rect ;
  2. (* m2SDL3 unit test: pure-Modula-2 SDL3Rect helpers, no SDL needed. *)
  3. FROM SDL3Rect IMPORT SDLRect, SDLFRect,
  4. MakePoint, MakeFPoint, MakeRect, MakeFRect,
  5. PointEquals, FPointEquals, RectEquals, FRectEquals,
  6. RectEmpty, FRectEmpty;
  7. FROM libc IMPORT printf;
  8. VAR r: SDLRect; fr: SDLFRect;
  9. BEGIN
  10. IF NOT PointEquals(MakePoint(1, 2), MakePoint(1, 2)) THEN
  11. printf("FAIL test_rect: PointEquals\n"); HALT(1) END;
  12. IF PointEquals(MakePoint(1, 2), MakePoint(3, 4)) THEN
  13. printf("FAIL test_rect: PointEquals negative\n"); HALT(1) END;
  14. IF NOT RectEquals(MakeRect(0, 0, 10, 20), MakeRect(0, 0, 10, 20)) THEN
  15. printf("FAIL test_rect: RectEquals\n"); HALT(1) END;
  16. r := MakeRect(0, 0, 10, 20);
  17. IF RectEmpty(r) THEN
  18. printf("FAIL test_rect: RectEmpty false positive\n"); HALT(1) END;
  19. r := MakeRect(0, 0, 0, 20);
  20. IF NOT RectEmpty(r) THEN
  21. printf("FAIL test_rect: RectEmpty zero width\n"); HALT(1) END;
  22. IF NOT FPointEquals(MakeFPoint(VAL(SHORTREAL, 1.5), VAL(SHORTREAL, 2.5)),
  23. MakeFPoint(VAL(SHORTREAL, 1.5), VAL(SHORTREAL, 2.5))) THEN
  24. printf("FAIL test_rect: FPointEquals\n"); HALT(1) END;
  25. IF NOT FRectEquals(MakeFRect(VAL(SHORTREAL, 0.0), VAL(SHORTREAL, 0.0),
  26. VAL(SHORTREAL, 10.0), VAL(SHORTREAL, 20.0)),
  27. MakeFRect(VAL(SHORTREAL, 0.0), VAL(SHORTREAL, 0.0),
  28. VAL(SHORTREAL, 10.0), VAL(SHORTREAL, 20.0))) THEN
  29. printf("FAIL test_rect: FRectEquals\n"); HALT(1) END;
  30. fr := MakeFRect(VAL(SHORTREAL, 0.0), VAL(SHORTREAL, 0.0),
  31. VAL(SHORTREAL, 0.0), VAL(SHORTREAL, 5.0));
  32. IF NOT FRectEmpty(fr) THEN
  33. printf("FAIL test_rect: FRectEmpty zero width\n"); HALT(1) END;
  34. printf("PASS test_rect\n")
  35. END test_rect.