class {
  use TestCase::Precompile;
  use TestCase::NativeAPI;
  use TestCase::NativeAPI2;
  use TestCase::NativeAPICpp;
  
  use Fn;
  
  our $INT_VALUE : int;
  
  INIT {
    $INT_VALUE = 1;
  }
  
  static method main : void () {
    
    my $sum = TestCase::Precompile->sum(1, 2);
    
    unless ($sum == 3) {
      die;
    }
    
    my $ret1 = TestCase::NativeAPI2->src_foo;
    
    unless ($ret1 == 1) {
      die;
    }
    
    my $ret2 = TestCase::NativeAPI2->src_bar;
    
    unless ($ret2 == 1) {
      die;
    }
    
    my $ret3 = TestCase::Precompile->anon_method_sum;
    
    unless ($ret3 == 7) {
      die;
    }
    
    my $ret4 = TestCase::NativeAPI2->mylib2_source1_func1;
    
    my $ret5 =  TestCase::NativeAPICpp->call_cpp_func(11);
    
    unless ($ret5 == 25) {
      die;
    }
    
    my $argv = CommandInfo->ARGV;
    
    my $basetime = CommandInfo->BASETIME;
    
    my $basetime_ok = 0;
    if ($basetime > 0) {
      $basetime_ok = 1;
    }
    
    unless ($basetime_ok == 1) {
      die;
    }
    
    unless ($INT_VALUE == 1) {
      die;
    }
    
    print 1;
  }
}
