package client

import (
	"context"
	"math"
	"testing"
	"time"
)

func TestBackoff(t *testing.T) {
	delta := time.Duration(0)

	c := NewClient()

	for i := 0; i < 5; i++ {
		d, err := exponentialBackoff(context.TODO(), c.NewRequest("test", "test", nil), i)
		if err != nil {
			t.Fatal(err)
		}

		if d < delta {
			t.Fatalf("Expected greater than %v, got %v", delta, d)
		}

		delta = time.Millisecond * time.Duration(math.Pow(10, float64(i+1)))
	}
}