Example #1
0
def test_ndcg():
    x = []
    k = 4
    assert_eq(ndcg.dcg(x, k), 0)

    x = [1, 1, 1]
    k = 5
    assert_eq(ndcg.dcg(x, k), 1 * (1 + 1 / np.log2(3) + 1 / np.log2(4)))
    k = 1
    assert_eq(ndcg.dcg(x, k), 1)

    x = [[1, 1, 1], [1, 2, 3]]
    k = 3
    res = ndcg.dcg(x, k)
    assert_eq(res[0], 1 * (1 + 1 / np.log2(3) + 1 / np.log2(4)))
    assert_eq(res[1], 1 + 3 / np.log2(3) + 7 / np.log2(4))

    x = [1, 2, 3]
    opt_x = [3, 2, 1]
    k = 3
    assert_eq(ndcg.ndcg(x, k), ndcg.dcg(x, k) / ndcg.dcg(opt_x, k))

    x = [1, 1, 1]
    assert_eq(ndcg.ndcg(x, k), 1)

    x = []
    assert_eq(ndcg.ndcg(x, k), 0)
Example #2
0
    def test_param_stomping(self):
        testval_init = np.asarray([3, 2, 3, 0])
        testval = np.asarray([3, 2, 3, 0])

        x = ndcg.ndcg(testval, 4, False)
        self.assertEqual(testval_init.tolist(), testval.tolist())

        x = ndcg.idcg(testval, False)
        self.assertEqual(testval_init.tolist(), testval.tolist())

        x = ndcg.dcg(testval, False)
        self.assertEqual(testval_init.tolist(), testval.tolist())

        x = ndcg.cum_gain(testval)
        self.assertEqual(testval_init.tolist(), testval.tolist())
Example #3
0
    def test_param_stomping(self):
        testval_init = np.asarray([3, 2, 3, 0])
        testval = np.asarray([3, 2, 3, 0])

        x = ndcg.ndcg(testval, 4, False)
        self.assertEqual(testval_init.tolist(), testval.tolist())

        x = ndcg.idcg(testval, False)
        self.assertEqual(testval_init.tolist(), testval.tolist())

        x = ndcg.dcg(testval, False)
        self.assertEqual(testval_init.tolist(), testval.tolist())

        x = ndcg.cum_gain(testval)
        self.assertEqual(testval_init.tolist(), testval.tolist())
Example #4
0
 def test_dcg_alternate(self):
     self.assertAlmostEqual(2.0616063, ndcg.dcg([1, 1, 0, 1]))
     self.assertAlmostEqual(579.0656625, ndcg.dcg([8, 9, 1, 0, 2]))
Example #5
0
 def test_dcg(self):
     self.assertAlmostEqual(2.5, ndcg.dcg([1, 1, 0, 1], False))
     self.assertAlmostEqual(18.4922829, ndcg.dcg([8, 9, 1, 0, 2], False))
     # from wikipedia
     self.assertAlmostEqual(8.0971714, ndcg.dcg([3, 2, 3, 0, 1, 2], False))
Example #6
0
 def test_dcg_zeros(self):
     self.assertAlmostEqual(0.0, ndcg.dcg([0, 0, 0, 0]))
     self.assertAlmostEqual(0.0, ndcg.dcg([0, 0, 0, 0], False))
Example #7
0
 def test_dcg_none(self):
     self.assertAlmostEqual(0.0, ndcg.dcg(None))
     self.assertAlmostEqual(0.0, ndcg.dcg([]))
     self.assertAlmostEqual(0.0, ndcg.dcg(np.asarray([])))
Example #8
0
 def test_dcg_alternate(self):
     self.assertAlmostEqual(2.0616063, ndcg.dcg([1, 1, 0, 1]))
     self.assertAlmostEqual(579.0656625, ndcg.dcg([8, 9, 1, 0, 2]))
Example #9
0
 def test_dcg(self):
     self.assertAlmostEqual(2.5, ndcg.dcg([1, 1, 0, 1], False))
     self.assertAlmostEqual(18.4922829, ndcg.dcg([8, 9, 1, 0, 2], False))
     # from wikipedia
     self.assertAlmostEqual(8.0971714, ndcg.dcg([3, 2, 3, 0, 1, 2], False))
Example #10
0
 def test_dcg_zeros(self):
     self.assertAlmostEqual(0.0, ndcg.dcg([0, 0, 0, 0]))
     self.assertAlmostEqual(0.0, ndcg.dcg([0, 0, 0, 0], False))
Example #11
0
 def test_dcg_none(self):
     self.assertAlmostEqual(0.0, ndcg.dcg(None))
     self.assertAlmostEqual(0.0, ndcg.dcg([]))
     self.assertAlmostEqual(0.0, ndcg.dcg(np.asarray([])))