daily pastebin goal
22%
SHARE
TWEET

Untitled

a guest Dec 10th, 2018 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top