テストコードを追加。また境界条件チェックをマクロとして定義