挑戦問題を格納しました
This commit is contained in:
23
JUnit_テストファースト/README.txt
Normal file
23
JUnit_テストファースト/README.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
○システム名
|
||||
マヨイドーロ
|
||||
○システム説明
|
||||
「テスト技法・設計手法演習問題(テストファースト).pdf」参照
|
||||
○出題タイミング
|
||||
設計・テスト技法の「JUnit」終了後に出題
|
||||
○配布物
|
||||
src
|
||||
test
|
||||
テスト技法・設計手法演習問題(テストファースト).pdf
|
||||
○進め方
|
||||
testの中の配置されているJUnitを使用してオールグリーンになるようにプログラムを作成する
|
||||
|
||||
演習課題としてではなく、練習問題として出題してださい(納品はなし)
|
||||
12:30〜17:30まで時間を使ってしまって構いません。
|
||||
グループ単位でパターンの洗い出しをさせて、プログラムを組む流れで実施してください
|
||||
※教室のレベルが高い場合は個人で実施させても良いと思います。
|
||||
|
||||
○納品物
|
||||
特になし
|
||||
|
||||
○早く終わったら・・・・
|
||||
現状特にないため練習問題等を復習させても良い(過去の問題のJUnitを作成する等)
|
||||
47
JUnit_テストファースト/src/testfirst/road/check/Road.java
Normal file
47
JUnit_テストファースト/src/testfirst/road/check/Road.java
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Road.java
|
||||
* 作成 IT-College 2016
|
||||
*------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
package testfirst.road.check;
|
||||
/**
|
||||
* テスト技法・設計手法演習問題です。
|
||||
* このクラスを対象としたテストクラス:RoadTestのテストメソッドを実行した時に、
|
||||
* 全てのテストメソッドがグリーンで完了するよう実装して下さい
|
||||
*
|
||||
* ※もちろん、テストケース以外のパターンでも正常動作するようにしてください
|
||||
* @author IT-College
|
||||
*
|
||||
*/
|
||||
public class Road {
|
||||
/**
|
||||
* N が与えられたとき、P を出力するプログラムです。
|
||||
* @param 試行回数
|
||||
* @return Bにたどり着ける回数
|
||||
*/
|
||||
public static String check(int n) {
|
||||
/*
|
||||
* N を「反転回数の上限」とします。言い換えるなら N は「その回数までは反転してかまわないという数」です。
|
||||
* P を「A から入って B から出るルートの種類の数」とします
|
||||
*/
|
||||
/* ex)
|
||||
* もしも N が 1 の場合、B から出るルートは、
|
||||
* • A → イ → ウ → イ → ア → B
|
||||
* • A → イ → ア → B
|
||||
* という 2 種類があるので、P は 2 になります。
|
||||
*/
|
||||
/* ex)
|
||||
* もしも N が 4 の場合、B から出るルートは、
|
||||
* • X → イ → ウ → イ → ア → B
|
||||
* • X → イ → ウ → イ → ア → イ → ウ → イ → ア → B
|
||||
* • X → イ → ウ → イ → ア → イ → ア → B
|
||||
* • X → イ → ウ → イ → ウ → イ → ア → B
|
||||
* • X → イ → ア → B
|
||||
* • X → イ → ア → イ → ウ → イ → ア → B
|
||||
* • X → イ → ア → イ → ア → B
|
||||
* という 7 種類があるので、P は 7 になります。
|
||||
*/
|
||||
return null;
|
||||
}
|
||||
}
|
||||
38
JUnit_テストファースト/src/testfirst/road/main/Main.java
Normal file
38
JUnit_テストファースト/src/testfirst/road/main/Main.java
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Road.java
|
||||
* 作成 IT-College 2016
|
||||
*------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
package testfirst.road.main;
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
||||
import testfirst.road.check.Road;
|
||||
/**
|
||||
* テスト技法・設計手法演習問題のRoad.checkメソッドを実行するクラスです。
|
||||
* エントリーポイント用
|
||||
* @author IT-College
|
||||
*
|
||||
*/
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
int n = 0;
|
||||
while (true) {
|
||||
System.out.println("N(反転回数の上限)を入力して下さい。上限はintの上限値及び、正の数とします");
|
||||
try {
|
||||
n = scanner.nextInt();
|
||||
if (n < 0) {
|
||||
System.out.println("範囲外の入力です");
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
} catch(InputMismatchException e) {
|
||||
System.out.println("範囲外の入力です");
|
||||
scanner.next();
|
||||
}
|
||||
}
|
||||
String p = Road.check(n);
|
||||
System.out.println("[N:" + n + "] の場合、[P:" + p + "]");
|
||||
}
|
||||
}
|
||||
82
JUnit_テストファースト/test/testfirst/road/check/RoadTest.java
Normal file
82
JUnit_テストファースト/test/testfirst/road/check/RoadTest.java
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* RoadTest.java
|
||||
* 作成 IT-College 2016
|
||||
*------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
package testfirst.road.check;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* road.main.Roadクラスメソッドのテストクラスです。
|
||||
* JUnitテストを実行して、テストをクリアするように実装して下さい
|
||||
* @author IT-College
|
||||
*
|
||||
*/
|
||||
public class RoadTest {
|
||||
@Test
|
||||
public void Nに0の場合() {
|
||||
String expected = new String("0");
|
||||
String actual = Road.check(0);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに1の場合() {
|
||||
String expected = new String("2");
|
||||
String actual = Road.check(1);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに3の場合() {
|
||||
String expected = new String("7");
|
||||
String actual = Road.check(3);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに4の場合() {
|
||||
String expected = new String("7");
|
||||
String actual = Road.check(4);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに5の場合() {
|
||||
String expected = new String("20");
|
||||
String actual = Road.check(5);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに10の場合() {
|
||||
String expected = new String("143");
|
||||
String actual = Road.check(10);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに100の場合() {
|
||||
String expected = new String("927372692193078999175");
|
||||
String actual = Road.check(100);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに1000の場合() {
|
||||
String expected = new String("113796925398360272257523782552224175572745930353730513145086634176691092536145985470146129334641866902783673042322088625863396052888690096969577173696370562180400527049497109023054114771394568040040412172632375");
|
||||
String actual = Road.check(1000);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
@Test
|
||||
public void Nに2015の場合() {
|
||||
String expected = new String("24410294683171395267259945469996127000411199333760853190535535281681195871429510314079442068798555059453792431772087225245168879580469159794544170936403149540819320510882801573596907938222922817134288725100817648047405608500267748766714030468003650259685406411646787207097050545802045736020993909154298598218721111963426993884619351338577630868510716463423585020972878819198991971234596733617320373133963970742975210614208");
|
||||
String actual = Road.check(2015);
|
||||
//assertThat(actual, is(expected)); // JUnit4のソースコード
|
||||
Assertions.assertEquals(actual, expected);
|
||||
}
|
||||
}
|
||||
BIN
JUnit_テストファースト/テスト技法・設計手法演習問題(テストファースト).pdf
Normal file
BIN
JUnit_テストファースト/テスト技法・設計手法演習問題(テストファースト).pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user