dmlc--dgl
f8d4264e5b
* WIP: working on random choices * light slice * basic CPU impl * add python binding; fix CreateFromCOO and CreateFromCSR returning unitgraph * simple test case works * fix bug in slicing probability array * fix bug in getting the correct relation graph * fix bug in creating placeholder graph * enable omp * add cpp test * sample topk * add in|out_subgraph * try fix lint; passed all unittests * fix lint * fix msvc compile; add sorted flag and constructors * fix msvc * coosort * COOSort; CSRRowWiseSampling; CSRRowWiseTopk * WIP: remove DType in CSR and COO; Restrict data array to be IdArray * fix all CSR ops for missing data array * compiled * passed tests * lint * test sampling out edge * test different per-relation fanout/k values * fix bug in random choice * finished cpptest * fix compile * Add induced edges * add check * fixed bug in sampling on hypersparse graph; add tests * add ascending flag * in|out_subgraph returns subgraph and induced eid * address comments * lint * fix
52 行
1.2 KiB
C++
52 行
1.2 KiB
C++
#ifndef TEST_COMMON_H_
|
|
#define TEST_COMMON_H_
|
|
|
|
#include <dgl/runtime/ndarray.h>
|
|
|
|
template <typename T>
|
|
inline T* Ptr(dgl::runtime::NDArray nd) {
|
|
return static_cast<T*>(nd->data);
|
|
}
|
|
|
|
inline int64_t* PI64(dgl::runtime::NDArray nd) {
|
|
return static_cast<int64_t*>(nd->data);
|
|
}
|
|
|
|
inline int32_t* PI32(dgl::runtime::NDArray nd) {
|
|
return static_cast<int32_t*>(nd->data);
|
|
}
|
|
|
|
inline int64_t Len(dgl::runtime::NDArray nd) {
|
|
return nd->shape[0];
|
|
}
|
|
|
|
template <typename T>
|
|
inline bool ArrayEQ(dgl::runtime::NDArray a1, dgl::runtime::NDArray a2) {
|
|
if (a1->ndim != a2->ndim) return false;
|
|
int64_t num = 1;
|
|
for (int i = 0; i < a1->ndim; ++i) {
|
|
if (a1->shape[i] != a2->shape[i])
|
|
return false;
|
|
num *= a1->shape[i];
|
|
}
|
|
for (int64_t i = 0; i < num; ++i)
|
|
if (static_cast<T*>(a1->data)[i] != static_cast<T*>(a2->data)[i])
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
template <typename T>
|
|
inline bool IsInArray(dgl::runtime::NDArray a, T x) {
|
|
if (!a.defined() || a->shape[0] == 0)
|
|
return false;
|
|
for (int64_t i = 0; i < a->shape[0]; ++i) {
|
|
if (x == static_cast<T*>(a->data)[i])
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static constexpr DLContext CTX = DLContext{kDLCPU, 0};
|
|
|
|
#endif // TEST_COMMON_H_
|