public function test_should_bucket_allot_works_fine() { $bucket = new Bucket(10, 0.2); $bucket->push('aa', 0); $cargos = array(array('id' => 1, 'count' => 12), array('id' => 2, 'count' => 13), array('id' => 3, 'count' => 11), array('id' => 4, 'count' => 1), array('id' => 5, 'count' => 1)); foreach ($cargos as $row) { $bucket->push($row, $row['count']); } $this->assertEquals(array(array(array('size' => 12, 'data' => $cargos[0])), array(array('size' => 11, 'data' => $cargos[2]), array('size' => 1, 'data' => $cargos[3])), array(array('size' => 10, 'data' => $cargos[1]), array('size' => 1, 'data' => $cargos[4])), array(array('size' => 3, 'data' => $cargos[1]))), $bucket->allot()); }
/** * XXX : THIS IS A BUG CASE */ public function test_should_zero_cubage_works_fine() { $bucket = new Bucket(0, 0.2); $bucket->push('aa', 0); $cargos = array(array('id' => 1, 'count' => 2410000)); foreach ($cargos as $row) { $bucket->push($row, $row['count']); } $this->assertEquals(array(array(array('size' => 2000000, 'data' => $cargos[0])), array(array('size' => 410000, 'data' => $cargos[0]))), $bucket->allot()); }