// +build veyronbluetooth,!android | |
package bluetooth | |
import ( | |
"math" | |
"testing" | |
"veyron/lib/unit" | |
) | |
func TestDistanceFromRSSI(t *testing.T) { | |
testcases := []struct { | |
rssi int | |
dist unit.Distance | |
}{ | |
{-45, 1 * unit.Meter}, | |
{-50, 1 * unit.Meter}, | |
{-55, 2 * unit.Meter}, | |
{-60, 4 * unit.Meter}, | |
{-65, 8 * unit.Meter}, | |
{-70, 13 * unit.Meter}, | |
{-80, 39 * unit.Meter}, | |
{-90, 113 * unit.Meter}, | |
} | |
for _, tc := range testcases { | |
d := distanceFromRSSI(tc.rssi) | |
if math.Trunc(d.Meters()) != tc.dist.Meters() { | |
t.Errorf("distanceFromRSSI(%d) = %v; want %v", tc.rssi, d, tc.dist) | |
} | |
} | |
} |