eq

check equals a and b

bool
eq
(
A
B
)
(
A a
,
B b
)

Examples

assert(  eq( 1, 1.0 ) );
assert(  eq( [1,2,3], [1.0,2,3] ) );
assert(  eq( [1.0f,2,3], [1.0,2,3] ) );
assert(  eq( [1,2,3], iota(1,4) ) );
assert( !eq( [1.0000001,2,3], [1,2,3] ) );
assert(  eq( [[1,2],[3,4]], [[1.0f,2],[3.0f,4]] ) );
assert( !eq( [[1,2],[3,4]], [[1.1f,2],[3.0f,4]] ) );
assert( !eq( [[1,2],[3,4]], [[1.0f,2],[3.0f]] ) );
// string from Jonathan M Davis presentation
auto s1 = `さいごの果実 / ミツバチと科学者`;
auto s2 = `さいごの果実 / ミツバチと科学者`w;

assert( s1.length != s2.length );
assert( !eq( cast(void[])s1, cast(void[])s2 ) );
assert( eq( s1, s2 ) );

auto s1a = `さいごの果実`;
auto s1b = `ミツバチと科学者`;

auto s2a = `さいごの果実`w;
auto s2b = `ミツバチと科学者`w;

assert( eq( [s1a,s1b], [s2a,s2b] ) );

assert( !eq( "hello", [1,2,3] ) );
assert( eq( " "w, [ 32 ] ) );
static assert( !__traits(compiles, eq(["hello"],1)) );
static assert( !__traits(compiles, eq(["hello"],[1,2,3])) );

Meta