Code Duplication    Length = 14-14 lines in 6 locations

tests/PackerTest.php 6 locations

@@ 14-27 (lines=14) @@
11
12
13
14
    public function testPackBoxThreeItemsFitEasily() {
15
16
      $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
17
18
      $items = new ItemList;
19
      $items->insert(new TestItem('Item 1', 250, 250, 2, 200));
20
      $items->insert(new TestItem('Item 2', 250, 250, 2, 200));
21
      $items->insert(new TestItem('Item 3', 250, 250, 2, 200));
22
23
      $packer = new Packer();
24
      $packedItems = $packer->packBox($box, $items);
25
26
      self::assertEquals(3, $packedItems->count());
27
    }
28
29
    public function testPackBoxThreeItemsFitExactly() {
30
@@ 29-42 (lines=14) @@
26
      self::assertEquals(3, $packedItems->count());
27
    }
28
29
    public function testPackBoxThreeItemsFitExactly() {
30
31
      $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
32
33
      $items = new ItemList;
34
      $items->insert(new TestItem('Item 1', 296, 296, 2, 200));
35
      $items->insert(new TestItem('Item 2', 296, 296, 2, 500));
36
      $items->insert(new TestItem('Item 3', 296, 296, 4, 290));
37
38
      $packer = new Packer();
39
      $packedItems = $packer->packBox($box, $items);
40
41
      self::assertEquals(3, $packedItems->count());
42
    }
43
44
    public function testPackBoxThreeItemsFitExactlyNoRotation() {
45
@@ 58-71 (lines=14) @@
55
      self::assertEquals(2, $packedItems->count());
56
    }
57
58
    public function testPackBoxThreeItemsFitSizeButOverweight() {
59
60
      $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
61
62
      $items = new ItemList;
63
      $items->insert(new TestItem('Item 1', 250, 250, 2, 400));
64
      $items->insert(new TestItem('Item 2', 250, 250, 2, 500));
65
      $items->insert(new TestItem('Item 3', 250, 250, 2, 200));
66
67
      $packer = new Packer();
68
      $packedItems = $packer->packBox($box, $items);
69
70
      self::assertEquals(2, $packedItems->count());
71
    }
72
73
    public function testPackBoxThreeItemsFitWeightBut2Oversize() {
74
@@ 73-86 (lines=14) @@
70
      self::assertEquals(2, $packedItems->count());
71
    }
72
73
    public function testPackBoxThreeItemsFitWeightBut2Oversize() {
74
75
      $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
76
77
      $items = new ItemList;
78
      $items->insert(new TestItem('Item 1', 297, 296, 2, 200));
79
      $items->insert(new TestItem('Item 2', 297, 296, 2, 500));
80
      $items->insert(new TestItem('Item 3', 296, 296, 4, 290));
81
82
      $packer = new Packer();
83
      $packedItems = $packer->packBox($box, $items);
84
85
      self::assertEquals(1, $packedItems->count());
86
    }
87
88
    public function testPackThreeItemsFitEasilyInSmallerOfTwoBoxes() {
89
@@ 265-278 (lines=14) @@
262
      self::assertEquals(2, $packedItems->count());
263
    }
264
265
    public function testPackThreeItemsBottom2FitSideBySideOneExactlyOnTop() {
266
267
      $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
268
269
      $items = new ItemList;
270
      $items->insert(new TestItem('Item 1', 248, 148, 4, 200));
271
      $items->insert(new TestItem('Item 2', 148, 248, 4, 200));
272
      $items->insert(new TestItem('Item 3', 296, 296, 4, 200));
273
274
      $packer = new Packer();
275
      $packedItems = $packer->packBox($box, $items);
276
277
      self::assertEquals(3, $packedItems->count());
278
    }
279
280
    public function testPackThreeItemsBottom2FitSideBySideWithSpareSpaceOneOverhangSlightlyOnTop() {
281
@@ 280-293 (lines=14) @@
277
      self::assertEquals(3, $packedItems->count());
278
    }
279
280
    public function testPackThreeItemsBottom2FitSideBySideWithSpareSpaceOneOverhangSlightlyOnTop() {
281
282
      $box = new TestBox('Le box', 250, 250, 10, 10, 248, 248, 8, 1000);
283
284
      $items = new ItemList;
285
      $items->insert(new TestItem('Item 1', 200, 200, 4, 200));
286
      $items->insert(new TestItem('Item 2', 110, 110, 4, 200));
287
      $items->insert(new TestItem('Item 3', 110, 110, 4, 200));
288
289
      $packer = new Packer();
290
      $packedItems = $packer->packBox($box, $items);
291
292
      self::assertEquals(3, $packedItems->count());
293
    }
294
295
    public function testPackSingleItemFitsBetterRotated() {
296