@@ -4,6 +4,7 @@ use PDL::LiteF;
4
4
use PDL::IO::FlexRaw;
5
5
use Config;
6
6
use Test::More;
7
+ use Test::PDL;
7
8
use File::Temp qw( tempfile) ;
8
9
use File::Spec;
9
10
use File::Which ();
@@ -43,13 +44,6 @@ if ($ExtUtils::F77::VERSION > 1.03) {
43
44
$F77flags = ' ' ;
44
45
}
45
46
46
- sub tapprox {
47
- my ($x ,$y ) = @_ ;
48
- my $c = abs($x -> flat-$y -> flat);
49
- my $d = max($c );
50
- $d < 0.01;
51
- }
52
-
53
47
sub byte4swap {
54
48
my ($file ) = @_ ;
55
49
my ($ofile ) = $file .' ~' ;
268
262
269
263
my @a = readflex($data );
270
264
# print "@a\n";
271
- my $ok = ($a [0]-> at(0) == $ndata );
265
+ ok my $ok = ($a [0]-> at(0) == $ndata );
272
266
my $res = eval " $pdltype $exprp " ;
273
- ok( $ok && tapprox( $ res ,$a [1]) , " readflex $pdltype w hdr file" ) ;
267
+ is_pdl $ res , $a [1], " readflex $pdltype w hdr file" ;
274
268
275
269
open (FILE," >$hdr " );
276
270
print FILE <<"EOT" ;
289
283
290
284
unlink $hdr ;
291
285
292
- $ok = ($a [0]-> at(0) == $ndata );
286
+ ok $ok = ($a [0]-> at(0) == $ndata );
293
287
$res = eval " $pdltype $exprp " ;
294
- ok( $ok && tapprox( $ res ,$a [1]) , " readflex $pdltype w hdr file (explicit swap)" ) ;
288
+ is_pdl $ res , $a [1], " readflex $pdltype w hdr file (explicit swap)" ;
295
289
296
290
# Now try header array
297
291
$ok = 1;
300
294
{Type => $pdltype , NDims => 1, Dims => [ $ndata ] } ];
301
295
@a = readflex($data ,$header );
302
296
unlink $data ;
303
- $ok = ($a [0]-> at(0) == $ndata );
297
+ ok $ok = ($a [0]-> at(0) == $ndata );
304
298
$res = eval " $pdltype $exprp " ;
305
- ok( $ok && tapprox($res ,$a [1]), " readflex $pdltype w hdr array" );
306
- # print $a[1]->getndims()," [",$a[1]->dims,"]\n";
299
+ is_pdl $res , $a [1], " readflex $pdltype w hdr array" ;
307
300
308
301
} # foreach: $pdltype == 'float', 'double'
309
302
350
343
# print "@a\n";
351
344
unlink $data , $hdr ;
352
345
353
- my $ok = ($a [0]-> at(0) == $ndata );
346
+ ok my $ok = ($a [0]-> at(0) == $ndata );
354
347
my $res = eval " $pdltype $exprp " ;
355
- ok( $ok && tapprox( $res ,$a [1]) , " f77 1D $pdltype data" ) ;
348
+ is_pdl $res , $a [1], " f77 1D $pdltype data" ;
356
349
# print $a[1]->getndims()," [",$a[1]->dims,"]\n";
357
350
358
351
} # foreach: $pdltype ( keys %types )
405
398
# print "@a\n";
406
399
unlink $data , $hdr ;
407
400
408
- my $ok = ($a [1]-> at(0) == $ndata );
401
+ ok my $ok = ($a [1]-> at(0) == $ndata );
409
402
my $res = eval " $pdltype $exprp " ;
410
- ok( $ok && tapprox( $ res ,$a [2]) , " no f77, 1D $pdltype data" ) ;
403
+ is_pdl $ res ,$a [2], " no f77, 1D $pdltype data" ;
411
404
# print $a[2]->getndims()," [",$a[2]->dims,"]\n";
412
405
}
413
406
458
451
# }
459
452
unlink $data , $hdr ;
460
453
461
- my $ok = ($a [0]-> at(0) == $ndata );
454
+ ok my $ok = ($a [0]-> at(0) == $ndata );
462
455
my $res = eval " $pdltype $expr2p " ;
463
- ok( $ok && tapprox( $ res ,$a [1]) , " f77 format 2D $pdltype data" ) ;
456
+ is_pdl $ res , $a [1], " f77 format 2D $pdltype data" ;
464
457
# print $a[1]->getndims()," [",$a[1]->dims,"]\n";
465
458
}
466
459
@@ -516,12 +509,10 @@ my $l = long (10**$f);
516
509
$i = short ($l );
517
510
my $x = byte (32);
518
511
my @req = ($x ,$i ,$l ,$f ,$d );
519
- my $ok = 1;
520
512
foreach (@req ) {
521
513
my $h = shift @a ;
522
- $ok &&= tapprox( $_ ,$h ) ;
514
+ is_pdl $h , $_ , " readflex combined types " ;
523
515
}
524
- ok( $ok , " readflex combined types" );
525
516
526
517
SKIP: {
527
518
my $compress = File::Which::which(' compress' ) ? ' compress' : ' gzip' ; # some linuxes don't have compress
@@ -532,20 +523,19 @@ SKIP: {
532
523
}
533
524
534
525
# Try compressed data
535
- $ok = 1;
536
526
0 == system " $compress -c $data > ${data} .Z" or diag " system $compress -c $data >${data} .Z failed: $? " ;
537
527
unlink ( $data );
538
528
@a = readflex($data );
539
- $ok &&= $#a ==6;
529
+ ok $#a ==6;
540
530
@a = readflex(" ${data} .Z" );
541
- $ok &&= $#a ==6;
531
+ ok $#a ==6;
542
532
my $NULL = File::Spec-> devnull();
543
533
0 == system " gunzip -q ${data} .Z >$NULL 2>&1" or diag " system gunzip -q ${data} .Z failed: $? " ;
544
534
0 == system " gzip -q $data >$NULL 2>&1" or diag " system gzip -q $data failed: $? " ;
545
535
@a = readflex($data );
546
- $ok &&= $#a ==6;
536
+ ok $#a ==6;
547
537
@a = readflex(" ${data} .gz" );
548
- $ok &&= $#a ==6;
538
+ ok $#a ==6;
549
539
shift @a ;
550
540
unlink " ${data} .gz" , $hdr ;
551
541
$d = double pdl (4*atan2 (1,1));
@@ -556,29 +546,22 @@ SKIP: {
556
546
@req = ($x ,$i ,$l ,$f ,$d );
557
547
foreach (@req ) {
558
548
my $h = shift @a ;
559
- $ok &&= tapprox( $_ ,$h ) ;
549
+ is_pdl $h , $_ , " readflex compressed data " ;
560
550
}
561
- ok( $ok , " readflex compressed data" );
562
551
}
563
552
564
553
# Try writing data
565
554
my $flexhdr = writeflex($data ,@req );
566
555
writeflexhdr($data ,$flexhdr ) unless $PDL::IO::FlexRaw::writeflexhdr ;
567
556
@a = readflex($data );
568
557
unlink $hdr ;
569
- $ok = 1;
570
558
foreach (@req ) {
571
- # print "$_ vs ",@a[0],"\n";
572
- $ok &&= tapprox($_ ,shift @a );
559
+ is_pdl shift @a , $_ , " writeflex combined data types, hdr file" ;
573
560
}
574
- ok( $ok , " writeflex combined data types, hdr file" );
575
561
@a = readflex($data , $flexhdr );
576
- $ok = 1;
577
562
foreach (@req ) {
578
- # print "$_ vs ",@a[0],"\n";
579
- $ok &&= tapprox($_ ,shift @a );
563
+ is_pdl shift @a , $_ , " writeflex combined data types, readflex hdr array" ;
580
564
}
581
- ok( $ok , " writeflex combined data types, readflex hdr array" );
582
565
unlink $data ;
583
566
584
567
$#a = -1;
@@ -593,12 +576,9 @@ $flexhdr = [ {Type => 'byte', NDims => 1, Dims => 10},
593
576
{Type => ' double' , NDims => 1, Dims => 10} ];
594
577
@a = readflex($data , $flexhdr );
595
578
unlink $data ;
596
- $ok = 1;
597
579
foreach (@req ) {
598
- # print "$_ vs ",@a[0],"\n";
599
- $ok &&= tapprox($_ ,slice(shift @a ," (0)" ));
580
+ is_pdl slice(shift @a ," (0)" ), $_ , " writeflex combined types[10], readflex explicit hdr array" ;
600
581
}
601
- ok( $ok , " writeflex combined types[10], readflex explicit hdr array" );
602
582
603
583
# Writing multidimensional data
604
584
map {$_ = $_ -> dummy(0,10)} @req ;
@@ -607,12 +587,9 @@ writeflexhdr($data,$flexhdr) unless $PDL::IO::FlexRaw::writeflexhdr;
607
587
@a = readflex($data );
608
588
unlink $data ;
609
589
unlink $hdr ;
610
- $ok = 1;
611
590
foreach (@req ) {
612
- # print "$_ vs ",@a[0],"\n";
613
- $ok &&= tapprox($_ ,shift @a );
591
+ is_pdl shift @a , $_ , " multidimensional data" ;
614
592
}
615
- ok( $ok , " multidimensional data" );
616
593
617
594
# Use readflex with an open file handle
618
595
@req = (byte(1..3),
@@ -623,26 +600,20 @@ $flexhdr = writeflex($data, @req);
623
600
624
601
open (IN, $data );
625
602
@a = readflex(\*IN, $flexhdr );
626
- $ok = 1;
627
603
foreach (@req ) {
628
- # print "$_ vs ",@a[0],"\n";
629
- $ok &&= tapprox($_ ,shift @a );
604
+ is_pdl shift @a , $_ , " readflex with file handle" ;
630
605
}
631
606
close (IN);
632
607
unlink $data ;
633
- ok( $ok , " readflex with file handle" );
634
608
635
609
# use writeflex with an open file handle
636
610
open (OUT, " >$data " );
637
611
$flexhdr = writeflex(\*OUT, @req );
638
612
close (OUT);
639
613
@a = readflex($data , $flexhdr );
640
- $ok = 1;
641
614
foreach (@req ) {
642
- # print "$_ vs ",@a[0],"\n";
643
- $ok &&= tapprox($_ ,shift @a );
615
+ is_pdl shift @a , $_ , " writeflex with file handle" ;
644
616
}
645
617
unlink $data ;
646
- ok( $ok , " writeflex with file handle" );
647
618
648
619
done_testing;
0 commit comments