In service A I have a string that get hashed like this:
fun String.toHash(): Long {
    var hashCode = this.hashCode().toLong()
    if (hashCode < 0L) {
        hashCode *= -1
    }
    return hashCode
}
I want to replicate this code in service B written in Golang so for the same word I get the exact same hash. For what I understand from Kotlin's documentation the hash applied returns a 64bit integer. So in Go I am doing this:
func hash(s string) int64 {
    h := fnv.New64()
    h.Write([]byte(s))
    v := h.Sum64()
    return int64(v)
}
But while unit testing this I do not get the same value. I get:
func Test_hash(t *testing.T) {
    tests := []struct {
        input  string
        output int64
    }{
        {input: "papafritas", output: 1079370635},
    }
    for _, test := range tests {
        got := hash(test.input)
        assert.Equal(t, test.output, got)
    }
}
Result:
7841672725449611742
Am I doing something wrong?
 
    