| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package quark_byte
- import (
- "testing"
- )
- type tester struct {
- t *testing.T
- }
- func TestQByte(t *testing.T) {
- sf := &tester{
- t: t,
- }
- sf.newMut()
- sf.newFix()
- sf.convertInt()
- sf.convertStr()
- }
- // Создаёт мутируемый кварк байта и проверяет базовые свойства
- func (sf *tester) newMut() {
- sf.t.Log("newMut")
- const wantVal byte = 42
- qb := NewQByteMut(wantVal)
- if qb == nil {
- sf.t.Fatalf("newMut(): кварк не создан (nil)")
- }
- if qb.Mass() != 1 {
- sf.t.Fatalf("newMut(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 1)
- }
- if qb.Get() != wantVal {
- sf.t.Fatalf("newMut(): некорректное значение, получили %d, ожидали %d", qb.Get(), wantVal)
- }
- // Проверяем, что Set меняет значение для мутируемого кварка
- const newVal byte = 7
- Set(qb, newVal)
- if qb.Get() != newVal {
- sf.t.Fatalf("newMut(): значение после Set() некорректно, получили %d, ожидали %d", qb.Get(), newVal)
- }
- }
- // Создаёт кварк байта и проверяет базовые свойства (без изменения значения)
- func (sf *tester) newFix() {
- sf.t.Log("newFix")
- const wantVal byte = 10
- qb := NewQByte(wantVal)
- if qb == nil {
- sf.t.Fatalf("newFix(): кварк не создан (nil)")
- }
- if qb.Mass() != 1 {
- sf.t.Fatalf("newFix(): некорректная масса, получили %d, ожидали %d", qb.Mass(), 1)
- }
- if qb.Get() != wantVal {
- sf.t.Fatalf("newFix(): некорректное значение, получили %d, ожидали %d", qb.Get(), wantVal)
- }
- }
- // Проверяет преобразование в/из int
- func (sf *tester) convertInt() {
- sf.t.Log("convertInt")
- const srcVal byte = 100
- qb := NewQByteMut(srcVal)
- if qb == nil {
- sf.t.Fatalf("convertInt(): кварк не создан (nil)")
- }
- if qb.ToInt() != int(srcVal) {
- sf.t.Fatalf("convertInt(): ToInt() вернул %d, ожидали %d", qb.ToInt(), int(srcVal))
- }
- const newIntVal = 200
- FromInt(qb, newIntVal)
- if qb.Get() != byte(newIntVal) {
- sf.t.Fatalf("convertInt(): FromInt() установил %d, ожидали %d", qb.Get(), byte(newIntVal))
- }
- }
- // Проверяет преобразование в/из строки
- func (sf *tester) convertStr() {
- sf.t.Log("проверка преобразования в/из строки")
- const srcVal byte = 5
- qb := NewQByteMut(srcVal)
- if qb == nil {
- sf.t.Fatalf("convertStr(): кварк не создан (nil)")
- }
- // ToStr должен возвращать строковое представление байта как числа
- strVal := qb.ToStr()
- if strVal != "5" {
- sf.t.Fatalf("convertStr(): ToStr() вернул %q, ожидали 5", strVal)
- }
- // FromStr использует StrToInt, поэтому передаём числовую строку
- const newIntVal = 13
- FromStr(qb, "13")
- if qb.Get() != byte(newIntVal) {
- sf.t.Fatalf("convertStr(): FromStr() установил %d, ожидали %d", qb.Get(), byte(newIntVal))
- }
- }
|