package main

import "testing"

func stamped(min, floor int64) view {
	return view{cable: cableView{min: min, floor: floor, ok: true}}
}

// Averaged across directions, since one direction alone carries a phy asymmetry
// that swamps the cable.
func TestCableMetresAveragesDirections(t *testing.T) {
	m, ok := cableMetres([]view{stamped(1000, 900), stamped(1100, 900)}, 5)
	if !ok || m != 30 {
		t.Errorf("cableMetres = %v, %v; want 30, true", m, ok)
	}
}

func TestCableMetresNeedsEveryDirection(t *testing.T) {
	if _, ok := cableMetres(nil, 5); ok {
		t.Error("no views should not yield a length")
	}
	if _, ok := cableMetres([]view{stamped(1000, 900), {}}, 5); ok {
		t.Error("a direction with no stamp yet should not yield a length")
	}
}
