Guest User

Untitled

a guest
Dec 10th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. package xyz.jacobclark.day3;
  2.  
  3.  
  4. import org.junit.Test;
  5.  
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. import static org.junit.Assert.assertEquals;
  10.  
  11. class Fabric {
  12. List<Claim> claims = new ArrayList<>();
  13.  
  14. public Fabric(){
  15. create();
  16. }
  17.  
  18. private void create(){
  19. for(int x = 1; x <= 1000; x++){
  20. for(int y = 1; y <= 1000; y++){
  21. this.claims.add(new Claim(x, y));
  22. }
  23. }
  24. }
  25.  
  26. public List<Claim> getClaims() {
  27. return claims;
  28. }
  29.  
  30. public void setClaims(List<Claim> claims) {
  31. this.claims = claims;
  32. }
  33.  
  34. public void makeClaim(final int x , final int y){
  35. Claim claim = claims.stream().filter(claimToCheck -> claimToCheck.getX() == x && claimToCheck.getY() == y).findFirst().get();
  36. claim.setClaims(claim.getClaims() + 1);
  37. }
  38.  
  39. public long getOverlappingClaims() {
  40. return claims
  41. .stream()
  42. .filter(claim -> claim.getClaims() > 1)
  43. .map(claim -> claim.getClaims())
  44. .count();
  45. }
  46. }
  47.  
  48. class Claim {
  49. private int x;
  50. private int y;
  51. private int claims = 0;
  52.  
  53. public Claim(int x, int y) {
  54. this.x = x;
  55. this.y = y;
  56. }
  57.  
  58. public int getX() {
  59. return x;
  60. }
  61.  
  62. public void setX(int x) {
  63. this.x = x;
  64. }
  65.  
  66. public int getY() {
  67. return y;
  68. }
  69.  
  70. public void setY(int y) {
  71. this.y = y;
  72. }
  73.  
  74. public int getClaims() {
  75. return claims;
  76. }
  77.  
  78. public void setClaims(int claims) {
  79. this.claims = claims;
  80. }
  81. }
  82.  
  83. public class OverlappingFabricTest {
  84. @Test
  85. public void shouldCount2OverlapsWhenTwoClaimsAreAtSamePosition() throws Exception {
  86. Fabric fabric = new Fabric();
  87.  
  88. fabric.makeClaim(1,1);
  89. fabric.makeClaim(1,1);
  90.  
  91. long overlappingClaims = fabric.getOverlappingClaims();
  92.  
  93. assertEquals(1, overlappingClaims);
  94. }
  95.  
  96. @Test
  97. public void name() throws Exception {
  98. Fabric fabric = new Fabric();
  99.  
  100. // 1,3
  101. fabric.makeClaim(4,2);
  102. fabric.makeClaim(5,2);
  103. fabric.makeClaim(6,2);
  104. fabric.makeClaim(7,2);
  105.  
  106. fabric.makeClaim(4,3);
  107. fabric.makeClaim(5,3);
  108. fabric.makeClaim(6,3);
  109. fabric.makeClaim(7,3);
  110.  
  111. fabric.makeClaim(4,4);
  112. fabric.makeClaim(5,4);
  113. fabric.makeClaim(6,4);
  114. fabric.makeClaim(7,4);
  115.  
  116. fabric.makeClaim(4,5);
  117. fabric.makeClaim(5,5);
  118. fabric.makeClaim(6,5);
  119. fabric.makeClaim(7,5);
  120.  
  121. // 3,1
  122. fabric.makeClaim(2,4);
  123. fabric.makeClaim(3,4);
  124. fabric.makeClaim(4,4);
  125. fabric.makeClaim(5,4);
  126.  
  127. fabric.makeClaim(2,5);
  128. fabric.makeClaim(3,5);
  129. fabric.makeClaim(4,5);
  130. fabric.makeClaim(5,5);
  131.  
  132. fabric.makeClaim(2,6);
  133. fabric.makeClaim(3,6);
  134. fabric.makeClaim(4,6);
  135. fabric.makeClaim(5,6);
  136.  
  137. fabric.makeClaim(2,7);
  138. fabric.makeClaim(3,7);
  139. fabric.makeClaim(4,7);
  140. fabric.makeClaim(5,7);
  141.  
  142. // 5,5
  143. fabric.makeClaim(6,6);
  144. fabric.makeClaim(6,7);
  145. fabric.makeClaim(7,6);
  146. fabric.makeClaim(7,7);
  147.  
  148. long overlappingClaims = fabric.getOverlappingClaims();
  149.  
  150. assertEquals(4, overlappingClaims);
  151. }
  152. }
Add Comment
Please, Sign In to add comment