quark_base_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package quark_base
  2. import (
  3. "testing"
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
  5. )
  6. type tester struct {
  7. t *testing.T
  8. }
  9. func TestQuarkBase(t *testing.T) {
  10. sf := &tester{
  11. t: t,
  12. }
  13. sf.new()
  14. sf.newMut()
  15. sf.newMass()
  16. }
  17. // Создаёт новый базовый кварк.
  18. func (sf *tester) new() {
  19. sf.t.Log("new")
  20. optMass := QBaseOptMass[quark_val.Fix, int](1)
  21. optVal := QBaseOptVal(5)
  22. qb := NewQBase(optMass, optVal)
  23. if qb.Mass() <= 0 {
  24. sf.t.Fatalf("new(): некорректная масса, получили %d, ожидали > 0", qb.Mass())
  25. }
  26. }
  27. // Создаёт мутировавший базовый кварк.
  28. func (sf *tester) newMut() {
  29. sf.t.Log("newMut")
  30. optMass := QBaseOptMass[quark_val.Mut, string](10)
  31. optVal := QBaseOptValMut("test")
  32. qb := NewQBaseMut(optMass, optVal)
  33. if qb.Mass() != 10 {
  34. sf.t.Fatalf("newMut(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 10)
  35. }
  36. quark_val.Set(qb.Val(), "test_new")
  37. }
  38. // Создаёт базовый кварк с заданной массой.
  39. func (sf *tester) newMass() {
  40. sf.t.Log("newMass")
  41. const wantMass = 42
  42. optMass := QBaseOptMass[quark_val.Fix, int](wantMass)
  43. optVal := QBaseOptVal(22)
  44. qb := NewQBase(optMass, optVal)
  45. if qb.Mass() != wantMass {
  46. sf.t.Fatalf("newMass(): некорректная масса, получили %d, ожидали %d", qb.Mass(), wantMass)
  47. }
  48. // Это не пройдёт -- кварк фиксированный
  49. // quark_val.Set(qb.Val(), 20)
  50. }