From b192b79bb3e1953ecb0b05fcd25ce8d0b855ee83 Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:10:57 -0400 Subject: [PATCH 01/10] Create 6x6 Star Battle Normal1 visualized (DO NOT OPEN AS A PUZZLE).png Committing files onto correct branch after learning about the differences of team branches --- ...al1 visualized (DO NOT OPEN AS A PUZZLE).png | Bin 0 -> 14302 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 puzzles files/starbattle/6x6 Star Battle 1 star Normal/6x6 Star Battle Normal1 visualized (DO NOT OPEN AS A PUZZLE).png diff --git a/puzzles files/starbattle/6x6 Star Battle 1 star Normal/6x6 Star Battle Normal1 visualized (DO NOT OPEN AS A PUZZLE).png b/puzzles files/starbattle/6x6 Star Battle 1 star Normal/6x6 Star Battle Normal1 visualized (DO NOT OPEN AS A PUZZLE).png new file mode 100644 index 0000000000000000000000000000000000000000..584d081539b5d4cf96eee24d5decf73f12076fb4 GIT binary patch literal 14302 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 c4j(W;vBT|k Date: Tue, 11 Jun 2024 14:22:20 -0400 Subject: [PATCH 02/10] Create 5x5 Star Battle Normal visualized (DO NOT OPEN AS A PUZZLE).png Replacing files --- ...mal visualized (DO NOT OPEN AS A PUZZLE).png | Bin 0 -> 13377 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 puzzles files/starbattle/5x5 Star Battle 1 star Normal/5x5 Star Battle Normal visualized (DO NOT OPEN AS A PUZZLE).png diff --git a/puzzles files/starbattle/5x5 Star Battle 1 star Normal/5x5 Star Battle Normal visualized (DO NOT OPEN AS A PUZZLE).png b/puzzles files/starbattle/5x5 Star Battle 1 star Normal/5x5 Star Battle Normal visualized (DO NOT OPEN AS A PUZZLE).png new file mode 100644 index 0000000000000000000000000000000000000000..5e42c203340e6efe38fdd4b9f27e8959b437ae5f GIT binary patch literal 13377 zcmeI3e^gV~9l&2mNGyaPV#`YkgkUFXnTDD{q)N#6A-@D+&Z<@R5+}msK%7{hG$bSw zl=7p+_6(^)ARckGBCS1&LLuS7WUU1eD|AIjRDLPYP#DG#$=*vy!Z};c8QVXuzCUs} z=e|7Nz2AH9_kQxZ_np`tyVc2o<^TYIQ)EPF0s!E&$Vaz~h?G25C1xOhUJ^v?J^}!a zE6@+__Pty^0C)kBq1+u=r^l5zCxE%UP1e~mnnQQgT(JkboyK3;@v2r+t1)nyStMO^Lj?|V4U|I^9>+QoR^0)hOeeU zGI;sONOD58UzYyi+K|*37B`yW&Stg=1GUPTu^#H(v_2qnBw1JM(U9@f0iJt8R}EKf z5*Dg&sbN8Ge7v7jCIh6Eb)ABrW@W_nlaqpx;&Vcs^w{)>OZr+o9&hTV31ul-UE(j; z*^gGjx7*(r1YT^e%Vz}or+takR1UlfLC`|i?fZRzxu;i>0~89yLir2U)i2u6#@dUG zbBX%rpTe*V;K1;WQp3qdJ6`_ncMNK9h>Pa1fY~&sJ$#k~%Lx7b{bY_oPaRVR zyDBP`vk$hDQ;Nsv))K7}pH& z;+0mY+vmX|h|irP!g+X-isIq1T25zYjV=oj?)x@kYSQ>qpaHO8EzR~rUZ|e|*c!5U zZ2#}M1dAsYPi#%b<`I?$p3gkMXWWSEt-A+lr>A|&CsZnC#d_lMB9w^gR1c>f5QJAU zro5S+_A?~;0cRn1|8E>qUU|a;Kud%M??cCPQA!d!oQtapqIvHi(u3Xucg|Do<>D2B z;hD8W7Y6Qru~k?Z#gxo$S0fKjW+qVebI)>iJw3Rx$Sz7z4Hr-)df|xxiCMXsaP41# z(&o@J;hh82)p)S>B)3IX(C$Exz1^zOJNYPCHRCZT-(5&vfFGxo2-{))f_&=7N`K)Nh zi&Cb33F37zY4aJRn42+jb)1i^y1Inl{r$#TFzA^UH}c6Tnsc@Td>?3QXAB5 zGf0>lL?-Twr^B)F@Os zNPEBgOV2@dstb=n-06R%n|anxJN<+{<-b@enSBpre<`sgX-!8LyzZ@?dp6UOGl-N~ zO4|<|7BRI%mZ-@(o~xS~laKKMB}zv9P1&yP&E1+>I_Q+6lZsyJd|D#m5-k2~vC#8H zgkJY~cYC8SuYA=-pYqBW0CJgTHj1&%6&a0+Q){;N>>t6Nk4=~;uFk1|~Wi-iT1jBJ*vI~uW<|ZWY zS<6$%?@aW?HaS@}s1>lb6M{c(MBpyj>o!==JjopG{0}4TwCwyR0N^@;o&_*P$h6yI zYmi{&*dl^0BG@8=nTNx;PB_=v5N}RHrI>z&$Aj|~eQ51A?3lwui2A6b4v(ZAll1QU+f#*uA z6yts6qe|6}E{@@_2;%Ne@hf~rqPTVHUJRuVH|X~ zR6*I>e{X9@ek{cLEX8@(DUizEw29g*G6eO16{rWyl~|`VnLfSyn-vmRtqYY{~ZyQ~s|K2e_q`UZt#s$yU6x(L`IR6H%OrTy6>XgDU5nm8_$> zfG z2R`Ln-evhb!}*R=!{Mql)xcMCtJ-RjPLujXd~ZSy zy@rdAk4N^CjUJDIv$#Im8R@@04Y<@M{l9--awcq$O}mDM2ZRu474TTsQ6c+Rah}@r aW(gi})m)Wk5(|9Lq!$?$8(Q~kNb*l)w!ydn literal 0 HcmV?d00001 From d3a677ea3095d89a1338f02ca5dd083efe4fb4b0 Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Fri, 14 Jun 2024 15:43:48 -0400 Subject: [PATCH 03/10] Too Many Stars tests Test cases for Too Many Stars contradiction rule started on with boards and a visualization pdf added as well --- .../TooManyStarsContradictionRuleTests.java | 138 ++++++++++++++++++ .../ColumnOverloaded | 41 ++++++ .../TooManyStarsContradictionRule/Correct | 41 ++++++ .../Region Overloaded Visualized-01.png | Bin 0 -> 15488 bytes .../RegionOverloaded | 41 ++++++ .../RowOverloaded | 41 ++++++ 6 files changed, 302 insertions(+) create mode 100644 src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java create mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded create mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct create mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Region Overloaded Visualized-01.png create mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded create mode 100644 src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded diff --git a/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java b/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java new file mode 100644 index 000000000..ac9c99329 --- /dev/null +++ b/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java @@ -0,0 +1,138 @@ +package puzzles.starbattle.rules; + +import edu.rpi.legup.puzzle.starbattle.rules.TooManyStarsContradictionRule; +import edu.rpi.legup.model.tree.TreeNode; +import edu.rpi.legup.model.tree.TreeTransition; +import edu.rpi.legup.puzzle.starbattle.StarBattle; +import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; +import edu.rpi.legup.puzzle.starbattle.StarBattleCell; +import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; +import edu.rpi.legup.save.InvalidFileFormatException; +import java.awt.*; +import legup.MockGameBoardFacade; +import legup.TestUtilities; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TooManyStarsContradictionRuleTests { + private static final TooManyStarsContradictionRule RULE = new TooManyStarsContradictionRule(); + private static StarBattle starBattle; + + @BeforeClass + public static void setUp() { + MockGameBoardFacade.getInstance(); + starBattle = new StarBattle(); + } + + /* Tests the Too Many Stars contradiction rule where a region has + more stars than the puzzle number */ + @Test + public void TooManyStarsContradictionRule_RegionOverloaded() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(2,1); + StarBattleCell cell2 = board.getCell(0,2); + + Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + + /* Tests the Too Many Stars contradiction rule where a column has + more stars than the puzzle number */ + @Test + public void TooManyStarsContradictionRule_ColumnOverloaded() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); + StarBattleCell cell2 = board.getCell(0,3); + + Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + /* Tests the Too Many Stars contradiction rule where a row has + more stars than the puzzle number */ + @Test + public void TooManyStarsContradictionRule_RowOverloaded() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); + StarBattleCell cell2 = board.getCell(3,0); + + Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + /* Tests the Too Many Stars contradiction rule where it is used incorrectly */ + @Test + public void TooManyStarsContradictionRule_Correct() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + + Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + + } + } + } +} diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded new file mode 100644 index 000000000..3c2a1f658 --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct new file mode 100644 index 000000000..f6b8bd5e1 --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Region Overloaded Visualized-01.png b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Region Overloaded Visualized-01.png new file mode 100644 index 0000000000000000000000000000000000000000..bfe24d1a4d590cb68956d91e1c94f408f0fde414 GIT binary patch literal 15488 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded new file mode 100644 index 000000000..12e1a5872 --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded new file mode 100644 index 000000000..c193eadff --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 732bc789b23296e2d4f24d3fe5600aaa4e3e4301 Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Tue, 18 Jun 2024 13:47:19 -0400 Subject: [PATCH 04/10] Too Many Stars test suite Test suite works now --- .../rules/TooManyStarsContradictionRuleTests.java | 7 +++---- .../rules/TooManyStarsContradictionRule/ColumnOverloaded | 2 +- .../starbattle/rules/TooManyStarsContradictionRule/Correct | 2 +- .../rules/TooManyStarsContradictionRule/RegionOverloaded | 2 +- .../rules/TooManyStarsContradictionRule/RowOverloaded | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java b/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java index ac9c99329..3424bbaac 100644 --- a/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java +++ b/src/test/java/puzzles/starbattle/rules/TooManyStarsContradictionRuleTests.java @@ -113,9 +113,9 @@ public void TooManyStarsContradictionRule_RowOverloaded() } } } - /* Tests the Too Many Stars contradiction rule where it is used incorrectly */ + /*Tests the Too Many Stars contradiction rule for a false contradiction. */ @Test - public void TooManyStarsContradictionRule_Correct() + public void TooManyStarsContradictionRule_FalseContradiction() throws InvalidFileFormatException { TestUtilities.importTestBoard("puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct", starBattle); @@ -125,13 +125,12 @@ public void TooManyStarsContradictionRule_Correct() StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - Assert.assertNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); + Assert.assertNotNull(RULE.checkContradiction((StarBattleBoard) transition.getBoard())); for (int i = 0; i < board.getHeight(); ++i) { for (int j = 0; j < board.getWidth(); ++j) { Point point = new Point(j,i); Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); - } } } diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded index 3c2a1f658..4e7170b3e 100644 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/ColumnOverloaded @@ -31,7 +31,7 @@ - + diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct index f6b8bd5e1..15921e601 100644 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/Correct @@ -31,7 +31,7 @@ - + diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded index 12e1a5872..bcf4a679a 100644 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RegionOverloaded @@ -31,7 +31,7 @@ - + diff --git a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded index c193eadff..fdf1adc11 100644 --- a/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded +++ b/src/test/resources/puzzles/starbattle/rules/TooManyStarsContradictionRule/RowOverloaded @@ -31,7 +31,7 @@ - + From 1a1bf5ec6eb047f8bd23beba2186fe8b848dcd94 Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Tue, 18 Jun 2024 14:49:26 -0400 Subject: [PATCH 05/10] Editing Blackout test Scraping existing test and starting new --- .../rules/BlackoutDirectRuleTest.java | 136 ++++++++---------- .../Blackout visualized.png | Bin 0 -> 14116 bytes .../{ColumnBlackout => Corner} | 14 +- .../{RegionBlackout => Edge} | 0 .../{RowBlackout => Middle} | 0 5 files changed, 68 insertions(+), 82 deletions(-) create mode 100644 src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Blackout visualized.png rename src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/{ColumnBlackout => Corner} (74%) rename src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/{RegionBlackout => Edge} (100%) rename src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/{RowBlackout => Middle} (100%) diff --git a/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java b/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java index 59d5b37af..4fab421f0 100644 --- a/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java +++ b/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java @@ -1,76 +1,62 @@ -// This test is for a puzzle that is not fully implemented yet and is causing issues. -// Commenting this out for now, but once Star Battle is fully implemented this should -// be uncommented and finished. +package puzzles.starbattle.rules; -// package puzzles.starbattle.rules; -// -// import edu.rpi.legup.puzzle.nurikabe.Nurikabe; -// import edu.rpi.legup.puzzle.nurikabe.NurikabeBoard; -// import edu.rpi.legup.puzzle.nurikabe.NurikabeCell; -// import edu.rpi.legup.puzzle.nurikabe.NurikabeType; -// import legup.MockGameBoardFacade; -// import legup.TestUtilities; -// import edu.rpi.legup.model.tree.TreeNode; -// import edu.rpi.legup.model.tree.TreeTransition; -// import org.junit.Assert; -// import org.junit.BeforeClass; -// import org.junit.Test; -// -// import edu.rpi.legup.puzzle.starbattle.StarBattle; -// import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; -// import edu.rpi.legup.puzzle.starbattle.StarBattleCell; -// import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; -// import edu.rpi.legup.puzzle.starbattle.rules.BlackoutDirectRule; -// import edu.rpi.legup.save.InvalidFileFormatException; -// -// import java.awt.*; -// -// public class BlackoutDirectRuleTest { -// -// private static final BlackoutDirectRule RULE = new BlackoutDirectRule(); -// private static StarBattle starbattle; -// -// @BeforeClass -// public static void setUp() { -// MockGameBoardFacade.getInstance(); -// starbattle = new StarBattle(); -// } -// -// @Test -// public void BlackoutDirectRuleTest_ColumnBlackout() throws InvalidFileFormatException { -// -// TestUtilities.importTestBoard("puzzles/starbattle/rules/BlackoutDirectRule/ColumnBlackout", -// starbattle); -// TreeNode rootNode = starbattle.getTree().getRootNode(); -// TreeTransition transition = rootNode.getChildren().get(0); -// transition.setRule(RULE); -// -// StarBattleBoard board = (StarBattleBoard) transition.getBoard(); -// -// StarBattleCell cell1 = board.getCell(1, 1); -// cell1.setData(StarBattleCellType.BLACK.value); -// StarBattleCell cell2 = board.getCell(1, 2); -// cell2.setData(StarBattleCellType.BLACK.value); -// StarBattleCell cell3 = board.getCell(1, 3); -// cell3.setData(StarBattleCellType.BLACK.value); -// -// board.addModifiedData(cell1); -// board.addModifiedData(cell2); -// board.addModifiedData(cell3); -// -// Assert.assertNull(RULE.checkRule(transition)); -// -// for (int i = 0; i < board.getHeight(); i++) { -// for (int k = 0; k < board.getWidth(); k++) { -// Point point = new Point(k, i); -// if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || -// point.equals(cell3.getLocation())) { -// Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(k, i))); -// } -// else { -// Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(k, i))); -// } -// } -// } -// } -// } +import edu.rpi.legup.puzzle.starbattle.rules.BlackoutDirectRule; +import edu.rpi.legup.model.tree.TreeNode; +import edu.rpi.legup.model.tree.TreeTransition; +import edu.rpi.legup.puzzle.starbattle.StarBattle; +import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; +import edu.rpi.legup.puzzle.starbattle.StarBattleCell; +import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; +import edu.rpi.legup.save.InvalidFileFormatException; +import java.awt.*; +import legup.MockGameBoardFacade; +import legup.TestUtilities; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class BlackoutDirectRuleTest { + private static final BlackoutDirectRule RULE = new BlackoutDirectRule(); + private static StarBattle starBattle; + + @BeforeClass + public static void setUp() { + MockGameBoardFacade.getInstance(); + starBattle = new StarBattle(); + } + + /* Blackout Direct Rule where star is in the corner */ + @Test + public void BlackoutDirectRuleTestCorner() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/BlackoutDirectRule/Corner", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); /* + StarBattleCell cell2 = board.getCell(0,1); + StarBattleCell cell3 = board.getCell(1,0); + StarBattleCell cell4 = board.getCell(1,1); */ + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation()) /*|| point.equals(cell2.getLocation()) || + point.equals(cell3.getLocation()) || point.equals(cell4.getLocation()) */) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + /* + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + */ + } + } + } + +} diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Blackout visualized.png b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Blackout visualized.png new file mode 100644 index 0000000000000000000000000000000000000000..e8670e07ebc8a447459428eb7fa375dec0672028 GIT binary patch literal 14116 zcmeHN2~<;88h$S;U;r18BrIX6ic-fED4?tn0Z~DykfN;;B5HIPTuVi02us0*9c&#` zco1C5pv3A_1Sy0?)G8#PQ&b|0C{QIpMRsLg9x?c$_MG;#XY@=sCx>%#@BQz;eE;|V z_ud@v@%GTvplSdBpy|1M*(U%14$D4j1o)ei<`YryKlL5U*X{;@X)|RXutCBd2LNNh za~Z>L?=f~{Uza#4-j}Z7E;J|O`79k0t)ij=UIk1{u&GIPQzJ(}0zoDf9-y9S^^i|b zjAewQd$vi(spI#4usmkRjkK0dsho>ZsB9V_j9oBPW5G6vId*ONh|dhRX#4_L9F;&9rwZc#a(P z`$3OnBiH_4lEo3{CS~X<$pE0mLkDJ!`dnUe_mB(|I;79gf!hz%dS_Sua&zRVUgBKd zq&Zl$IRc_{)C+dNrAP{MyYyb^(YA(%7W@M&okSRSmjNsmJEf3-IL|wqT^u!G=+YAH>@U+it3Q!u23o%X0+zo%w07(^w7@Iv*hkN_eFUW#GhZG{VBk0sXI33-e(a*G_sct?C`{xTunuS zBN!B5o03n=!Se=^2PY%%N>x%Bd#futWy3ss#OMZe%mo<8zwf9`DAcr)uP2^#ueFjj zm^j%6i7zF5|C)rdC$}*CvSGyYsdy#NgV4sU-`$Q#h!#H%Mo{HCQ%OJYLa}b>z>+(Y z>v2l!fqbKtD>cYv-eHIrJCq>u+rz2E4%F&=^y*Y%roqaUA1Z_^4-+y`tAiD**_5O+ zzVuAcaZx<@tX(3JkTIATa&dS#d0CtrIW8`aY`1tZ`GYxggxi8Q<$E+XA_b@wjet}D z%6|Hq~c* zYp2Ts4xU573G|mOdOoI2x)|C*O|N zot|SIew_oQtFsP|bp_cW+8vzI4sJQX+tJx)>tJDom#X=pc@y*k3e$=H>-apnVg@?Z zz?;BnWX53!E`8l4gqcojp~wRC0#7$k&vfjJ6<_~KmQF6SltTt@((~8|e;O(%*>_R6XN-=JQaCdIISm6EP(i^xhCy)x)_bcP5>Mg0c|8 zR6U#;gp>xc&q2zML1j8bi6ZnoZOIRm8oxz2rxmT z6c$jQ?MQ1#dpbTM3Y$PsqlN|rJf-)3nLa#ap!>W+Ri)Aa;kVz{>M85sPwPQW09d7N z9>TkRamav___quCNbMz~(J?t}NnX#H>;is!p&C-ZE$onY?}7kW@mOJwxFg zV3oBwB}GT~FekLWYiTLMq!I-!vMHL+eCcH2ZfZ7L z&rrX1dTVE`@qz`F(+$X1ceHoRkHC$?pbp;BV6GQGLf}j8B;z5ir8`G|^ z7!`jVh7`LJC0d3sE#>_Crr!qo;Le)QzfWsEa7LfRjXE!RuvZV#g1^`eO@_!%kl`>2KGahCaP_D(@qF$y}@N{ zlbY2LVNwGxY!$hNozFG7OiNid1OJ0beTw)E(#?Fefv3u^F+yF)pi&@AO63+nlcY9)SPe zp9@V@yj1aehw6-q_ui9-5EXBzctgb-lc(W#*$=WN7=D5ZY7%U13;1EX%C z3l~0wYsytQYDPDES`F{NB@qf(Q@6h7|gO`z!@q6y=-~0%1#PLfb*>S0F z)WX>Oh{?x`xBeB65UTuA)mc@YRn=J)52$!R#RDoHQ1O6@2i_|lc*}2y0Q+gvs(vmC p?B5r6^ytyH&K&2z>^DSMAiV5b(X(G}o4}3(Jl(vPon6X``7dS?MOOd- literal 0 HcmV?d00001 diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/ColumnBlackout b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner similarity index 74% rename from src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/ColumnBlackout rename to src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner index ddcc4dc9a..7216cc43d 100644 --- a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/ColumnBlackout +++ b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner @@ -4,9 +4,9 @@ - + - + @@ -20,16 +20,16 @@ - - - + + + - - + + diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/RegionBlackout b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge similarity index 100% rename from src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/RegionBlackout rename to src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/RowBlackout b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle similarity index 100% rename from src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/RowBlackout rename to src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle From 02bf6f5f863180eb0519e1a2c46d4b50a85191fd Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Tue, 18 Jun 2024 15:15:46 -0400 Subject: [PATCH 06/10] Blackout Test Suite first test First test for Blackout Direct Rule passes --- .../rules/BlackoutDirectRuleTest.java | 30 +++++++++++----- .../rules/BlackoutDirectRule/Corner | 35 ++++++++++--------- 2 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java b/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java index 4fab421f0..4c27ffbeb 100644 --- a/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java +++ b/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java @@ -36,25 +36,39 @@ public void BlackoutDirectRuleTestCorner() transition.setRule(RULE); StarBattleBoard board = (StarBattleBoard) transition.getBoard(); - StarBattleCell cell1 = board.getCell(0,0); /* - StarBattleCell cell2 = board.getCell(0,1); - StarBattleCell cell3 = board.getCell(1,0); - StarBattleCell cell4 = board.getCell(1,1); */ + StarBattleCell cell1 = board.getCell(1,0); + cell1.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell2 = board.getCell(2,0); + cell2.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell3 = board.getCell(3,0); + cell3.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell4 = board.getCell(0,1); + cell4.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell5 = board.getCell(0,2); + cell5.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell6 = board.getCell(0,3); + cell6.setData(StarBattleCellType.BLACK.value); + + board.addModifiedData(cell1); + board.addModifiedData(cell2); + board.addModifiedData(cell3); + board.addModifiedData(cell4); + board.addModifiedData(cell5); + board.addModifiedData(cell6); Assert.assertNull(RULE.checkRule(transition)); for (int i = 0; i < board.getHeight(); ++i) { for (int j = 0; j < board.getWidth(); ++j) { Point point = new Point(j,i); - if (point.equals(cell1.getLocation()) /*|| point.equals(cell2.getLocation()) || - point.equals(cell3.getLocation()) || point.equals(cell4.getLocation()) */) { + if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || + point.equals(cell3.getLocation()) || point.equals(cell4.getLocation()) || + point.equals(cell5.getLocation()) || point.equals(cell6.getLocation())) { Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); } - /* else { Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); } - */ } } } diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner index 7216cc43d..d1c6722e4 100644 --- a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner +++ b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Corner @@ -4,37 +4,38 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - \ No newline at end of file + + From b222cdc26325dec58dbe4abf1a13b5b9999f3b45 Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Fri, 21 Jun 2024 13:53:43 -0400 Subject: [PATCH 07/10] Finishing Blackout Test Added incorrect use of rule test --- .../rules/BlackoutDirectRuleTest.java | 148 +++++++++++++++++- .../starbattle/rules/BlackoutDirectRule/Edge | 43 ++--- .../rules/BlackoutDirectRule/Middle | 43 ++--- 3 files changed, 192 insertions(+), 42 deletions(-) diff --git a/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java b/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java index 4c27ffbeb..76367ace5 100644 --- a/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java +++ b/src/test/java/puzzles/starbattle/rules/BlackoutDirectRuleTest.java @@ -44,17 +44,71 @@ public void BlackoutDirectRuleTestCorner() cell3.setData(StarBattleCellType.BLACK.value); StarBattleCell cell4 = board.getCell(0,1); cell4.setData(StarBattleCellType.BLACK.value); - StarBattleCell cell5 = board.getCell(0,2); + StarBattleCell cell5 = board.getCell(1,1); cell5.setData(StarBattleCellType.BLACK.value); - StarBattleCell cell6 = board.getCell(0,3); + StarBattleCell cell6 = board.getCell(0,2); cell6.setData(StarBattleCellType.BLACK.value); - + StarBattleCell cell7 = board.getCell(0,3); + cell7.setData(StarBattleCellType.BLACK.value); + + board.addModifiedData(cell1); + board.addModifiedData(cell2); + board.addModifiedData(cell3); + board.addModifiedData(cell4); + board.addModifiedData(cell5); + board.addModifiedData(cell6); + board.addModifiedData(cell7); + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || + point.equals(cell3.getLocation()) || point.equals(cell4.getLocation()) || + point.equals(cell5.getLocation()) || point.equals(cell6.getLocation()) || + point.equals(cell7.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + /* Blackout Direct Rule where star is on the edge */ + @Test + public void BlackoutDirectRuleTestEdge() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/BlackoutDirectRule/Edge", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); + cell1.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell2 = board.getCell(2,0); + cell2.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell3 = board.getCell(3,0); + cell3.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell4 = board.getCell(0,1); + cell4.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell5 = board.getCell(1,1); + cell5.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell6 = board.getCell(1,2); + cell6.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell7 = board.getCell(1,3); + cell7.setData(StarBattleCellType.BLACK.value); + board.addModifiedData(cell1); board.addModifiedData(cell2); board.addModifiedData(cell3); board.addModifiedData(cell4); board.addModifiedData(cell5); board.addModifiedData(cell6); + board.addModifiedData(cell7); Assert.assertNull(RULE.checkRule(transition)); @@ -63,7 +117,8 @@ public void BlackoutDirectRuleTestCorner() Point point = new Point(j,i); if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || point.equals(cell3.getLocation()) || point.equals(cell4.getLocation()) || - point.equals(cell5.getLocation()) || point.equals(cell6.getLocation())) { + point.equals(cell5.getLocation()) || point.equals(cell6.getLocation()) || + point.equals(cell7.getLocation())) { Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); } else { @@ -73,4 +128,89 @@ public void BlackoutDirectRuleTestCorner() } } + /* Blackout Direct Rule where star is on the edge */ + @Test + public void BlackoutDirectRuleTestMiddle() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/BlackoutDirectRule/Middle", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); + cell1.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell2 = board.getCell(1,0); + cell2.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell3 = board.getCell(0,1); + cell3.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell4 = board.getCell(2,1); + cell4.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell5 = board.getCell(3,1); + cell5.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell6 = board.getCell(1,2); + cell6.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell7 = board.getCell(1,3); + cell7.setData(StarBattleCellType.BLACK.value); + + board.addModifiedData(cell1); + board.addModifiedData(cell2); + board.addModifiedData(cell3); + board.addModifiedData(cell4); + board.addModifiedData(cell5); + board.addModifiedData(cell6); + board.addModifiedData(cell7); + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation()) || + point.equals(cell3.getLocation()) || point.equals(cell4.getLocation()) || + point.equals(cell5.getLocation()) || point.equals(cell6.getLocation()) || + point.equals(cell7.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + /* Blackout Direct Rule where rule is called incorrectly */ + @Test + public void BlackoutDirectRuleTestFalse() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/BlackoutDirectRule/Middle", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(2,2); + cell1.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell2 = board.getCell(2,3); + cell2.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell3 = board.getCell(3,2); + cell3.setData(StarBattleCellType.BLACK.value); + StarBattleCell cell4 = board.getCell(3,3); + + board.addModifiedData(cell1); + board.addModifiedData(cell2); + board.addModifiedData(cell3); + board.addModifiedData(cell4); + + Assert.assertNotNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + + } diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge index f2a5b42d9..7995657c9 100644 --- a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge +++ b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Edge @@ -1,36 +1,41 @@ - - + + + - - - - + + + + - - - - + + + + - - - - + + + + + - - - - + + + + + - \ No newline at end of file + + + diff --git a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle index f2a5b42d9..b6f483244 100644 --- a/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle +++ b/src/test/resources/puzzles/starbattle/rules/BlackoutDirectRule/Middle @@ -1,36 +1,41 @@ - - + + + - - - - + + + + - - - - + + + + - - - - + + + + + - - - - + + + + + - \ No newline at end of file + + + From 67720714156c0b7b77a5fa3e6b597de5018d3a91 Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Fri, 21 Jun 2024 14:29:47 -0400 Subject: [PATCH 08/10] Finish with Stars Tests added for Finish with Stars --- .../rules/FinishWithStarsDirectRuleTest.java | 209 ++++++++++++++++++ .../FinishWithStarsDirectRule/CornerColumn | 41 ++++ .../rules/FinishWithStarsDirectRule/CornerRow | 41 ++++ .../FinishWithStarsDirectRule/CornerRowColumn | 41 ++++ .../FinishWithStarsDirectRule/DoubleRegion | 41 ++++ .../rules/FinishWithStarsDirectRule/False | 41 ++++ .../rules/FinishWithStarsDirectRule/Region | 41 ++++ 7 files changed, 455 insertions(+) create mode 100644 src/test/java/puzzles/starbattle/rules/FinishWithStarsDirectRuleTest.java create mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn create mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow create mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn create mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion create mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False create mode 100644 src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region diff --git a/src/test/java/puzzles/starbattle/rules/FinishWithStarsDirectRuleTest.java b/src/test/java/puzzles/starbattle/rules/FinishWithStarsDirectRuleTest.java new file mode 100644 index 000000000..552e3703e --- /dev/null +++ b/src/test/java/puzzles/starbattle/rules/FinishWithStarsDirectRuleTest.java @@ -0,0 +1,209 @@ +package puzzles.starbattle.rules; + +import edu.rpi.legup.puzzle.starbattle.rules.FinishWithStarsDirectRule; +import edu.rpi.legup.model.tree.TreeNode; +import edu.rpi.legup.model.tree.TreeTransition; +import edu.rpi.legup.puzzle.starbattle.StarBattle; +import edu.rpi.legup.puzzle.starbattle.StarBattleBoard; +import edu.rpi.legup.puzzle.starbattle.StarBattleCell; +import edu.rpi.legup.puzzle.starbattle.StarBattleCellType; +import edu.rpi.legup.save.InvalidFileFormatException; +import java.awt.*; +import legup.MockGameBoardFacade; +import legup.TestUtilities; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class FinishWithStarsDirectRuleTest { + private static final FinishWithStarsDirectRule RULE = new FinishWithStarsDirectRule(); + private static StarBattle starBattle; + + @BeforeClass + public static void setUp() { + MockGameBoardFacade.getInstance(); + starBattle = new StarBattle(); + } + + /* Finish With Stars Direct Rule where star is in the corner and only the row is blacked out */ + @Test + public void FinishWithStarsDirectRuleTestCornerRow() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); + cell1.setData(StarBattleCellType.STAR.value); + + board.addModifiedData(cell1); + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + + /* Finish With Stars Direct Rule where star is in the corner and only the column is blacked out */ + @Test + public void FinishWithStarsDirectRuleTestCornerColumn() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); + cell1.setData(StarBattleCellType.STAR.value); + + board.addModifiedData(cell1); + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + + /* Finish With Stars Direct Rule where star is in the corner and only the column is blacked out */ + @Test + public void FinishWithStarsDirectRuleTestCornerRowColumn() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(0,0); + cell1.setData(StarBattleCellType.STAR.value); + + board.addModifiedData(cell1); + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + /* Finish With Stars Direct Rule where star is in the corner and only the column is blacked out */ + @Test + public void FinishWithStarsDirectRuleTestRegion() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/FinishWithStarsDirectRule/Region", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(1,1); + cell1.setData(StarBattleCellType.STAR.value); + + board.addModifiedData(cell1); + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + /* Finish With Stars Direct Rule where there are two stars in two different mostly blacked out regions */ + @Test + public void FinishWithStarsDirectRuleTestDoubleRegion() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(1,1); + cell1.setData(StarBattleCellType.STAR.value); + StarBattleCell cell2 = board.getCell(2,3); + cell2.setData(StarBattleCellType.STAR.value); + + board.addModifiedData(cell1); + board.addModifiedData(cell2); + + Assert.assertNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Point point = new Point(j,i); + if (point.equals(cell1.getLocation()) || point.equals(cell2.getLocation())) { + Assert.assertNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + else { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + } + + /* Finish With Stars Direct Rule where there are two stars in two different mostly blacked out regions */ + @Test + public void FinishWithStarsDirectRuleTestFalse() + throws InvalidFileFormatException + { + TestUtilities.importTestBoard("puzzles/starbattle/rules/FinishWithStarsDirectRule/False", starBattle); + TreeNode rootNode = starBattle.getTree().getRootNode(); + TreeTransition transition = rootNode.getChildren().get(0); + transition.setRule(RULE); + + StarBattleBoard board = (StarBattleBoard) transition.getBoard(); + StarBattleCell cell1 = board.getCell(2,0); + cell1.setData(StarBattleCellType.STAR.value); + + board.addModifiedData(cell1); + + Assert.assertNotNull(RULE.checkRule(transition)); + + for (int i = 0; i < board.getHeight(); ++i) { + for (int j = 0; j < board.getWidth(); ++j) { + Assert.assertNotNull(RULE.checkRuleAt(transition, board.getCell(j, i))); + } + } + } + +} diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn new file mode 100644 index 000000000..ac0e35380 --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerColumn @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow new file mode 100644 index 000000000..3fb595a65 --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRow @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn new file mode 100644 index 000000000..44fe2b9ba --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/CornerRowColumn @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion new file mode 100644 index 000000000..16171cd01 --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/DoubleRegion @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False new file mode 100644 index 000000000..16ab2cc7c --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/False @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region new file mode 100644 index 000000000..d3c74607f --- /dev/null +++ b/src/test/resources/puzzles/starbattle/rules/FinishWithStarsDirectRule/Region @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From d30206de313d7a76d336553e4a91801f7be1d81a Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:17:08 -0400 Subject: [PATCH 09/10] new 2 star puzzle Started making 2 star puzzle --- .../10x10 Star Battle 2star Normal1.xml | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml diff --git a/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml b/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml new file mode 100644 index 000000000..339c7d9c1 --- /dev/null +++ b/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From dbbaca6739d7cd9a625c6e801044795e81814bdb Mon Sep 17 00:00:00 2001 From: offline171 <146153141+offline171@users.noreply.github.com> Date: Fri, 28 Jun 2024 14:05:39 -0400 Subject: [PATCH 10/10] Update 10x10 Star Battle 2star Normal1.xml Completed 10x10 2 star puzzle --- .../10x10 Star Battle 2star Normal1.xml | 67 ++++++++++++++++++- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml b/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml index 339c7d9c1..aac7dd8f9 100644 --- a/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml +++ b/puzzles files/starbattle/10x10 Star Battle 2 star Normal/10x10 Star Battle 2star Normal1.xml @@ -7,6 +7,7 @@ + @@ -64,21 +65,81 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +