示例#1
0
def test_perfect_dcg_at_all():
    p = Variable(np.array([[0, 1, 2, 3, 4]]))
    y = Variable(np.array([[2, 2, 1, 1, 0]]))
    expected = np.array([[3., 4.89278926, 5.39278926, 5.82346582, 5.82346582]])
    assert_allclose(dcg(p, y, k=-1).data, expected)
示例#2
0
def test_perfect_dcg():
    p = Variable(np.array([[0, 1, 2, 3, 4]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y).data, 5.392789)
示例#3
0
def test_empty_dcg():
    p = Variable(np.array([[]]))
    y = Variable(np.array([[]]))
    assert_allclose(dcg(p, y).data, 0.0)
示例#4
0
def test_worst_dcg_at_5():
    p = Variable(np.array([[4, 3, 2, 0, 1]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y, k=5).data, 2.9525880959238044)
示例#5
0
def test_zero_dcg():
    p = Variable(np.array([[4, 3, 2, 1, 0]]))
    y = Variable(np.array([[0, 0, 0, 0, 0]]))
    assert_allclose(dcg(p, y).data, 0.0)
示例#6
0
def test_worst_dcg_2d():
    p = Variable(np.array([[4, 3, 2, 1, 0], [2, 1, 0, 4, 3]]))
    y = Variable(np.array([[2, 2, 1, 0, 0], [2, 1, 0, 0, 0]]))
    nr_docs = Variable(np.array([5, 3]))
    expected = np.array([2.9525881, 2.13092975])
    assert_allclose(dcg(p, y, nr_docs=nr_docs).data, expected)
示例#7
0
def test_perfect_dcg_at_5():
    p = Variable(np.array([[0, 1, 2, 3, 4]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y, k=5).data, 5.392789260714372)
示例#8
0
def test_worst_dcg_no_exp():
    p = Variable(np.array([[4, 3, 2, 0, 1]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y, exp=False).data, 2.13505873)
示例#9
0
def test_perfect_dcg_at_1():
    p = Variable(np.array([[0, 1, 2, 3, 4]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y, k=1).data, 3.0)
示例#10
0
def test_dcg_wrongdim():
    p = Variable(np.array([[[4, 3, 2, 1, 0], [0, 1, 2, 4, 3]]]))
    y = Variable(np.array([[[0, 0, 1, 1, 0], [0, 1, 2, 0, 0]]]))
    nr_docs = Variable(np.array([5]))
    expected = np.array([1.13092975, 2.13092975])
    assert_allclose(dcg(p, y, nr_docs=nr_docs).data, expected)
示例#11
0
def test_perfect_dcg_no_exp():
    p = Variable(np.array([[0, 1, 2, 3, 4]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y, exp=False).data, 3.76185951)
示例#12
0
def test_random_dcg_2d_no_nrdocs():
    p = Variable(np.array([[4, 3, 2, 1, 0], [0, 3, 1, 2, 4]]))
    y = Variable(np.array([[0, 0, 1, 1, 0], [0, 1, 2, 0, 0]]))
    expected = np.array([1.1309297535714575, 1.7920296742201793])
    assert_allclose(dcg(p, y).data, expected)
示例#13
0
def test_random_dcg_2d():
    p = Variable(np.array([[4, 3, 2, 1, 0], [0, 1, 2, 3, 4]]))
    y = Variable(np.array([[0, 0, 1, 1, 0], [0, 1, 2, 0, 0]]))
    nr_docs = Variable(np.array([5, 3]))
    expected = np.array([1.13092975, 2.13092975])
    assert_allclose(dcg(p, y, nr_docs=nr_docs).data, expected)
示例#14
0
def test_worst_dcg():
    p = Variable(np.array([[4, 3, 2, 0, 1]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y).data, 2.9525881)
示例#15
0
def test_worst_dcg_at_all():
    p = Variable(np.array([[4, 3, 2, 1, 0]]))
    y = Variable(np.array([[2, 2, 1, 1, 0]]))
    expected = np.array([[0., 0.63092975, 1.13092975, 2.42295943, 3.58351785]])
    assert_allclose(dcg(p, y, k=-1).data, expected)
示例#16
0
def test_worst_dcg_at_3():
    p = Variable(np.array([[4, 3, 2, 1, 0]]))
    y = Variable(np.array([[2, 2, 1, 0, 0]]))
    assert_allclose(dcg(p, y, k=3).data, 0.5)
示例#17
0
def test_wrongsize_dcg():
    p = Variable(np.array([[2, 1, 0]]))
    y = Variable(np.array([[]]))
    assert_allclose(dcg(p, y).data, 0.0)
示例#18
0
def test_perfect_dcg_2d():
    p = Variable(np.array([[0, 1, 2, 3, 4], [0, 1, 2, 4, 3]]))
    y = Variable(np.array([[2, 2, 1, 0, 0], [2, 1, 0, 0, 0]]))
    nr_docs = Variable(np.array([5, 3]))
    expected = np.array([5.39278926, 3.63092975])
    assert_allclose(dcg(p, y, nr_docs=nr_docs).data, expected)