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) // } // }