use Test::More 'no_plan';
{
package Calculator;
use Coat;
use Coat::Types;
subtype 'Float'
=> as 'Num'
=> where { /^-?\d+\.\d+$/ };
coerce 'Float'
=> from 'Int'
=> via { $_[0].".0" };
has float => (isa => 'Float', coerce => 1);
}
my $cal = new Calculator;
ok( $cal->float(1.2), '1.2 is accepted as a float' );
ok( $cal->float eq '1.2', '$cal->float == 1.2');
ok( $cal->float(2), '2 is accepted as a float' );
ok( $cal->float eq '2.0', '$cal->float == 2.0 (has been coerced)');