package deletemiddle_test import ( "testing" dm "git.jxs.me/leetgo/deletemiddle" "github.com/stretchr/testify/require" ) func buildList(values []int) *dm.ListNode { var result *dm.ListNode for i := len(values) - 1; i >= 0; i-- { result = &dm.ListNode{Val: values[i], Next: result} } return result } func TestEmpty(t *testing.T) { var head *dm.ListNode require.Nil(t, dm.Delete(head)) } func TestOne(t *testing.T) { head := buildList([]int{1}) require.Nil(t, dm.Delete(head)) } func TestTwo(t *testing.T) { head := buildList([]int{2, 1}) expected := buildList([]int{2}) require.Equal(t, expected, dm.Delete(head)) } func TestFour(t *testing.T) { head := buildList([]int{1, 2, 3, 4}) expected := buildList([]int{1, 2, 4}) require.Equal(t, expected, dm.Delete(head)) } func TestExample1(t *testing.T) { head := buildList([]int{1, 3, 4, 7, 1, 2, 6}) expected := buildList([]int{1, 3, 4, 1, 2, 6}) require.Equal(t, expected, dm.Delete(head)) }