Product extends MetricScalar<T> { @Override public T value(final MetricSpaceField<T> field) { return field.actual(field.product().product(this.first, this.second)); } Product(final Vect<T> first, final Vect<T> second); @Override T value(final MetricSpaceField<T> field);  }
@Test public void errorsWhenNoMetricSpace() { this.thrown.expect(UnsupportedOperationException.class); final int dim = 6; final Vect<Object> first = new FixedVector<>(new Scalars<>(dim)); final Vect<Object> second = new FixedVector<>(new Scalars<>(dim)); new Product<>(first, second).value(new SpyField<>(new Object(), new Object())); }