Geo-Raster

 view release on metacpan or  search on metacpan

t/00_basic.t  view on Meta::CPAN

    $gd->world(cell_size=>1.4,minX=>1.2,minY=>2.4);
    my @point = $gd->g2w(3,7);
    my @cell = $gd->w2g(@point);
    ok(($cell[0] == 3 and $cell[1] == 7),"world coordinates <-> grid coordinates");
    ok(not($gd->cell_in(-1,5) and $gd->cell_in(2,13) and 
	   $gd->cell_in(7,5) and $gd->cell_in(2,-1)) and $gd->cell_in(2,5), "cell in");
    ok(not($gd->point_in(10,0) and $gd->point_in(20,4) and 
	   $gd->point_in(10,12) and $gd->point_in(0,5)) and $gd->point_in(10,3), "point in");
    $gd->save('t/data/test.bil');
    $gd = Geo::Raster->new(filename=>'t/data/test.bil',load=>1);
    ok(($cell[0] == 3 and $cell[1] == 7),"world coordinates <-> grid coordinates");
    ok(not($gd->cell_in(-1,5) and $gd->cell_in(2,13) and 
	   $gd->cell_in(7,5) and $gd->cell_in(2,-1)) and $gd->cell_in(2,5), "cell in");
    ok(not($gd->point_in(10,0) and $gd->point_in(20,4) and 
	   $gd->point_in(10,12) and $gd->point_in(0,5)) and $gd->point_in(10,3), "point in");
}

{
    my $gd = new Geo::Raster(5,10);
    my $i = 1;
    my $j = 7;
    my $val = 5;
    $gd->set($i,$j,$val);
    my $check = $gd->cell($i,$j);
    ok((abs($val-$check)<0.01),"set and get");
    
    my ($min,$max) = $gd->value_range();
    ok((abs($min-0)<0.01 and abs($max-5)<0.01),"value range");
}

{
    my $gd = new Geo::Raster('real',10,10);
    $gd->nodata_value(-9999);
    $gd->lt(1);
    my $test = diff(-9999,$gd->nodata_value());
    ok($test, "nodata in lt");
}

{
    for my $datatype ('int','real') {
	my $g = new Geo::Raster($datatype,5,5);
	for $i (0..4) {
	    for $j (0..4) {
		$g->set($i,$j,$i+$j);
	    }
	}
	
	$g->map('*'=>12, [1,3]=>13, [5,7.1]=>56);
	
	ok($g->get(0,0) == 12, "default map $datatype");
	ok($g->get(0,1) == 13, "map $datatype 1");
	ok($g->get(1,4) == 56, "map $datatype 2");
	
    }  
}

{
    my $g1 = new Geo::Raster('int',5,5);
    my $g2 = new Geo::Raster('int',5,5);
    my $g3 = new Geo::Raster('int',1,5);
    my $t1 = $g1->overlayable($g2);
    my $t2 = $g1->overlayable($g3);
    ok($t1 == 1, "overlayability");
    ok($t2 == 0, "overlayability");
}



( run in 0.592 second using v1.01-cache-2.11-cpan-39bf76dae61 )