예제 #1
0
func TestInvalidRuleNb(t *testing.T) {
	defer func() {
		if err := recover(); err == nil {
			t.Errorf("expected panic, nothing happened")
		}
	}()

	p := New()
	p.Add(sequential.New([]int{1}), 0)
}
예제 #2
0
파일: main.go 프로젝트: TeddyRilliot/list
func main() {
	seq := sequential.New(items)

	for l := 0; l < 3; l++ {
		fmt.Println("Loop ", l)
		for i := 1; i <= len(items); i++ {
			fmt.Printf("\t%v\n", seq.Next())
		}
	}
}
예제 #3
0
파일: main.go 프로젝트: TeddyRilliot/list
func main() {
	seq := sequential.New([]int{1, 2, 3})
	rnd := random.New([]string{"a", "b", "c"})

	prog := program.New()
	prog.Add(seq, 2)
	prog.Add(rnd, 2)

	for i := 0; i < 12; i++ {
		fmt.Printf("%v ", prog.Next())
	}
}
예제 #4
0
func TestProgramRule1x(t *testing.T) {
	p := New()
	p.Add(sequential.New([]int{1, 2, 3}), 1)

	exp := []interface{}{1, 2, 3, 1, 2, 3, 1, 2, 3}

	for i := 0; i < len(exp); i++ {
		v := p.Next()
		t.Logf("Loop %d, got %v", i, v)

		if v != exp[i] {
			t.Errorf("Expecting %v, got %v", exp[i], v)
		}
	}
}
예제 #5
0
func TestProgramRules1x(t *testing.T) {
	p := New()
	p.Add(sequential.New([]int{1, 2, 3}), 1)
	p.Add(random.New([]string{"a", "b", "c"}), 1)

	rand.Seed(1)
	exp := []interface{}{1, "b", 2, "c", 3, "a", 1, "a", 2, "b", 3, "c", 1, "c", 2, "b"}

	for i := 0; i < len(exp); i++ {
		v := p.Next()
		t.Logf("Loop %d, got %v", i, v)

		if v != exp[i] {
			t.Errorf("Expecting %v, got %v", exp[i], v)
		}
	}
}