package color

import (
	"testing"

	"p78git.ddns.net/svi/libtui/types"
)

/*
	Тест для объекта цвета
*/

type tester struct {
	t    *testing.T
	col  *Color
	icol types.IColor
}

func TestColor(t *testing.T) {
	test := &tester{
		t: t,
	}
	test.create()
	test.set()
}

// устанавливает цвет
func (sf *tester) set() {
	sf.t.Logf("set")
	sf.icol.Set(1, 3, 5)
	if col := sf.icol.Get(); col != 16843525 {
		sf.t.Fatalf("create(): color(%v)!=16843525", col)
	}
	if r := sf.icol.R(); r != 1 {
		sf.t.Fatalf("create(): red!=1")
	}
	if g := sf.icol.G(); g != 3 {
		sf.t.Fatalf("create(): green!=3")
	}
	if b := sf.icol.B(); b != 5 {
		sf.t.Fatalf("create(): blue(%v)!=5", b)
	}
}

// Создание цвета
func (sf *tester) create() {
	sf.t.Logf("create")
	sf.col = NewColor()
	if sf.col == nil {
		sf.t.Fatalf("create(): color==nil")
	}
	sf.icol = sf.col
	if col := sf.icol.Get(); col != 0 {
		sf.t.Fatalf("create(): color!=0")
	}
	if r := sf.icol.R(); r != 0 {
		sf.t.Fatalf("create(): red!=0")
	}
	if g := sf.icol.G(); g != 0 {
		sf.t.Fatalf("create(): green!=0")
	}
	if b := sf.icol.B(); b != 0 {
		sf.t.Fatalf("create(): blue!=0")
	}
}
