Skip to content
Snippets Groups Projects
Commit e4472909 authored by Hans Moog's avatar Hans Moog
Browse files

Feat: moving file to main computer

parent 895dfc09
No related branches found
No related tags found
No related merge requests found
package mana
import "math"
func CoinTimeDestroyed(transferredValue uint64, parkedTime uint64) uint64 {
return transferredValue * parkedTime
}
func ErodedGains(gainsPerInterval uint64, elapsedIntervals uint64) uint64 {
return uint64(float64(gainsPerInterval) * DECAY_FACTOR * (1 - math.Pow(DECAY_FACTOR, float64(elapsedIntervals))) / (1 - DECAY_FACTOR))
}
func ManaOfTransfer(value uint64, parkedTime uint64) uint64 {
fullErosionIntervals := parkedTime / DECAY_INTERVAL
if fullErosionIntervals >= 1 {
gainsPerInterval := CoinTimeDestroyed(value, DECAY_INTERVAL)
return ErodedGains(gainsPerInterval, fullErosionIntervals) + CoinTimeDestroyed(value, (parkedTime-fullErosionIntervals*DECAY_INTERVAL))
} else {
return CoinTimeDestroyed(value, parkedTime)
}
}
const (
DECAY_INTERVAL = 100
DECAY_FACTOR = 0.9
)
package mana
import (
"fmt"
"testing"
)
func TestManaOfTransfer(t *testing.T) {
fmt.Println(ManaOfTransfer(50, 99))
fmt.Println(ManaOfTransfer(50, 100))
fmt.Println(ManaOfTransfer(50, 200))
fmt.Println(ManaOfTransfer(50, 290))
fmt.Println(ManaOfTransfer(50, 300))
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment