55 "testing"
66 "time"
77
8+ "github.com/shopspring/decimal"
89 "github.com/stretchr/testify/assert"
910 "github.com/stretchr/testify/require"
1011
@@ -22,43 +23,43 @@ func TestEquityShares(t *testing.T) {
2223// TestEquitySharesAverageEntryValuation is based on the spec example:
2324// https://github.com/vegaprotocol/product/blob/02af55e048a92a204e9ee7b7ae6b4475a198c7ff/specs/0042-setting-fees-and-rewarding-lps.md#calculating-liquidity-provider-equity-like-share
2425func testAverageEntryValuation (t * testing.T ) {
25- es := execution .NewEquityShares (100 )
26+ es := execution .NewEquityShares (decimal . NewFromFloat ( 100. ) )
2627
27- es .SetPartyStake ("LP1" , 100 )
28- require .EqualValues (t , 100 , es .AvgEntryValuation ("LP1" ))
28+ es .SetPartyStake ("LP1" , uint64 ( 100 ) )
29+ require .EqualValues (t , decimal . NewFromFloat ( 100. ) , es .AvgEntryValuation ("LP1" ))
2930
30- es .SetPartyStake ("LP1" , 200 )
31- require .EqualValues (t , 100 , es .AvgEntryValuation ("LP1" ))
31+ es .SetPartyStake ("LP1" , uint64 ( 200 ) )
32+ require .True (t , decimal . NewFromFloat ( 100. ). Equal ( es .AvgEntryValuation ("LP1" ) ))
3233
33- es .WithMVP (200 ) .SetPartyStake ("LP2" , 200 )
34- require .EqualValues (t , 200 , es .AvgEntryValuation ("LP2" ))
35- require .EqualValues (t , 100 , es .AvgEntryValuation ("LP1" ))
34+ es .WithMVP (decimal . NewFromFloat ( 200. )) .SetPartyStake ("LP2" , uint64 ( 200 ) )
35+ require .True (t , decimal . NewFromFloat ( 200. ). Equal ( es .AvgEntryValuation ("LP2" ) ))
36+ require .True (t , decimal . NewFromFloat ( 100. ). Equal ( es .AvgEntryValuation ("LP1" ) ))
3637
37- es .WithMVP (400 ) .SetPartyStake ("LP1" , 300 )
38- require .EqualValues (t , 120 , es .AvgEntryValuation ("LP1" ))
38+ es .WithMVP (decimal . NewFromFloat ( 400. )) .SetPartyStake ("LP1" , uint64 ( 300 ) )
39+ require .True (t , decimal . NewFromFloat ( 120. ). Equal ( es .AvgEntryValuation ("LP1" ) ))
3940
40- es .SetPartyStake ("LP1" , 1 )
41- require .EqualValues (t , 120 , es .AvgEntryValuation ("LP1" ))
42- require .EqualValues (t , 200 , es .AvgEntryValuation ("LP2" ))
41+ es .SetPartyStake ("LP1" , uint64 ( 1 ) )
42+ require .True (t , decimal . NewFromFloat ( 120. ). Equal ( es .AvgEntryValuation ("LP1" ) ))
43+ require .True (t , decimal . NewFromFloat ( 200. ). Equal ( es .AvgEntryValuation ("LP2" ) ))
4344}
4445
4546func testShares (t * testing.T ) {
4647 var (
47- oneSixth = 1.0 / 6
48- oneThird = 1.0 / 3
49- oneFourth = 1.0 / 4
50- threeFourth = 3.0 / 4
51- twoThirds = 2.0 / 3
52- half = 1.0 / 2
48+ oneSixth = decimal . NewFromFloat ( 1.0 ). Div ( decimal . NewFromFloat ( 6. ))
49+ oneThird = decimal . NewFromFloat ( 1.0 ). Div ( decimal . NewFromFloat ( 3. ))
50+ oneFourth = decimal . NewFromFloat ( 1.0 ). Div ( decimal . NewFromFloat ( 4. ))
51+ threeFourth = decimal . NewFromFloat ( 3.0 ). Div ( decimal . NewFromFloat ( 4. ))
52+ twoThirds = decimal . NewFromFloat ( 2.0 ). Div ( decimal . NewFromFloat ( 3. ))
53+ half = decimal . NewFromFloat ( 1.0 ). Div ( decimal . NewFromFloat ( 2. ))
5354 )
5455
55- es := execution .NewEquityShares (100 )
56+ es := execution .NewEquityShares (decimal . NewFromFloat ( 100. ) )
5657
5758 // Set LP1
5859 es .SetPartyStake ("LP1" , 100 )
5960 t .Run ("LP1" , func (t * testing.T ) {
6061 s := es .Shares (map [string ]struct {}{})
61- assert .Equal (t , 1.0 , s ["LP1" ])
62+ assert .True (t , decimal . NewFromFloat ( 1.0 ). Equal ( s ["LP1" ]) )
6263 })
6364
6465 // Set LP2
@@ -69,7 +70,7 @@ func testShares(t *testing.T) {
6970
7071 assert .Equal (t , oneThird , lp1 )
7172 assert .Equal (t , twoThirds , lp2 )
72- assert .Equal (t , 1.0 , lp1 + lp2 )
73+ assert .True (t , decimal . NewFromFloat ( 1.0 ). Equal ( lp1 . Add ( lp2 )) )
7374 })
7475
7576 // Set LP3
@@ -82,7 +83,7 @@ func testShares(t *testing.T) {
8283 assert .Equal (t , oneSixth , lp1 )
8384 assert .Equal (t , oneThird , lp2 )
8485 assert .Equal (t , half , lp3 )
85- assert .Equal (t , 1.0 , lp1 + lp2 + lp3 )
86+ assert .True (t , decimal . NewFromFloat ( 1.0 ). Equal ( lp1 . Add ( lp2 ). Add ( lp3 )) )
8687 })
8788
8889 // LP2 is undeployed
@@ -97,7 +98,7 @@ func testShares(t *testing.T) {
9798 assert .Equal (t , oneFourth , lp1 )
9899 // assert.Equal(t, oneThird, lp2)
99100 assert .Equal (t , threeFourth , lp3 )
100- assert .Equal (t , 1.0 , lp1 + lp3 )
101+ assert .True (t , decimal . NewFromFloat ( 1.0 ). Equal ( lp1 . Add ( lp3 )) )
101102 })
102103}
103104
0 commit comments