package freelist import ( "fmt" "testing" ) func createFreeList() (_ *FreeList, err error) { return New(Options{ PageSize: 20, BaseFilePath: "test.basefree", DeltaFilePath: "test.deltafree", FrozenPageCount: 2, }) } func TestBuffer(t *testing.T) { freeList, err := createFreeList() if err != nil { t.Fatal(err) } pageNumbers := []uint32{1, 2, 3, 4} //pageNumbers := []uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} err = freeList.AddPageNumbers(pageNumbers) if err != nil { t.Fatal(err) } for range len(pageNumbers) + 1 { pageNo, err := freeList.GetPageNumber() fmt.Println(pageNo, err) } } func TestSave(t *testing.T) { freeList, err := createFreeList() if err != nil { t.Fatal(err) } pageNumbers := []uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} err = freeList.AddPageNumbers(pageNumbers) if err != nil { t.Fatal(err) } err = freeList.Merge() if err != nil { t.Fatal(err) } // for range len(pageNumbers) + 1 { // pageNo, err := freeList.GetPageNumber() // fmt.Println(pageNo, err) // } } func TestDelta(t *testing.T) { freeList, err := createFreeList() if err != nil { t.Fatal(err) } serialized := []byte{9, 0, 0, 0, 10, 0, 0, 0} err = freeList.Restore(serialized) if err != nil { t.Fatal(err) } for range 3 { pageNo, err := freeList.GetPageNumber() fmt.Println(pageNo, err) } err = freeList.AddPageNumbers([]uint32{20, 21, 22}) if err != nil { t.Fatal(err) } err = freeList.AddPageNumbers([]uint32{23, 24, 25, 26}) if err != nil { t.Fatal(err) } serialized, err = freeList.Serialize() if err != nil { t.Fatal(err) } fmt.Println("free serialized:", serialized) err = freeList.Merge() if err != nil { t.Fatal(err) } } // func TestGetFromFreeList(t *testing.T) { // freeList, err := createFreeList() // if err != nil { // t.Fatal(err) // } // for range 4 { // pageNo, err := freeList.GetPageNumber() // fmt.Println(pageNo, err) // } // }