-is $flacinfo->{format}, 'FLAC', 'flacinfo format';
-is $flacinfo->{title}, 'Cellule', 'flacinfo title';
-is $flacinfo->{artist}, 'Silence', 'flacinfo artist';
-is $flacinfo->{year}, 2005, 'flacinfo year';
-is $flacinfo->{album}, 'L\'autre endroit', 'flacinfo album';
-is $flacinfo->{tracknumber}, '01', 'flacinfo tracknumber';
-is $flacinfo->{tracktotal}, '09', 'flacinfo tracktotal';
-is $flacinfo->{genre}, 'Electro', 'flacinfo genre';
-is $flacinfo->{path}, '/music/empty.flac', 'flacinfo path';
+sub test {
+ my ($format, $sub, $file) = @_;
+ my $info = thaw $sub->($file);
+ is $info->{format}, $format, "$format format";
+ for (sort keys %data) {
+ my $op = looks_like_number $data{$_} ? '==' : 'eq';
+ cmp_ok $info->{$_}, $op, $data{$_}, "$format $_"
+ }
+ is $info->{file}, $file, "$format file";
+}