Astro-Constants

 view release on metacpan or  search on metacpan

t/nuclear.t  view on Meta::CPAN

use Test::More;
use Astro::Constants qw( :nuclear precision );

	unlike(SPEED_LIGHT, qr/\d/, "Shouldn't import SPEED_LIGHT with :nuclear");
	unlike(JANSKY, qr/\d/, "Shouldn't import JANSKY with :nuclear");
	is(THOMSON_CROSS_SECTION, 6.6524587321e-29, 'THOMSON_CROSS_SECTION');
	is(MASS_ELECTRON, 9.1093837015e-31, 'MASS_ELECTRON');
	is(MASS_PROTON, 1.67262192369e-27, 'MASS_PROTON');
	is(MASS_NEUTRON, 1.67492749804e-27, 'MASS_NEUTRON');
	is(RADIUS_ELECTRON, 2.8179403262e-15, 'RADIUS_ELECTRON');
	is(RADIUS_BOHR, 5.29177210903e-11, 'RADIUS_BOHR');

	is(MASS_ALPHA, 6.6446573357e-27, 'MASS_ALPHA');

diag "MASS_HYDROGEN is from IUPAC 2013";
TODO: {
	local $TODO = "haven't implemented 'relative' uncertainties in method yet";

	cmp_ok(precision('MASS_HYDROGEN', 'relative'), '==', 0.0002, 
		'relative uncertainty of H mass');
};
cmp_ok(precision('MASS_HYDROGEN'), '==', 3.3e-31, 
	'absolute uncertainty of H mass');

my $h_abs = precision('MASS_HYDROGEN');
my $p_plus_e = MASS_PROTON + MASS_ELECTRON;
cmp_ok($p_plus_e, '<', MASS_HYDROGEN + $h_abs, 
	'Is proton + electron less than the upper bound on mass hydrogen');
cmp_ok($p_plus_e, '>', MASS_HYDROGEN - $h_abs, 
	'Is proton + electron greater than the lower bound on mass hydrogen');

done_testing();



( run in 1.542 second using v1.01-cache-2.11-cpan-98e64b0badf )