package hashset

import (
	"bytes"
	"encoding/gob"
	"io/ioutil"
	"log"
	"testing"
)

func loadTestData() []int {
	log.SetFlags(log.Lshortfile)

	data, err := ioutil.ReadFile("../l.log")
	if err != nil {
		log.Println(err)
	}
	var l []int
	decoder := gob.NewDecoder(bytes.NewReader(data))
	decoder.Decode(&l)
	return l
}

func TestAdd(t *testing.T) {

	set := New()
	for i := 0; i < 10; i++ {
		set.Add(i)
	}

	if set.Size() != 10 {
		t.Error("size is not equals to 10")
	}
}

func TestRemove(t *testing.T) {
	set := New()

	for i := 0; i < 10; i++ {
		set.Add(i)
	}

	for i := 0; i < 9; i++ {
		set.Remove(i)
	}

	if set.Size() != 1 {
		t.Error("size is not equals to 0")
	}

	if set.Values()[0] != 9 {
		t.Error("remain is not 9")
	}
}