You are here

function RecommenderMatrixTestCase::testVector in Recommender API 6.2

File

./recommender.test, line 23

Class

RecommenderMatrixTestCase

Code

function testVector() {
  $vec1 = Vector::create('RealVector', 5, 0);
  $vec1
    ->set(0, 1);
  $vec1
    ->set(2, 5);
  $vec1
    ->set(4, 3);
  $this
    ->assertEqual(5, $vec1
    ->count());
  $this
    ->assertEqual(1.8, $vec1
    ->mean());
  $array = array(
    1,
    1,
    5,
    0,
    3,
  );
  $vec2 = Vector::wrap('RealVector', $array);
  $this
    ->assertEqual(2, $vec2
    ->mean());
  $this
    ->assertEqual(3.2, $vec2
    ->variance());
  $this
    ->assertEqual(3.4, $vec2
    ->covariance($vec1));
  $this
    ->assertEqualX(0.9802, $vec1
    ->correlation($vec2));
  $vec3 = Vector::create('SparseVector', 5);
  $vec3
    ->set(0, 1);
  $vec3
    ->set(2, 5);
  $vec3
    ->set(4, 3);
  $this
    ->assertEqual(3, $vec3
    ->count());
  $this
    ->assertEqual(3, $vec3
    ->mean());
  $this
    ->assertEqual(8 / 3, $vec3
    ->variance());
  $array = array();
  $vec4 = Vector::wrap('SparseVector', $array);
  $this
    ->assertTrue(is_nan($vec4
    ->mean()));
  $vec3
    ->set(1, 1);
  $vec4
    ->set(0, 2);
  $vec4
    ->set(2, 4);
  $vec4
    ->set(4, 1);
  $this
    ->assertEqual(4 / 3, $vec3
    ->covariance($vec4));
  $this
    ->assertEqual(4 / 3, $vec4
    ->covariance($vec3));
  $this
    ->assertEqualX(0.6546999999999999, $vec3
    ->correlation($vec4));
  $vec5 = Vector::create('RealVector', 5, 1);
  $vec6 = Vector::create('RealVector', 5, 2);
  $this
    ->assertTrue(is_nan($vec5
    ->correlation($vec6)));
}