> 1なら2、2なら4を返す関数に、 3を入れたときどうするか書いてないのが仕様なんだから

違うぞ。仕様は入力と出力を記述するだけなんてことは絶対しない。
仕様には、入力と出力の間にある、処理の内容を書くもの。