use v6-alpha; use Test; plan 58; =pod Enum tests from L =cut # L ok eval('enum day '), "basic enum definition worked", :todo; sub test_stuff($x) { ok eval('not $x does Wed'), "basic enum mixing worked ($x-2)", :todo; is eval('$x.day'), 3, "automatically created accessor worked ($x)", :todo; is eval('day::Tue'), 3, "enum provided a correct mapping ($x)", :todo; ok eval('$x ~~ day'), "smartmatch worked correctly ($x-1)", :todo; ok eval('$x ~~ Tue'), "smartmatch worked correctly ($x-2)", :todo; ok eval('$x ~~ day::Tue'), "smartmatch worked correctly ($x-3)", :todo; ok eval('not $x ~~ Wed'), "smartmatch worked correctly ($x-4)", :todo; ok eval('$x.does(Tue)'), ".dos worked correctly ($x-1)", :todo; ok eval('$x.does(day)'), ".dos worked correctly ($x-2)", :todo; is eval('$x.day'), 3, ".day worked correctly ($x)", :todo; ok eval('Tue $x'), "Tue() worked correctly ($x)", :todo; ok eval('$x.Tue'), ".Tue() worked correctly ($x)", :todo; } { my $x = 1; is $x, 1, "basic sanity (1)"; # L ok eval('$x does Tue'), "basic enum mixing worked (1-1)"; test_stuff($x); } { my $x = 2; is $x, 2, "basic sanity (2)"; # L ok eval('$x does day'), "basic enum mixing worked (2-1)"; test_stuff($x); } { my $x = 3; is $x, 3, "basic sanity (3)"; # L ok eval('$x does day::Tue'), "basic enum mixing worked (3-1)"; test_stuff($x); } { my $x = 4; is $x, 4, "basic sanity (4)"; # L ok eval('$x does day'), "basic enum mixing worked (4-0)"; ok eval('$x.day = &day::("Tue")'), "basic enum mixing worked (4-1)", :todo; test_stuff($x); }