WaveLength: Switching to text template

master
Rob Emery 2016-05-19 13:00:40 +01:00
parent e71eb3c5d4
commit 31bdb5574b
2 changed files with 26 additions and 22 deletions

View File

@ -57,12 +57,15 @@ handle remainder => sub {
my $result_text = "λ = $output_value $output_units";
my $operation_text = "Wavelength of $freq ".FORMAT_UNITS->{lc($units)}." ($velocity_text)";
return $result_text,
structured_answer => {
input => [],
operation => $operation_text,
result => $result_text,
};
return $result_text, structured_answer => {
data => {
title => $result_text,
subtitle => $operation_text
},
templates => {
group => 'text'
}
};
};
1;

View File

@ -13,33 +13,34 @@ zci is_cached => 1;
#input operation result
ddg_goodie_test(
[qw( DDG::Goodie::Wavelength )],
'1Hz wavelength' => test_zci(mk_test(1,299792458,'Hz')),
'1 MHz lambda VF=0.85' => test_zci(mk_test(1,254.8235893,'MHz','Meters',0.85)),
'lambda 0.001kHz' => test_zci(mk_test(0.001,299792458,'kHz')),
"λ 2400MHz" => test_zci(mk_test(2400,12.4913524166667,'MHz','Centimeters')),
"λ 2.4GHz" => test_zci(mk_test(2.4,12.4913524166667,'GHz','Centimeters')),
'144.39 MHz wavelength' => test_zci(mk_test(144.39,2.0762688413325)),
'lambda 1500kHz' => test_zci(mk_test(1500,199.861638666667,'kHz')),
'1Hz wavelength' => build_test(1,299792458,'Hz'),
'1 MHz lambda VF=0.85' => build_test(1,254.8235893,'MHz','Meters',0.85),
'lambda 0.001kHz' => build_test(0.001,299792458,'kHz'),
"λ 2400MHz" => build_test(2400,12.4913524166667,'MHz','Centimeters'),
"λ 2.4GHz" => build_test(2.4,12.4913524166667,'GHz','Centimeters'),
'144.39 MHz wavelength' => build_test(144.39,2.0762688413325,'MHz'),
'lambda 1500kHz' => build_test(1500,199.861638666667,'kHz'),
'lambda lambda lambda' => undef,
);
done_testing;
sub mk_test {
sub build_test {
my ($freq_value,$wave_value,$freq_units,$wave_units,$vf) = @_;
$freq_units ||= 'MHz';
# $freq_units ||= 'MHz';
$wave_units ||= 'Meters';
$vf ||= 1;
my $vf_text = $vf == 1 ? '' : "$vf × ";
my $expect = "λ = $wave_value $wave_units";
return (
$expect,
structured_answer => {
input => [],
operation => "Wavelength of $freq_value $freq_units (${vf_text}Speed of light in a vacuum)",
result => $expect,
return test_zci($expect, structured_answer => {
data => {
title => $expect,
subtitle => "Wavelength of $freq_value $freq_units (${vf_text}Speed of light in a vacuum)"
},
templates => {
group => 'text'
}
);
});
}