package quark_bool import ( "testing" ) type tester struct { t *testing.T } func TestQBool(t *testing.T) { sf := &tester{ t: t, } sf.newTrueMut() sf.newFalseNotMut() sf.setValue() } // Создаёт булевый кварк со значением true и мутацией. func (sf *tester) newTrueMut() { sf.t.Log("создание булевого кварка: true, мутировавший") qb := NewQBoolMut(true) if qb == nil { sf.t.Fatalf("newTrueMut(): кварк не создан (nil)") } if !qb.Get() { sf.t.Fatalf("newTrueMut(): некорректное значение, получили %v, ожидали %v", qb.Get(), true) } if qb.Mass() != 1 { sf.t.Fatalf("newTrueMut(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 1) } } // Создаёт булевый кварк со значением false без мутации. func (sf *tester) newFalseNotMut() { sf.t.Log("создание булевого кварка: false, без мутации") qb := NewQBool(false) if qb == nil { sf.t.Fatalf("newFalseNotMut(): кварк не создан (nil)") } if qb.Get() { sf.t.Fatalf("newFalseNotMut(): некорректное значение, получили %v, ожидали %v", qb.Get(), false) } if qb.Mass() != 1 { sf.t.Fatalf("newFalseNotMut(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 1) } } // Проверяет установку значения через Set. func (sf *tester) setValue() { sf.t.Log("setValue") // Для изменения значения кварк должен быть мутируемым (isMut = true) qb := NewQBoolMut(false) if qb == nil { sf.t.Fatalf("setValue(): кварк не создан (nil)") } if qb.Get() { sf.t.Fatalf("setValue(): начальное значение некорректно, ожидается false") } Set(qb, true) if !qb.Get() { sf.t.Fatalf("setValue(): значение после Set(true) некорректно, ожидается true") } Set(qb, false) if qb.Get() { sf.t.Fatalf("setValue(): значение после Set(false) некорректно, ожидается false") } }