public function testComputeSimilarity2() { $instance = new KNNModelBuilder(null, new CosineSimilarity()); $source = new ObjectSet(Rating::class); $destination = new ObjectSet(Rating::class); $node1 = new FakeNode(1); $node2 = new FakeNode(2); $node3 = new FakeNode(3); $node4 = new FakeNode(4); $node5 = new FakeNode(5); $source->add(new Rating(1, $node1->identity())); $source->add(new Rating(3, $node4->identity())); $destination->add(new Rating(1, $node2->identity())); $destination->add(new Rating(2, $node4->identity())); $destination->add(new Rating(5, $node5->identity())); $similarity = $instance->computeSimilarity($source, $destination); $this->assertTrue($similarity >= 0.34641016 && $similarity <= 0.346410161514); }