shithub: hugo

ref: ad2c0b561679b9a959c40e5278b31e7c657f9979
dir: /template/bundle/template_test.go/

View raw version
package bundle

import (
	"reflect"
	"testing"
)

func TestGt(t *testing.T) {
	for i, this := range []struct{
		left interface{}
		right interface{}
		leftShouldWin bool
	}{
		{ 5, 8, false },
		{ 8, 5, true },
		{ 5, 5, false },
		{ -2, 1, false },
		{ 2, -5, true },
		{ "8", "5", true },
		{ "5", "0001", true },
		{ []int{100,99}, []int{1,2,3,4}, false },
	} {
		leftIsBigger := Gt(this.left, this.right)
		if leftIsBigger != this.leftShouldWin {
			var which string
			if leftIsBigger {
				which = "expected right to be bigger, but left was"
			} else {
				which = "expected left to be bigger, but right was"
			}
			t.Errorf("[%d] %v compared to %v: %s", i, this.left, this.right, which)
		}
	}
}

func TestFirst(t *testing.T) {
	for i, this := range []struct{
		count int
		sequence interface{}
		expect interface{}
	} {
		{ 2, []string{"a", "b", "c"}, []string{"a", "b"} },
		{ 3, []string{"a", "b"}, []string{"a", "b"} },
		{ 2, []int{100, 200, 300}, []int{100, 200} },
	} {
		results, err := First(this.count, this.sequence)
		if err != nil {
			t.Errorf("[%d] failed: %s", i, err)
			continue
		}
		if !reflect.DeepEqual(results, this.expect) {
			t.Errorf("[%d] First %d items, got %v but expected %v", i, this.count, results, this.expect)
		}
	}
}