quark_bool_test.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package quark_bool
  2. import (
  3. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
  4. "testing"
  5. )
  6. type tester struct {
  7. t *testing.T
  8. }
  9. func TestQBool(t *testing.T) {
  10. sf := &tester{
  11. t: t,
  12. }
  13. sf.newTrueMut()
  14. sf.newFalseNotMut()
  15. sf.setValue()
  16. }
  17. // Создаёт булевый кварк со значением true и мутацией.
  18. func (sf *tester) newTrueMut() {
  19. sf.t.Log("создание булевого кварка: true, мутировавший")
  20. qb := NewQBoolMut(true)
  21. if qb == nil {
  22. sf.t.Fatalf("newTrueMut(): кварк не создан (nil)")
  23. }
  24. if !qb.Get() {
  25. sf.t.Fatalf("newTrueMut(): некорректное значение, получили %v, ожидали %v", qb.Get(), true)
  26. }
  27. if qb.Mass() != 1 {
  28. sf.t.Fatalf("newTrueMut(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 1)
  29. }
  30. }
  31. // Создаёт булевый кварк со значением false без мутации.
  32. func (sf *tester) newFalseNotMut() {
  33. sf.t.Log("создание булевого кварка: false, без мутации")
  34. qb := NewQBool(false)
  35. if qb == nil {
  36. sf.t.Fatalf("newFalseNotMut(): кварк не создан (nil)")
  37. }
  38. if qb.Get() {
  39. sf.t.Fatalf("newFalseNotMut(): некорректное значение, получили %v, ожидали %v", qb.Get(), false)
  40. }
  41. if qb.Mass() != 1 {
  42. sf.t.Fatalf("newFalseNotMut(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 1)
  43. }
  44. }
  45. // Проверяет установку значения через Set.
  46. func (sf *tester) setValue() {
  47. sf.t.Log("setValue")
  48. // Для изменения значения кварк должен быть мутируемым (isMut = true)
  49. qb := NewQBoolMut(false)
  50. if qb == nil {
  51. sf.t.Fatalf("setValue(): кварк не создан (nil)")
  52. }
  53. if qb.Get() {
  54. sf.t.Fatalf("setValue(): начальное значение некорректно, ожидается false")
  55. }
  56. quark_val.Set(qb.Val(), true)
  57. if !qb.Get() {
  58. sf.t.Fatalf("setValue(): значение после Set(true) некорректно, ожидается true")
  59. }
  60. quark_val.Set(qb.Val(), false)
  61. if qb.Get() {
  62. sf.t.Fatalf("setValue(): значение после Set(false) некорректно, ожидается false")
  63. }
  64. }