package quark_base import ( "testing" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val" ) type tester struct { t *testing.T } func TestQuarkBase(t *testing.T) { sf := &tester{ t: t, } sf.new() sf.newMut() sf.newMass() } // Создаёт новый базовый кварк func (sf *tester) new() { sf.t.Log("new") optMass := QBaseOptMass[quark_val.Fix, int](1) optVal := QBaseOptVal(5) qb := NewQBase(optMass, optVal) if qb.Mass() <= 0 { sf.t.Fatalf("new(): некорректная масса, получили %d, ожидали > 0", qb.Mass()) } } // Создаёт мутировавший базовый кварк func (sf *tester) newMut() { sf.t.Log("newMut") optMass := QBaseOptMass[quark_val.Mut, string](10) optVal := QBaseOptValMut("test") qb := NewQBaseMut(optMass, optVal) if qb.Mass() != 10 { sf.t.Fatalf("newMut(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 10) } quark_val.Set(qb.Val(), "test_new") } // Создаёт базовый кварк с заданной массой func (sf *tester) newMass() { sf.t.Log("newMass") const wantMass = 42 optMass := QBaseOptMass[quark_val.Fix, int](wantMass) optVal := QBaseOptVal(22) qb := NewQBase(optMass, optVal) if qb.Mass() != wantMass { sf.t.Fatalf("newMass(): некорректная масса, получили %d, ожидали %d", qb.Mass(), wantMass) } // Это не пройдёт -- кварк фиксированный // quark_val.Set(qb.Val(), 20) }