The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#include "test.h"
#include <panda/traits.h>
#define TEST(name) TEST_CASE("traits: " name, "[traits]")
TEST("bool_or") {
struct N {};
REQUIRE(bool_or(nullptr, true) == false);
REQUIRE(bool_or(1, false) == true);
REQUIRE(bool_or(string(""), true) == false);
REQUIRE(bool_or(string("1"), false) == true);
REQUIRE(bool_or(N{}, true) == true);
REQUIRE(bool_or(N{}, false) == false);
int a = 1;
int& ref = a;
REQUIRE(bool_or(ref, false) == true);
string s;
string& sref = s;
REQUIRE(bool_or(sref, true) == false);
s = "123";
REQUIRE(bool_or(sref, false) == true);
N n;
N& nref = n;
REQUIRE(bool_or(nref, true) == true);
REQUIRE(bool_or(nref, false) == false);
}