Esempio n. 1
0
#include <mettle.hpp>
using namespace mettle;

#include <sstream>

suite<> test_tuple_alg("tuple algorithms", [](auto &_) {
  subsuite<>(_, "tuple_for_until()", [](auto &_) {
    using detail::tuple_for_until;

    _.test("empty tuple", []() {
      std::tuple<> tup;
      std::size_t count = 0;
      tuple_for_until(tup, [&count](auto &&) {
        count++;
        return false;
      });

      expect("number of iterations", count, equal_to(0));
    });

    _.test("1-tuple", []() {
      std::tuple<int> tup(1);
      std::size_t count = 0;
      tuple_for_until(tup, [&count](auto &&item) {
        expect("tuple value", item, equal_to(1));
        count++;
        return false;
      });

      expect("number of iterations", count, equal_to(1));
    });