github.com/haraldrudell/parl@v0.4.176/atomic-min_test.go (about) 1 /* 2 © 2023–present Harald Rudell <harald.rudell@gmail.com> (https://haraldrudell.github.io/haraldrudell/) 3 ISC License 4 */ 5 6 package parl 7 8 import ( 9 "math" 10 "testing" 11 ) 12 13 func TestAtomicMin(t *testing.T) { 14 var value1 uint64 = math.MaxUint64 - 2 15 var value2 uint64 = 1 16 var value3 uint64 = 3 17 18 var value uint64 19 var hasValue bool 20 21 var min AtomicMin[uint64] 22 23 if _, hasValue = min.Min(); hasValue { 24 t.Error("1 hasValue true") 25 } 26 27 if !min.Value(value1) { 28 t.Error("2 not min") 29 } 30 31 if value, hasValue = min.Min(); !hasValue { 32 t.Error("3 hasValue false") 33 } 34 if value != value1 { 35 t.Errorf("3 value %d exp %d", value, value1) 36 } 37 38 if !min.Value(value2) { 39 t.Error("4 not min") 40 } 41 42 if value, hasValue = min.Min(); !hasValue { 43 t.Error("5 hasValue false") 44 } 45 if value != value2 { 46 t.Errorf("5 value %d exp %d", value, value2) 47 } 48 49 if min.Value(value3) { 50 t.Error("6 min") 51 } 52 53 if value, hasValue = min.Min(); !hasValue { 54 t.Error("7 hasValue false") 55 } 56 if value != value2 { 57 t.Errorf("7 value %d exp %d", value, value2) 58 } 59 60 }