package size

import (
	"testing"

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

/*

	Тест для объекта размера

*/

// Тестер для объекта позиции
type tester struct {
	t   *testing.T
	sz  *Size
	isz types.ISize
}

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

// Устанавливает позицию объекта
func (sf *tester) set() {
	sf.t.Logf("set")
	sf.isz.Set(12, -5)
	x0, y0 := sf.isz.Get()
	if x0 != 12 {
		sf.t.Fatalf("create(): x0(%v)!=12", x0)
	}
	if y0 != -5 {
		sf.t.Fatalf("create(): y0(%v)!=-5", y0)
	}
}

// Создаёт объект размера
func (sf *tester) create() {
	sf.t.Logf("create")
	sf.sz = NewSize()
	if sf.sz == nil {
		sf.t.Fatalf("create(): size==nil")
	}
	sf.isz = sf.sz
	x := sf.isz.X()
	if x == nil {
		sf.t.Fatalf("create(): x==nil")
	}
	if x := x.Get(); x != 0 {
		sf.t.Fatalf("create(): x(%v)!=0", x)
	}

	y := sf.isz.Y()
	if y == nil {
		sf.t.Fatalf("create(): y==nil")
	}
	if y := y.Get(); y != 0 {
		sf.t.Fatalf("create(): y(%v)!=0", y)
	}

	x0, y0 := sf.isz.Get()
	if x0 != 0 {
		sf.t.Fatalf("create(): x0(%v)!=0", x0)
	}
	if y0 != 0 {
		sf.t.Fatalf("create(): y0(%v)!=0", y0)
	}
}
