Sitelet https://github.com/Fantom-foundation/go-opera/commit/1003b7914af5b8f69eef8aaa5f98db308c7cd955
Skip to content

Commit 1003b79

Browse files
committed
piecefunc: additional tests
1 parent f4d8be3 commit 1003b79

1 file changed

Lines changed: 87 additions & 0 deletions

File tree

‎utils/piecefunc/piecefunc_test.go‎

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,91 @@ func TestFuncCheck(t *testing.T) {
126126
},
127127
})
128128
})
129+
require.Panics(func() {
130+
// too large val
131+
NewFunc([]Dot{
132+
{
133+
X: 0,
134+
Y: 0,
135+
},
136+
{
137+
X: maxVal + 1,
138+
Y: 1,
139+
},
140+
})
141+
})
142+
require.Panics(func() {
143+
// too large val
144+
NewFunc([]Dot{
145+
{
146+
X: 0,
147+
Y: 0,
148+
},
149+
{
150+
X: 1,
151+
Y: maxVal + 1,
152+
},
153+
})
154+
})
155+
require.Panics(func() {
156+
// too large val
157+
NewFunc([]Dot{
158+
{
159+
X: maxVal + 1,
160+
Y: maxVal + 1,
161+
},
162+
{
163+
X: maxVal + 2,
164+
Y: maxVal + 2,
165+
},
166+
})
167+
})
168+
}
169+
170+
func TestCustomFunc(t *testing.T) {
171+
require := require.New(t)
172+
173+
var f = NewFunc([]Dot{
174+
{
175+
X: 1,
176+
Y: 0.0 * DecimalUnit,
177+
},
178+
{
179+
X: 10.0 * DecimalUnit,
180+
Y: 10.0 * DecimalUnit,
181+
},
182+
{
183+
X: 20.0 * DecimalUnit,
184+
Y: 40.0 * DecimalUnit,
185+
},
186+
{
187+
X: 25.0 * DecimalUnit,
188+
Y: 41.0 * DecimalUnit,
189+
},
190+
{
191+
X: maxVal,
192+
Y: maxVal,
193+
},
194+
})
195+
196+
require.Equal(uint64(0), f(0))
197+
require.Equal(uint64(0), f(1))
198+
require.Equal(uint64(0), f(10))
199+
require.Equal(uint64(10), f(11))
200+
require.Equal(uint64(4.99999*DecimalUnit), f(5.0*DecimalUnit))
201+
require.Equal(uint64(10.0*DecimalUnit), f(10.0*DecimalUnit))
202+
require.Equal(uint64(25.0*DecimalUnit), f(15.0*DecimalUnit))
203+
require.Equal(uint64(34.0*DecimalUnit), f(18.0*DecimalUnit))
204+
require.Equal(uint64(37.0*DecimalUnit), f(19.0*DecimalUnit))
205+
require.Equal(uint64(37.3*DecimalUnit), f(19.1*DecimalUnit))
206+
require.Equal(uint64(40.0*DecimalUnit), f(20.0*DecimalUnit))
207+
require.Equal(uint64(40.4*DecimalUnit), f(22.0*DecimalUnit))
208+
require.Equal(uint64(41*DecimalUnit), f(25.0*DecimalUnit))
209+
require.Equal(uint64(250012.273351*DecimalUnit), f(250000.0*DecimalUnit))
210+
require.Equal(uint64(2500011.987361*DecimalUnit), f(2500000.0*DecimalUnit))
211+
require.Equal(uint64(maxVal-18446704-18446703), f(maxVal-18446704-16))
212+
require.Equal(uint64(maxVal-18446704), f(maxVal-18446704-15))
213+
require.Equal(uint64(maxVal-18446704), f(maxVal-1))
214+
require.Equal(uint64(maxVal), f(maxVal))
215+
require.Equal(uint64(maxVal), f(math.MaxUint64))
129216
}

0 commit comments

Comments
 (0)