A 2D tile-based sandbox game.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "util.h"
  2. #include "lib/test.h"
  3. test("map") {
  4. int ints[] = { 100, 200, 300, 400 };
  5. auto mapping = Swan::map(ints, [](int i) { return i / 10; });
  6. auto iter = mapping.begin();
  7. expecteq(*iter, 10); ++iter;
  8. expecteq(*iter, 20); ++iter;
  9. expecteq(*iter, 30); ++iter;
  10. expecteq(*iter, 40); ++iter;
  11. expecteq(iter, mapping.end());
  12. }
  13. test("filter") {
  14. int ints[] = { 100, 200, 300, 400 };
  15. auto filter = Swan::filter(ints, [](int i) { return i == 200 || i == 400; });
  16. auto iter = filter.begin();
  17. expecteq(*iter, 200); ++iter;
  18. expecteq(*iter, 400); ++iter;
  19. expecteq(iter, filter.end());
  20. }
  21. test("mapFilter") {
  22. float floats[] = { 10.1, 20.2, 30.3 };
  23. auto mapfilt = Swan::mapFilter(floats, [](float f) -> std::optional<int> {
  24. if ((int)f == 20)
  25. return std::nullopt;
  26. return (int)f;
  27. });
  28. auto iter = mapfilt.begin();
  29. expecteq(*iter, 10); ++iter;
  30. expecteq(*iter, 30); ++iter;
  31. expecteq(iter, mapfilt.end());
  32. }