HexToDec: Convert to text template (#3054)

* HexToDec: Converting to text template

* HexToDec: Refactoring tests
master
Rob Emery 2016-05-15 17:13:24 +01:00 committed by Ben Moon
parent c2250e1f2a
commit 0cc555fe1b
2 changed files with 39 additions and 64 deletions

12
lib/DDG/Goodie/HexToDec.pm Normal file → Executable file
View File

@ -17,10 +17,14 @@ handle query_raw => sub {
my $decimal = Math::BigInt->from_hex($hex);
return "$hex base 16 = $decimal base 10", structured_answer => {
input => ['0x' . $hex],
operation => 'Hex to decimal',
result => "$decimal", # Quoted for display precision as string.
data => {
title => "$decimal", # Quoted for display precision as string.
subtitle => "Hex to decimal: 0x" . $hex
},
templates => {
group => 'text',
}
};
};
0x41414141;
0x01;

91
t/HexToDec.t Normal file → Executable file
View File

@ -8,72 +8,43 @@ use DDG::Test::Goodie;
zci answer_type => 'hex_to_dec';
zci is_cached => 1;
sub build_test
{
my ($text, $title, $subtitle) = @_;
return test_zci($text, structured_answer => {
data => {
title => $title,
subtitle => "Hex to decimal: $subtitle"
},
templates => {
group => 'text'
}
});
}
ddg_goodie_test(
[qw( DDG::Goodie::HexToDec )],
'0xd1038d2e07b42569' => test_zci(
'0xd1038d2e07b42569' => build_test(
'd1038d2e07b42569 base 16 = 15061036807694329193 base 10',
structured_answer => {
input => ['0xd1038d2e07b42569'],
operation => 'Hex to decimal',
result => 15061036807694329193
}
15061036807694329193,
'0xd1038d2e07b42569'
),
'0x44696f21' => test_zci(
'44696f21 base 16 = 1147760417 base 10',
structured_answer => {
input => ['0x44696f21'],
operation => 'Hex to decimal',
result => 1147760417,
}
'0x44696f21' => build_test(
'44696f21 base 16 = 1147760417 base 10',
1147760417,
'0x44696f21'
),
'0xffffffffffffffffffffff' => test_zci(
'ffffffffffffffffffffff base 16 = 309485009821345068724781055 base 10',
structured_answer => {
input => ['0xffffffffffffffffffffff'],
operation => 'Hex to decimal',
result => "309485009821345068724781055",
}
),
'0xff in decimal' => test_zci(
'ff base 16 = 255 base 10',
structured_answer => {
input => ['0xff'],
operation => 'Hex to decimal',
result => "255",
}
),
'0xff hex to dec' => test_zci(
'ff base 16 = 255 base 10',
structured_answer => {
input => ['0xff'],
operation => 'Hex to decimal',
result => "255",
}
),
'0xff as base 10' => test_zci(
'ff base 16 = 255 base 10',
structured_answer => {
input => ['0xff'],
operation => 'Hex to decimal',
result => "255",
}
),
'0xff in base-10' => test_zci(
'ff base 16 = 255 base 10',
structured_answer => {
input => ['0xff'],
operation => 'Hex to decimal',
result => "255",
}
),
'0xff hex to base10' => test_zci(
'ff base 16 = 255 base 10',
structured_answer => {
input => ['0xff'],
operation => 'Hex to decimal',
result => "255",
}
'0xffffffffffffffffffffff' => build_test(
'ffffffffffffffffffffff base 16 = 309485009821345068724781055 base 10',
"309485009821345068724781055",
'0xffffffffffffffffffffff'
),
'0xff in decimal' => build_test('ff base 16 = 255 base 10', "255", '0xff'),
'0xff hex to dec' => build_test('ff base 16 = 255 base 10', "255", '0xff'),
'0xff as base 10' => build_test('ff base 16 = 255 base 10', "255", '0xff'),
'0xff in base-10' => build_test('ff base 16 = 255 base 10', "255", '0xff'),
'0xff hex to base10' => build_test('ff base 16 = 255 base 10', "255", '0xff'),
'0x44696f2Z' => undef,
'ascii 0x74657374' => undef,
'0x255 hex' => undef,