#!/usr/bin/env perl # NOTE: Audible frequency results are currently being suppressed, # as the resulting IA is too long. This will be revisited when # better stying is available. use strict; use warnings; use Test::More; use Test::Deep; use DDG::Test::Goodie; zci answer_type => 'frequency_spectrum'; zci is_cached => 1; ddg_goodie_test( ['DDG::Goodie::FrequencySpectrum'], #Primary example '50 hz' => test_zci( #re(qr/radio.+SLF.+audible.+double-bass.+piano.+tuba/), re(qr/radio/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), #Secondary example '400 thz' => test_zci( re(qr/infrared/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), #Misc '1,000 hz' => test_zci( #re(qr/radio.+audible.+human.+voice.+viola.+violin.+guitar.+mandolin.+banjo.+piano.+saxophone.+flute.+clarinet.+oboe/), re(qr/radio/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '1000000.99 hz' => test_zci( re(qr/radio.+MF/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '29.1 hz' => test_zci( re(qr/radio.+ELF/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), #No whitespace between number and unit '50hz' => test_zci( #re(qr/radio.+SLF.+audible.+double-bass.+piano.+tuba/), re(qr/radio/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '400terahertz' => test_zci( re(qr/infrared/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), #Mixed case '400 THz' => test_zci( re(qr/infrared/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '1000 HZ' => test_zci( #re(qr/radio.+audible.+human.+voice.+viola.+violin.+guitar.+mandolin.+banjo.+piano.+saxophone.+flute.+clarinet.+oboe/), re(qr/radio/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), #Commas in number '1,000,000.99 hz' => test_zci( re(qr/radio.+MF/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), #Can you test with all the colours of the wind? '650 nm' => test_zci( re(qr/visible.+red/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '610 nanometers' => test_zci( re(qr/visible.+orange/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '580 nanometres' => test_zci( re(qr/visible.+yellow/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '536 nanometer' => test_zci( re(qr/visible.+green/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '478.1 nm' => test_zci( re(qr/visible.+blue/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), '380.000000000 nanometres' => test_zci( re(qr/visible.+violet/), structured_answer => { data => ignore(), templates => { group => 'text', item => 0, options => { content => 'DDH.frequency_spectrum.content' } } } ), #Only visible light wavelengths should trigger '0.1 nm' => undef, '100 nm' => undef, '800 nm' => undef, '10000 nm' => undef, #Malformed frequencies/wavelengths should not trigger '1000.000..99 hz' => undef, '15 kilo hertz' => undef, '100,123 jiggahz' => undef, 'hertz' => undef, 'terahz' => undef, '600 nmeters' => undef, ); done_testing;