Code Duplication    Length = 15-15 lines in 6 locations

tests/VolumePackerTest.php 6 locations

@@ 17-31 (lines=15) @@
14
15
class VolumePackerTest extends TestCase
16
{
17
    public function testPackBoxThreeItemsFitEasily()
18
    {
19
20
        $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
21
22
        $items = new ItemList;
23
        $items->insert(new TestItem('Item 1', 250, 250, 2, 200));
24
        $items->insert(new TestItem('Item 2', 250, 250, 2, 200));
25
        $items->insert(new TestItem('Item 3', 250, 250, 2, 200));
26
27
        $packer = new VolumePacker($box, $items);
28
        $packedBox = $packer->pack();
29
30
        self::assertEquals(3, $packedBox->getItems()->count());
31
    }
32
33
    public function testPackBoxThreeItemsFitExactly()
34
    {
@@ 33-47 (lines=15) @@
30
        self::assertEquals(3, $packedBox->getItems()->count());
31
    }
32
33
    public function testPackBoxThreeItemsFitExactly()
34
    {
35
36
        $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
37
38
        $items = new ItemList;
39
        $items->insert(new TestItem('Item 1', 296, 296, 2, 200));
40
        $items->insert(new TestItem('Item 2', 296, 296, 2, 500));
41
        $items->insert(new TestItem('Item 3', 296, 296, 4, 290));
42
43
        $packer = new VolumePacker($box, $items);
44
        $packedBox = $packer->pack();
45
46
        self::assertEquals(3, $packedBox->getItems()->count());
47
    }
48
49
    public function testPackBoxThreeItemsFitExactlyNoRotation()
50
    {
@@ 64-78 (lines=15) @@
61
        self::assertEquals(2, $packedBox->getItems()->count());
62
    }
63
64
    public function testPackBoxThreeItemsFitSizeButOverweight()
65
    {
66
67
        $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
68
69
        $items = new ItemList;
70
        $items->insert(new TestItem('Item 1', 250, 250, 2, 400));
71
        $items->insert(new TestItem('Item 2', 250, 250, 2, 500));
72
        $items->insert(new TestItem('Item 3', 250, 250, 2, 200));
73
74
        $packer = new VolumePacker($box, $items);
75
        $packedBox = $packer->pack();
76
77
        self::assertEquals(2, $packedBox->getItems()->count());
78
    }
79
80
    public function testPackBoxThreeItemsFitWeightBut2Oversize()
81
    {
@@ 80-94 (lines=15) @@
77
        self::assertEquals(2, $packedBox->getItems()->count());
78
    }
79
80
    public function testPackBoxThreeItemsFitWeightBut2Oversize()
81
    {
82
83
        $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
84
85
        $items = new ItemList;
86
        $items->insert(new TestItem('Item 1', 297, 296, 2, 200));
87
        $items->insert(new TestItem('Item 2', 297, 296, 2, 500));
88
        $items->insert(new TestItem('Item 3', 296, 296, 4, 290));
89
90
        $packer = new VolumePacker($box, $items);
91
        $packedBox = $packer->pack();
92
93
        self::assertEquals(1, $packedBox->getItems()->count());
94
    }
95
96
    public function testPackTwoItemsFitExactlySideBySide()
97
    {
@@ 111-125 (lines=15) @@
108
        self::assertEquals(2, $packedBox->getItems()->count());
109
    }
110
111
    public function testPackThreeItemsBottom2FitSideBySideOneExactlyOnTop()
112
    {
113
114
        $box = new TestBox('Le box', 300, 300, 10, 10, 296, 296, 8, 1000);
115
116
        $items = new ItemList;
117
        $items->insert(new TestItem('Item 1', 248, 148, 4, 200));
118
        $items->insert(new TestItem('Item 2', 148, 248, 4, 200));
119
        $items->insert(new TestItem('Item 3', 296, 296, 4, 200));
120
121
        $packer = new VolumePacker($box, $items);
122
        $packedBox = $packer->pack();
123
124
        self::assertEquals(3, $packedBox->getItems()->count());
125
    }
126
127
    public function testPackThreeItemsBottom2FitSideBySideWithSpareSpaceOneOverhangSlightlyOnTop()
128
    {
@@ 127-141 (lines=15) @@
124
        self::assertEquals(3, $packedBox->getItems()->count());
125
    }
126
127
    public function testPackThreeItemsBottom2FitSideBySideWithSpareSpaceOneOverhangSlightlyOnTop()
128
    {
129
130
        $box = new TestBox('Le box', 250, 250, 10, 10, 248, 248, 8, 1000);
131
132
        $items = new ItemList;
133
        $items->insert(new TestItem('Item 1', 200, 200, 4, 200));
134
        $items->insert(new TestItem('Item 2', 110, 110, 4, 200));
135
        $items->insert(new TestItem('Item 3', 110, 110, 4, 200));
136
137
        $packer = new VolumePacker($box, $items);
138
        $packedBox = $packer->pack();
139
140
        self::assertEquals(3, $packedBox->getItems()->count());
141
    }
142
143
    public function testPackSingleItemFitsBetterRotated()
144
    {