package oracle import ( "testing" "time" ) func TestValidateMajority(t *testing.T) { now := time.Now() d1 := &OracleData{Key: "USD-BRL", Value: 5.00, Time: now} d2 := &OracleData{Key: "USD-BRL", Value: 5.01, Time: now.Add(-1 * time.Minute)} d3 := &OracleData{Key: "USD-BRL", Value: 4.99, Time: now.Add(-2 * time.Minute)} res, err := ValidateMajority([]*OracleData{d1, d2, d3}, 0.05) if err != nil { t.Fatalf("Falha ao validar maioria: %v", err) } if res == nil || res.Value == 0 { t.Error("Valor inválido retornado pelo consenso") } // sem consenso d4 := &OracleData{Key: "USD-BRL", Value: 3.0, Time: now} _, err = ValidateMajority([]*OracleData{d1, d4}, 0.001) if err == nil { t.Error("Esperado erro por falta de consenso") } }