mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed? - Add fairLevel. - Implement fairness persistence in testTaskManager. ## Why? Start implementing matching task fairness. ## How did you test it? - [x] built - [x] covered by existing tests - [x] added new unit test(s)
32 lines
1.2 KiB
Go
32 lines
1.2 KiB
Go
package matching
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFairLevelLess(t *testing.T) {
|
|
assert.True(t, fairLevel{pass: 10, id: 100}.less(fairLevel{pass: 10, id: 105}))
|
|
assert.False(t, fairLevel{pass: 10, id: 100}.less(fairLevel{pass: 10, id: 100}))
|
|
assert.True(t, fairLevel{pass: 10, id: 100}.less(fairLevel{pass: 11, id: 100}))
|
|
assert.False(t, fairLevel{pass: 10, id: 100}.less(fairLevel{pass: 5, id: 105}))
|
|
}
|
|
|
|
func TestFairLevelComparator(t *testing.T) {
|
|
m := newFairLevelTreeMap()
|
|
a, b, c, d := fairLevel{pass: 10, id: 105}, fairLevel{pass: 10, id: 100}, fairLevel{pass: 11, id: 100}, fairLevel{pass: 5, id: 105}
|
|
m.Put(a, nil)
|
|
m.Put(b, nil)
|
|
m.Put(c, nil)
|
|
m.Put(d, nil)
|
|
assert.Equal(t, m.Keys(), []any{d, b, a, c})
|
|
}
|
|
|
|
func TestFairLevelMax(t *testing.T) {
|
|
assert.Equal(t, fairLevel{pass: 10, id: 105}, fairLevel{pass: 10, id: 100}.max(fairLevel{pass: 10, id: 105}))
|
|
assert.Equal(t, fairLevel{pass: 10, id: 100}, fairLevel{pass: 10, id: 100}.max(fairLevel{pass: 10, id: 100}))
|
|
assert.Equal(t, fairLevel{pass: 11, id: 100}, fairLevel{pass: 10, id: 100}.max(fairLevel{pass: 11, id: 100}))
|
|
assert.Equal(t, fairLevel{pass: 10, id: 100}, fairLevel{pass: 10, id: 100}.max(fairLevel{pass: 5, id: 105}))
|
|
}
|