Exemple #1
0
def test_sumdist_rmsd():
    pairs = random.random_integers(low=0, high=9, size=(5, 2)).astype(np.intp)
    alldist = scipy.spatial.distance.squareform(pdist(X_rmsd, "rmsd"))
    np.testing.assert_almost_equal(
            sum(alldist[p[0], p[1]] for p in pairs),
            sumdist(X_rmsd, "rmsd", pairs),
            decimal=6)
def test_sumdist_rmsd():
    pairs = random.random_integers(low=0, high=9, size=(5, 2))
    alldist = scipy.spatial.distance.squareform(pdist(X_rmsd, "rmsd"))
    np.testing.assert_almost_equal(
        sum(alldist[p[0], p[1]] for p in pairs),
        sumdist(X_rmsd, "rmsd", pairs),
        decimal=6)
def test_sumdist_rmsd():
    pairs = random.randint(0, 10, size=(5, 2)).astype(np.intp)
    alldist = scipy.spatial.distance.squareform(pdist(X_rmsd, "rmsd"))
    np.testing.assert_almost_equal(
            sum(alldist[p[0], p[1]] for p in pairs),
            sumdist(X_rmsd, "rmsd", pairs),
            decimal=6)
def test_sumdist_double_float():
    pairs = random.random_integers(low=0, high=9, size=(5, 2))
    for metric in VECTOR_METRICS:
        for X in (X_double, X_float):
            alldist = scipy.spatial.distance.squareform(pdist(X, metric))
            np.testing.assert_almost_equal(
                sum(alldist[p[0], p[1]] for p in pairs),
                sumdist(X, metric, pairs))
def test_pdist_rmsd_2():
    got = pdist(X_rmsd, "rmsd", X_indices)
    all2all = np.array([md.rmsd(X_rmsd, X_rmsd[i], precentered=True)
                        for i in range(len(X_rmsd))]).astype(np.double)
    submatrix = all2all[np.ix_(X_indices, X_indices)]

    ref = submatrix[np.triu_indices(5, k=1)]
    np.testing.assert_almost_equal(got, ref, decimal=4)
Exemple #6
0
def test_sumdist_double_float():
    pairs = random.random_integers(low=0, high=9, size=(5, 2)).astype(np.intp)
    for metric in VECTOR_METRICS:
        for X in (X_double, X_float):
            alldist = scipy.spatial.distance.squareform(pdist(X, metric))
            np.testing.assert_almost_equal(
                sum(alldist[p[0], p[1]] for p in pairs),
                sumdist(X, metric, pairs))
Exemple #7
0
def test_pdist_rmsd_1():
    got = pdist(X_rmsd, "rmsd")
    all2all = np.array([
        md.rmsd(X_rmsd, X_rmsd[i], precentered=True)
        for i in range(len(X_rmsd))
    ])
    ref = all2all[np.triu_indices(10, k=1)]
    np.testing.assert_almost_equal(got, ref, decimal=5)
Exemple #8
0
def test_pdist_double_float_2():
    # test without X_indices
    for metric in VECTOR_METRICS:
        for X, Y in ((X_double, Y_double), (X_float, Y_float)):
            pdist_1 = pdist(X, metric, X_indices=X_indices)
            pdist_2 = scipy.spatial.distance.pdist(X[X_indices], metric)
            yield lambda: np.testing.assert_almost_equal(
                pdist_1, pdist_2, decimal=5 if X.dtype == np.float32 else 10)
Exemple #9
0
def test_pdist_rmsd_2():
    got = pdist(X_rmsd, "rmsd", X_indices)
    all2all = np.array([md.rmsd(X_rmsd, X_rmsd[i], precentered=True)
                        for i in range(len(X_rmsd))]).astype(np.double)
    submatrix = all2all[np.ix_(X_indices, X_indices)]

    ref = submatrix[np.triu_indices(5, k=1)]
    np.testing.assert_almost_equal(got, ref, decimal=4)
def pdist(X, metric='euclidean'):
    if isinstance(metric, six.string_types):
        return libdistance.pdist(X, metric)

    n = len(X)
    d = np.empty((n, n))
    for i in range(n):
        d[i, :] = metric(X, X, i)
    return scipy.spatial.distance.squareform(d, checks=False)
Exemple #11
0
def pdist(X, metric='euclidean'):
    if isinstance(metric, six.string_types):
        return libdistance.pdist(X, metric)

    n = len(X)
    d = np.empty((n, n))
    for i in range(n):
        d[i, :] = metric(X, X, i)
    return scipy.spatial.distance.squareform(d, checks=False)
def test_pdist_double_float_2():
    # test without X_indices
    for metric in VECTOR_METRICS:
        for X, Y in ((X_double, Y_double), (X_float, Y_float)):
            pdist_1 = pdist(X, metric, X_indices=X_indices)
            pdist_2 = scipy.spatial.distance.pdist(X[X_indices], metric)
            yield lambda : np.testing.assert_almost_equal(
                pdist_1,
                pdist_2,
                decimal=5 if X.dtype == np.float32 else 10)
Exemple #13
0
def test_index():
    n = 50
    def q(i, j):
        if i == j:
            raise ValueError()
        if (i < j):
            return int(n*i - i*(i+1)/2 + j - 1 - i)
        return int(n*j - j*(j+1)/2 + i - 1 - j)

    
    X = np.random.randn(n, 1)
    pdist = libdistance.pdist(X, 'euclidean')
    for i in range(n):
        for j in range(n):
            if (i != j):
                assert euclidean(X[i], X[j]) == pdist[q(i,j)]
Exemple #14
0
def test_index():
    n = 50

    def q(i, j):
        if i == j:
            raise ValueError()
        if (i < j):
            return int(n * i - i * (i + 1) / 2 + j - 1 - i)
        return int(n * j - j * (j + 1) / 2 + i - 1 - j)

    X = np.random.randn(n, 1)
    pdist = libdistance.pdist(X, 'euclidean')
    for i in range(n):
        for j in range(n):
            if (i != j):
                assert euclidean(X[i], X[j]) == pdist[q(i, j)]
def test_pdist_rmsd_1():
    got = pdist(X_rmsd, "rmsd")
    all2all = np.array([md.rmsd(X_rmsd, X_rmsd[i], precentered=True) for i in range(len(X_rmsd))])
    ref = all2all[np.triu_indices(10, k=1)]
    np.testing.assert_almost_equal(got, ref, decimal=5)