#!/usr/bin/perl
use Benchmark qw[:all];
use strict;
$^W = 1;

use Email::Address;
use Mail::Address;

sub testit {
    my ($class) = @_;
    open CORPUS, $ARGV[0] or die $!;
    while (<CORPUS>) {
       s/-- ATAT --/@/g;
       my @objs     = $class->parse($_);
       my @new_objs = map $class->new($_->phrase, $_->address, $_->comment), @objs;
       foreach my $obj ( @objs, @new_objs ) {
           foreach ( qw[phrase address comment format name host user] ) {
               my $blah = $obj->$_;
           }
           foreach ( qw[address phrase comment] ) {
               $obj->$_('foo');
           }
       }
    }
    close CORPUS;
}

cmpthese($ARGV[1] || 10, {
  'Mail::Address'  => sub { testit 'Mail::Address' },
  'Email::Address' => sub { testit 'Email::Address' },
});
