package pos

import (
	"testing"

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

/*
	Тест для позиции на экране
*/

// Тестер для позиции
type tester struct {
	t    *testing.T
	pos  *Pos
	ipos types.IPos
}

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

// Установка значения
func (sf *tester) set() {
	sf.t.Logf("create()")
	x, y := sf.ipos.Get()
	if x != 0 {
		sf.t.Fatalf("set(): x(%v)!=0", x)
	}
	if y != 0 {
		sf.t.Fatalf("set(): y(%v)!=0", y)
	}
	sf.ipos.Set(-5, 3)
	x, y = sf.ipos.Get()
	if x != -5 {
		sf.t.Fatalf("set(): x(%v)!=-5", x)
	}
	if y != 3 {
		sf.t.Fatalf("set(): y(%v)!=3", y)
	}
}

// Создание позиции
func (sf *tester) create() {
	sf.t.Logf("create")
	sf.pos = NewPos()
	if sf.pos == nil {
		sf.t.Fatalf("create(): ")
	}
	sf.ipos = sf.pos

	if x := sf.ipos.X(); x == nil {
		sf.t.Fatalf("create(): x==nil")
	}
	if y := sf.ipos.Y(); y == nil {
		sf.t.Fatalf("create(): y==nil")
	}
}
