package fit
import (
"sort"
"testing"
)
func TestBinAdd(t *testing.T) {
b := newBin(10)
x := testItem(3)
y := testItem(4)
b.add(&x)
b.add(&y)
if len(b.items) != 2 {
t.Fail()
}
if b.items[0].Size() != 3 || b.items[1].Size() != 4 {
t.Fail()
}
}
func TestBinFits(t *testing.T) {
b := newBin(10)
x := testItem(3)
y := testItem(8)
z := testItem(6)
b.add(&x)
if b.fits(&y) {
t.Fail()
}
if !b.fits(&z) {
t.Fail()
}
}
func TestBinItems(t *testing.T) {
b := newBin(10)
x := testItem(3)
y := testItem(4)
b.add(&x)
b.add(&y)
if b.Items()[0].Size() != 3 || b.Items()[1].Size() != 4 {
t.Fail()
}
}
func TestBinsBySize(t *testing.T) {
bins := []Bin{Bin{capacity: 3, size: 3}, Bin{capacity: 2, size: 2}, Bin{capacity: 1, size: 1}}
sort.Sort(BinsBySize(bins))
if bins[0].capacity != 1 || bins[1].capacity != 2 || bins[2].capacity != 3 {
t.Fail()
}
}