From 127be6322840b35561aa4610b3b1c3e55b005e04 Mon Sep 17 00:00:00 2001 From: kshiraishi Date: Tue, 22 Jul 2025 17:28:31 +0900 Subject: [PATCH 1/3] =?UTF-8?q?B084=E3=81=AE=E5=9B=9E=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kshiraishi/src/B084.java | 40 +++++++++ kshiraishi/src/GourumeData.java | 72 ++++++++++++++++ kshiraishi/src/GourumeDataTest.java | 103 +++++++++++++++++++++++ kshiraishi/src/GourumeOperation.java | 86 +++++++++++++++++++ kshiraishi/src/GourumeOperationTest.java | 86 +++++++++++++++++++ 5 files changed, 387 insertions(+) create mode 100644 kshiraishi/src/B084.java create mode 100644 kshiraishi/src/GourumeData.java create mode 100644 kshiraishi/src/GourumeDataTest.java create mode 100644 kshiraishi/src/GourumeOperation.java create mode 100644 kshiraishi/src/GourumeOperationTest.java diff --git a/kshiraishi/src/B084.java b/kshiraishi/src/B084.java new file mode 100644 index 0000000..f118843 --- /dev/null +++ b/kshiraishi/src/B084.java @@ -0,0 +1,40 @@ +package B084; + +import java.util.List; +import java.util.Set; + +public class B084 { + + public static void main(String[] args) { + GourumeData groumeData = new GourumeData(); + GourumeOperation operation = new GourumeOperation(); + + //自分と他のユーザが評価3以上とした店のインデックスをそれぞれリストに保存 + List myRating3 = operation.myRatingsOf3(groumeData); + List> otherRating3 = operation.otherRatingsOf3(groumeData); + + //自分の評価3以上の店と同じ店を評価3以上が基準値以上見つかった場合、 + //好みが似ているユーザとしてそのユーザの評価リストを保存。 + List> similarUsersReviewList = operation.similarUsers(groumeData, myRating3, otherRating3); + //自分が評価0で好みのユーザが評価3をつけた店を出力 + Set recommend = operation.recommendRestaurant(groumeData, similarUsersReviewList); + + // recommendセットが空かどうかをチェック + if (recommend.isEmpty()) { + System.out.println("no"); + } else { + int count = 0; + for (int view : recommend) { + System.out.print(view + 1); // まず値を出力 + if (count < recommend.size() - 1) { // 最後の要素でなければ空白を追加 + System.out.print(" "); + } + count++; + } + System.out.println(); // 最後で改行 + } + + + } + +} diff --git a/kshiraishi/src/GourumeData.java b/kshiraishi/src/GourumeData.java new file mode 100644 index 0000000..e2a324d --- /dev/null +++ b/kshiraishi/src/GourumeData.java @@ -0,0 +1,72 @@ +package B084; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +/** + * データ保持オブジェクト + * + * @param reviewedRestaurantNum レビューした店の数 + * @param otherUserCount 自分以外のユーザ数 + * @param minMatchCriteria 自分と好みが似ていると言える基準の数 + * @param myReviewedList 自分の評価リスト + * @param otherReviewedList 自分以外の評価リスト + * + */ +public class GourumeData { + private final int reviewedRestaurantNum; + private final int otherUserCount; + private final int minMatchCriteria; + private final List myReviewedList = new ArrayList(); + private final List> otherReviewedList = new ArrayList>(); + + + //コンストラクタ + public GourumeData() { + Scanner sc = new Scanner(System.in); + + this.reviewedRestaurantNum = Integer.parseInt(sc.next()); + this.otherUserCount = Integer.parseInt(sc.next()); + this.minMatchCriteria = Integer.parseInt(sc.next()); + + for(int i=0; i tempList = new ArrayList(); + for(int reviewNum=0; reviewNum getMyReviewedList() { + return myReviewedList; + } + + + public List> getOtherReviewedList() { + return otherReviewedList; + } + + +} diff --git a/kshiraishi/src/GourumeDataTest.java b/kshiraishi/src/GourumeDataTest.java new file mode 100644 index 0000000..83f3836 --- /dev/null +++ b/kshiraishi/src/GourumeDataTest.java @@ -0,0 +1,103 @@ +package B084; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Scanner; +import org.junit.Before; +import org.junit.Test; + +public class GourumeDataTest { + private InputStream originalSystemIn; + + @Before + public void setUp() { + originalSystemIn = System.in; + } + + @Test + public void コンストラクタGourumeDataのテスト() { + String input = "4 3 2\n3 0 3 0\n3 3 3 1\n1 3 1 3\n3 0 3 3"; + InputStream testInput = new ByteArrayInputStream(input.getBytes()); + + System.setIn(testInput); + + GourumeData gourumeData = new GourumeData(); + + assertThat(gourumeData.getReviewedRestaurantNum(), is(4)); + assertThat(gourumeData.getOtherUserCount(), is(3)); + assertThat(gourumeData.getMinMatchCriteria(), is(2)); + assertThat(gourumeData.getMyReviewedList(), is(Arrays.asList(3, 0, 3, 0))); + assertThat(gourumeData.getOtherReviewedList(), is(Arrays.asList( + Arrays.asList(3, 3, 3, 1), + Arrays.asList(1, 3, 1, 3), + Arrays.asList(3, 0, 3, 3)))); + + + System.setIn(originalSystemIn); + } + + public class GourumeData { + private final int reviewedRestaurantNum; + private final int otherUserCount; + private final int minMatchCriteria; + private final List myReviewedList = new ArrayList(); + private final List> otherReviewedList = new ArrayList>(); + + + //コンストラクタ + public GourumeData() { + Scanner sc = new Scanner(System.in); + + this.reviewedRestaurantNum = Integer.parseInt(sc.next()); + this.otherUserCount = Integer.parseInt(sc.next()); + this.minMatchCriteria = Integer.parseInt(sc.next()); + + for(int i=0; i tempList = new ArrayList(); + for(int reviewNum=0; reviewNum getMyReviewedList() { + return myReviewedList; + } + + + public List> getOtherReviewedList() { + return otherReviewedList; + } + + + } + + + +} diff --git a/kshiraishi/src/GourumeOperation.java b/kshiraishi/src/GourumeOperation.java new file mode 100644 index 0000000..dc7d85e --- /dev/null +++ b/kshiraishi/src/GourumeOperation.java @@ -0,0 +1,86 @@ +package B084; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +public class GourumeOperation { + + //自分の評価3以上のインデックス(店)のリストを返す + public List myRatingsOf3(GourumeData groumeData) { + List myRating3 = new ArrayList<>(); + + for(int i=0; i> otherRatingsOf3(GourumeData groumeData) { + List> otherRating3 = new ArrayList<>(); + + for (int i = 0; i < groumeData.getOtherReviewedList().size(); i++) { + otherRating3.add(new ArrayList<>()); // 各ユーザーごとの評価3リストを初期化 + } + + for(int i=0; i> similarUsers(GourumeData groumeData, List myRating3, List> otherRating3){ + + List> similarUsers = new ArrayList<>(); + + Set myRating3Set = new TreeSet<>(myRating3); // 自分の3評価インデックスをSetに変換 + + for(List otherUserRatingList : otherRating3) { + Set otherUserRatingSet = new TreeSet<>(otherUserRatingList); + + // 共通部分の要素数を数える + Set intersection = new TreeSet<>(myRating3Set); // myRating3Setのコピーを作成 + intersection.retainAll(otherUserRatingSet); // intersectionにはmyRating3SetとotherUserRatingSetの共通要素のみが残る + + int matchCount = intersection.size(); // 共通要素の数がマッチカウント + + if(matchCount >= groumeData.getMinMatchCriteria()) { + similarUsers.add(otherUserRatingList); + } + } + + return similarUsers; + } + + //自分の行ったことない店(評価0)で好みが似てる他のユーザが評価3をつけた店をListで返す + public Set recommendRestaurant(GourumeData groumeData, List>similarUsersReviewList){ + Set recommendSet = new TreeSet<>(); + + for(List list : similarUsersReviewList) { + for(int i=0; i review = Arrays.asList(3,0,3,0); + + when(stub.getMyReviewedList()).thenReturn(review); + + List expected = Arrays.asList(0,2); + + List actual = sut.myRatingsOf3(stub); + assertThat(actual,is(expected)); + } + + @Test + public void otherRatingsOf3のテスト入力例1の時() { + GourumeOperation sut = new GourumeOperation(); + GourumeData stub = mock(GourumeData.class); + List> review = Arrays.asList( + Arrays.asList(3,3,3,1), + Arrays.asList(1,3,1,3), + Arrays.asList(3,0,3,3) + ); + + when(stub.getOtherReviewedList()).thenReturn(review); + + List> expected = Arrays.asList( + Arrays.asList(0,1,2), + Arrays.asList(1,3), + Arrays.asList(0,2,3) + ); + + List actual = sut.otherRatingsOf3(stub); + assertThat(actual,is(expected)); + } + + @Test + public void similarUsersのテスト入力例1の時 () { + GourumeData stub = mock(GourumeData.class); + when(stub.getMinMatchCriteria()).thenReturn(2); + List myRating3List = Arrays.asList(0,2); + List> otherRating3List = Arrays.asList( + Arrays.asList(0,1,2), + Arrays.asList(1,3), + Arrays.asList(0,2,3) + ); + + List> expected = Arrays.asList( + Arrays.asList(0,1,2), + Arrays.asList(0,2,3) + ); + + GourumeOperation sut = new GourumeOperation(); + assertThat(sut.similarUsers(stub, myRating3List, otherRating3List), is(expected)); + } + + @Test + public void recommendRestaurantのテスト入力例1の時 () { + GourumeData stub = mock(GourumeData.class); + when(stub.getMyReviewedList()).thenReturn(Arrays.asList(3,0,3,0)); + List>similarUsersReviewList = Arrays.asList( + Arrays.asList(0,1,2), + Arrays.asList(0,2,3) + ); + Set expected = new LinkedHashSet<>(Arrays.asList(1,3)); + + GourumeOperation sut = new GourumeOperation(); + assertThat(sut.recommendRestaurant(stub, similarUsersReviewList), is(expected)); + + } + +} + -- GitLab From 7d62663dfe7d92c25ea24bf733afebe357e767e6 Mon Sep 17 00:00:00 2001 From: kshiraishi Date: Wed, 23 Jul 2025 15:26:37 +0900 Subject: [PATCH 2/3] =?UTF-8?q?B084=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kshiraishi/src/B084.java | 26 +++-- kshiraishi/src/GourumeDataTest.java | 103 ------------------ kshiraishi/src/GourumeOperation.java | 86 --------------- .../{GourumeData.java => GourumetData.java} | 6 +- kshiraishi/src/GourumetDataTest.java | 46 ++++++++ kshiraishi/src/GourumetOperation.java | 94 ++++++++++++++++ ...onTest.java => GourumetOperationTest.java} | 26 ++--- 7 files changed, 174 insertions(+), 213 deletions(-) delete mode 100644 kshiraishi/src/GourumeDataTest.java delete mode 100644 kshiraishi/src/GourumeOperation.java rename kshiraishi/src/{GourumeData.java => GourumetData.java} (95%) create mode 100644 kshiraishi/src/GourumetDataTest.java create mode 100644 kshiraishi/src/GourumetOperation.java rename kshiraishi/src/{GourumeOperationTest.java => GourumetOperationTest.java} (70%) diff --git a/kshiraishi/src/B084.java b/kshiraishi/src/B084.java index f118843..51d4dac 100644 --- a/kshiraishi/src/B084.java +++ b/kshiraishi/src/B084.java @@ -3,29 +3,39 @@ package B084; import java.util.List; import java.util.Set; +/** + * @see GourumetData データ保持 + * @see GourumetOperation 処理部分のメソッドをまとめたクラス + * + * @param myRating3 自分が評価3以上をつけた店のインデックスを格納したリスト + * @param otherRating3 自分以外が評価3以上をつけた店のインデックスを格納したリスト + * @param similarUsersReviewList 好みが似てる人の他人の評価3以上のリスト + * @param recommend 自分が行ったことない(評価0)店で好みが似てる人が評価3をつけた店のインデックス + * + */ public class B084 { public static void main(String[] args) { - GourumeData groumeData = new GourumeData(); - GourumeOperation operation = new GourumeOperation(); + GourumetData gourumetData = new GourumetData(); + GourumetOperation operation = new GourumetOperation(); //自分と他のユーザが評価3以上とした店のインデックスをそれぞれリストに保存 - List myRating3 = operation.myRatingsOf3(groumeData); - List> otherRating3 = operation.otherRatingsOf3(groumeData); + List myRating3 = operation.myRatingsOf3(gourumetData); + List> otherRating3 = operation.otherRatingsOf3(gourumetData); //自分の評価3以上の店と同じ店を評価3以上が基準値以上見つかった場合、 //好みが似ているユーザとしてそのユーザの評価リストを保存。 - List> similarUsersReviewList = operation.similarUsers(groumeData, myRating3, otherRating3); + List> similarUsersReviewList = operation.similarUsers(gourumetData, myRating3, otherRating3); //自分が評価0で好みのユーザが評価3をつけた店を出力 - Set recommend = operation.recommendRestaurant(groumeData, similarUsersReviewList); + Set recommend = operation.recommendRestaurant(gourumetData, similarUsersReviewList); // recommendセットが空かどうかをチェック if (recommend.isEmpty()) { System.out.println("no"); } else { int count = 0; - for (int view : recommend) { - System.out.print(view + 1); // まず値を出力 + for (int restaurantNumber : recommend) { + System.out.print(restaurantNumber + 1); // まず値を出力 if (count < recommend.size() - 1) { // 最後の要素でなければ空白を追加 System.out.print(" "); } diff --git a/kshiraishi/src/GourumeDataTest.java b/kshiraishi/src/GourumeDataTest.java deleted file mode 100644 index 83f3836..0000000 --- a/kshiraishi/src/GourumeDataTest.java +++ /dev/null @@ -1,103 +0,0 @@ -package B084; - -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Scanner; -import org.junit.Before; -import org.junit.Test; - -public class GourumeDataTest { - private InputStream originalSystemIn; - - @Before - public void setUp() { - originalSystemIn = System.in; - } - - @Test - public void コンストラクタGourumeDataのテスト() { - String input = "4 3 2\n3 0 3 0\n3 3 3 1\n1 3 1 3\n3 0 3 3"; - InputStream testInput = new ByteArrayInputStream(input.getBytes()); - - System.setIn(testInput); - - GourumeData gourumeData = new GourumeData(); - - assertThat(gourumeData.getReviewedRestaurantNum(), is(4)); - assertThat(gourumeData.getOtherUserCount(), is(3)); - assertThat(gourumeData.getMinMatchCriteria(), is(2)); - assertThat(gourumeData.getMyReviewedList(), is(Arrays.asList(3, 0, 3, 0))); - assertThat(gourumeData.getOtherReviewedList(), is(Arrays.asList( - Arrays.asList(3, 3, 3, 1), - Arrays.asList(1, 3, 1, 3), - Arrays.asList(3, 0, 3, 3)))); - - - System.setIn(originalSystemIn); - } - - public class GourumeData { - private final int reviewedRestaurantNum; - private final int otherUserCount; - private final int minMatchCriteria; - private final List myReviewedList = new ArrayList(); - private final List> otherReviewedList = new ArrayList>(); - - - //コンストラクタ - public GourumeData() { - Scanner sc = new Scanner(System.in); - - this.reviewedRestaurantNum = Integer.parseInt(sc.next()); - this.otherUserCount = Integer.parseInt(sc.next()); - this.minMatchCriteria = Integer.parseInt(sc.next()); - - for(int i=0; i tempList = new ArrayList(); - for(int reviewNum=0; reviewNum getMyReviewedList() { - return myReviewedList; - } - - - public List> getOtherReviewedList() { - return otherReviewedList; - } - - - } - - - -} diff --git a/kshiraishi/src/GourumeOperation.java b/kshiraishi/src/GourumeOperation.java deleted file mode 100644 index dc7d85e..0000000 --- a/kshiraishi/src/GourumeOperation.java +++ /dev/null @@ -1,86 +0,0 @@ -package B084; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - -public class GourumeOperation { - - //自分の評価3以上のインデックス(店)のリストを返す - public List myRatingsOf3(GourumeData groumeData) { - List myRating3 = new ArrayList<>(); - - for(int i=0; i> otherRatingsOf3(GourumeData groumeData) { - List> otherRating3 = new ArrayList<>(); - - for (int i = 0; i < groumeData.getOtherReviewedList().size(); i++) { - otherRating3.add(new ArrayList<>()); // 各ユーザーごとの評価3リストを初期化 - } - - for(int i=0; i> similarUsers(GourumeData groumeData, List myRating3, List> otherRating3){ - - List> similarUsers = new ArrayList<>(); - - Set myRating3Set = new TreeSet<>(myRating3); // 自分の3評価インデックスをSetに変換 - - for(List otherUserRatingList : otherRating3) { - Set otherUserRatingSet = new TreeSet<>(otherUserRatingList); - - // 共通部分の要素数を数える - Set intersection = new TreeSet<>(myRating3Set); // myRating3Setのコピーを作成 - intersection.retainAll(otherUserRatingSet); // intersectionにはmyRating3SetとotherUserRatingSetの共通要素のみが残る - - int matchCount = intersection.size(); // 共通要素の数がマッチカウント - - if(matchCount >= groumeData.getMinMatchCriteria()) { - similarUsers.add(otherUserRatingList); - } - } - - return similarUsers; - } - - //自分の行ったことない店(評価0)で好みが似てる他のユーザが評価3をつけた店をListで返す - public Set recommendRestaurant(GourumeData groumeData, List>similarUsersReviewList){ - Set recommendSet = new TreeSet<>(); - - for(List list : similarUsersReviewList) { - for(int i=0; i> otherReviewedList = new ArrayList>(); - //コンストラクタ - public GourumeData() { + /**コンストラクタ*/ + public GourumetData() { Scanner sc = new Scanner(System.in); this.reviewedRestaurantNum = Integer.parseInt(sc.next()); diff --git a/kshiraishi/src/GourumetDataTest.java b/kshiraishi/src/GourumetDataTest.java new file mode 100644 index 0000000..bed3a42 --- /dev/null +++ b/kshiraishi/src/GourumetDataTest.java @@ -0,0 +1,46 @@ +package B084; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.util.Arrays; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class GourumetDataTest { + private InputStream originalSystemIn; + + @Before + public void setUp() { + originalSystemIn = System.in; + } + + @Test + public void コンストラクタGourumetDataのテスト() { + String input = "4 3 2\n3 0 3 0\n3 3 3 1\n1 3 1 3\n3 0 3 3"; + InputStream testInput = new ByteArrayInputStream(input.getBytes()); + + System.setIn(testInput); + + GourumetData gourumeData = new GourumetData(); + + assertThat(gourumeData.getReviewedRestaurantNum(), is(4)); + assertThat(gourumeData.getOtherUserCount(), is(3)); + assertThat(gourumeData.getMinMatchCriteria(), is(2)); + assertThat(gourumeData.getMyReviewedList(), is(Arrays.asList(3, 0, 3, 0))); + assertThat(gourumeData.getOtherReviewedList(), is(Arrays.asList( + Arrays.asList(3, 3, 3, 1), + Arrays.asList(1, 3, 1, 3), + Arrays.asList(3, 0, 3, 3)))); + } + + @After + public void tearDown() { + System.setIn(originalSystemIn); + } + + + +} diff --git a/kshiraishi/src/GourumetOperation.java b/kshiraishi/src/GourumetOperation.java new file mode 100644 index 0000000..162603f --- /dev/null +++ b/kshiraishi/src/GourumetOperation.java @@ -0,0 +1,94 @@ +package B084; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +/** + * 処理部分のメソッドを定義したクラス + * + * + */ +public class GourumetOperation { + + /**自分の評価3以上のインデックス(店)のリストを返す*/ + public List myRatingsOf3(GourumetData gourumetData) { + List myRating3 = new ArrayList<>(); + + for(int i=0; i= 3) { + myRating3.add(i); //評価3以上ならインデックス(店)をリストに追加 + } + } + + return myRating3; + } + + /**他ユーザの評価3以上のインデックス(店)のリストを返す*/ + public List> otherRatingsOf3(GourumetData gourumetData) { + List> otherRating3 = new ArrayList<>(); + + for (int i = 0; i < gourumetData.getOtherReviewedList().size(); i++) { + otherRating3.add(new ArrayList<>()); // 各ユーザーごとの評価3リストを初期化 + } + + for(int i=0; i= 3) { + otherRating3.get(i).add(j); //評価3以上ならインデックス(店)をリストに追加 + } + } + } + + return otherRating3; + } + + /**自分の評価3以上の店と同じ店を評価3以上が基準値以上見つかった場合、 + 好みが似ているユーザとしてそのユーザの評価リストを保存。*/ + public List> similarUsers(GourumetData gourumetData, List myRating3, List> otherRating3){ + + List> similarUsers = new ArrayList<>(); + + Set myRating3Set = new TreeSet<>(myRating3); // 自分の3評価インデックスをSetに変換 + + for(List otherUserRatingList : otherRating3) { + Set otherUserRatingSet = new TreeSet<>(otherUserRatingList); + + // 共通部分の要素数を数える + Set intersection = new TreeSet<>(myRating3Set); // myRating3Setのコピーを作成 + intersection.retainAll(otherUserRatingSet); // intersectionにはmyRating3SetとotherUserRatingSetの共通要素のみが残る + + int matchCount = intersection.size(); // 共通要素の数がマッチカウント + + if(matchCount >= gourumetData.getMinMatchCriteria()) { + similarUsers.add(otherUserRatingList); + } + } + + return similarUsers; + } + + /**自分の行ったことない店(評価0)で好みが似てる他のユーザが評価3をつけた店をListで返す*/ + public Set recommendRestaurant(GourumetData gourumetData, List>similarUsersReviewList){ + Set recommendSet = new TreeSet<>(); + + for(List list : similarUsersReviewList) { + for(int i=0; i= 1; //レビューが1以上あれば行ったことがある店 + } +} + + + diff --git a/kshiraishi/src/GourumeOperationTest.java b/kshiraishi/src/GourumetOperationTest.java similarity index 70% rename from kshiraishi/src/GourumeOperationTest.java rename to kshiraishi/src/GourumetOperationTest.java index 655022b..904046d 100644 --- a/kshiraishi/src/GourumeOperationTest.java +++ b/kshiraishi/src/GourumetOperationTest.java @@ -9,12 +9,12 @@ import java.util.List; import java.util.Set; import org.junit.Test; -public class GourumeOperationTest { +public class GourumetOperationTest { @Test - public void myRatingsOf3のテスト入力例1の時() { - GourumeOperation sut = new GourumeOperation(); - GourumeData stub = mock(GourumeData.class); + public void myRatingsOf3のテスト入力例1の時評価3以上のインデックスを返せる() { + GourumetOperation sut = new GourumetOperation(); + GourumetData stub = mock(GourumetData.class); List review = Arrays.asList(3,0,3,0); when(stub.getMyReviewedList()).thenReturn(review); @@ -26,9 +26,9 @@ public class GourumeOperationTest { } @Test - public void otherRatingsOf3のテスト入力例1の時() { - GourumeOperation sut = new GourumeOperation(); - GourumeData stub = mock(GourumeData.class); + public void otherRatingsOf3のテスト入力例1の時評価3以上のインデックスを返せる() { + GourumetOperation sut = new GourumetOperation(); + GourumetData stub = mock(GourumetData.class); List> review = Arrays.asList( Arrays.asList(3,3,3,1), Arrays.asList(1,3,1,3), @@ -48,8 +48,8 @@ public class GourumeOperationTest { } @Test - public void similarUsersのテスト入力例1の時 () { - GourumeData stub = mock(GourumeData.class); + public void similarUsersで自分と他人の評価3以上インデックスを渡したとき同じインデックス番号が2以上あったらそのリストを返す () { + GourumetData stub = mock(GourumetData.class); when(stub.getMinMatchCriteria()).thenReturn(2); List myRating3List = Arrays.asList(0,2); List> otherRating3List = Arrays.asList( @@ -63,13 +63,13 @@ public class GourumeOperationTest { Arrays.asList(0,2,3) ); - GourumeOperation sut = new GourumeOperation(); + GourumetOperation sut = new GourumetOperation(); assertThat(sut.similarUsers(stub, myRating3List, otherRating3List), is(expected)); } @Test - public void recommendRestaurantのテスト入力例1の時 () { - GourumeData stub = mock(GourumeData.class); + public void 自分の評価0の要素のインデックスと同じインデックスの好みが似てる人の評価が3のインデックスを返せる () { + GourumetData stub = mock(GourumetData.class); when(stub.getMyReviewedList()).thenReturn(Arrays.asList(3,0,3,0)); List>similarUsersReviewList = Arrays.asList( Arrays.asList(0,1,2), @@ -77,7 +77,7 @@ public class GourumeOperationTest { ); Set expected = new LinkedHashSet<>(Arrays.asList(1,3)); - GourumeOperation sut = new GourumeOperation(); + GourumetOperation sut = new GourumetOperation(); assertThat(sut.recommendRestaurant(stub, similarUsersReviewList), is(expected)); } -- GitLab From 5997afcfe3a06fe2a35b06fb8d35a598636fb9cf Mon Sep 17 00:00:00 2001 From: kshiraishi Date: Wed, 23 Jul 2025 16:57:10 +0900 Subject: [PATCH 3/3] =?UTF-8?q?B084=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kshiraishi/src/B084.java | 4 ++-- kshiraishi/src/GourumetOperationTest.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kshiraishi/src/B084.java b/kshiraishi/src/B084.java index 51d4dac..96bc2a8 100644 --- a/kshiraishi/src/B084.java +++ b/kshiraishi/src/B084.java @@ -34,8 +34,8 @@ public class B084 { System.out.println("no"); } else { int count = 0; - for (int restaurantNumber : recommend) { - System.out.print(restaurantNumber + 1); // まず値を出力 + for (int restaurantIndex : recommend) { + System.out.print(restaurantIndex + 1); // まず値を出力 if (count < recommend.size() - 1) { // 最後の要素でなければ空白を追加 System.out.print(" "); } diff --git a/kshiraishi/src/GourumetOperationTest.java b/kshiraishi/src/GourumetOperationTest.java index 904046d..81db2a5 100644 --- a/kshiraishi/src/GourumetOperationTest.java +++ b/kshiraishi/src/GourumetOperationTest.java @@ -48,7 +48,7 @@ public class GourumetOperationTest { } @Test - public void similarUsersで自分と他人の評価3以上インデックスを渡したとき同じインデックス番号が2以上あったらそのリストを返す () { + public void similarUsersで自分と他人の評価3以上が2個以上あった場合その他人のリストを返す () { GourumetData stub = mock(GourumetData.class); when(stub.getMinMatchCriteria()).thenReturn(2); List myRating3List = Arrays.asList(0,2); @@ -68,7 +68,7 @@ public class GourumetOperationTest { } @Test - public void 自分の評価0の要素のインデックスと同じインデックスの好みが似てる人の評価が3のインデックスを返せる () { + public void 自分が評価0で好みが似てる人が評価3以上のインデックスを取得できる () { GourumetData stub = mock(GourumetData.class); when(stub.getMyReviewedList()).thenReturn(Arrays.asList(3,0,3,0)); List>similarUsersReviewList = Arrays.asList( -- GitLab