quark_bool_test.go 2.2 KB

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