class TestCase::Isa {
use TestCase::Minimal;
use TestCase::Simple;
use Comparator;
use Complex_2d;
use Complex_2f;
static method isa_any_object_type : int () {
my $num : object;
unless ($num isa object) {
return 0;
}
return 1;
}
static method isa_numeric_type : int () {
my $num : int;
unless ($num isa int) {
return 0;
}
if ($num isa long) {
return 0;
}
return 1;
}
static method isa_multi_numeric_type : int () {
my $num : Complex_2d;
unless ($num isa Complex_2d) {
return 0;
}
if ($num isa Complex_2f) {
return 0;
}
return 1;
}
static method isa_match_class : int () {
my $minimal = TestCase::Minimal->new;
if ($minimal isa TestCase::Minimal) {
my $object : object = $minimal;
if ($object isa TestCase::Minimal) {
return 1;
}
}
return 0;
}
static method isa_match_array : int () {
my $minimals = new TestCase::Minimal[3];
my $nums = new int[3];
if ($minimals isa TestCase::Minimal[]) {
if ($nums isa int[]) {
return 1;
}
}
return 0;
}
static method isa_not_match_class : int () {
my $minimal = TestCase::Minimal->new;
if (!($minimal isa TestCase::Simple)) {
return 1;
}
return 0;
}
static method isa_not_match_class_undef : int () {
my $minimal : TestCase::Minimal = undef;
if (!($minimal isa TestCase::Minimal)) {
return 1;
}
return 0;
}
static method isa_match_callback : int () {
my $comparator = method : int ($object1 : object, $object2 : object) {
};
if ($comparator isa Comparator) {
my $object : object = $comparator;
if ($object isa Comparator) {
return 1;
}
}
return 0;
}
static method isa_not_match_callback_undef : int () {
my $comparator : Comparator;
if (!($comparator isa Comparator)) {
return 1;
}
return 0;
}
static method isa_not_match_callback : int () {
my $minimal : TestCase::Minimal = TestCase::Minimal->new;
if (!($minimal isa Comparator)) {
return 1;
}
return 0;
}}