diff --git a/test/TestTensor.cpp b/test/TestTensor.cpp index 6d54163ad..83c067291 100644 --- a/test/TestTensor.cpp +++ b/test/TestTensor.cpp @@ -1,12 +1,46 @@ #include -#include "kompute/Tensor.hpp" +#include "kompute/Kompute.hpp" -TEST_CASE("Tensor should have same vector as initialised") { +TEST_CASE("test_tensor_constructor_data") { std::vector vec{0,1,2}; kp::Tensor tensor(vec); REQUIRE( tensor.size() == vec.size() ); REQUIRE( tensor.data() == vec ); } +TEST_CASE("test_tensor_copy_from_other_tensor_host_data") { + std::vector vecA{0,1,2}; + std::vector vecB{0,0,0}; + + std::shared_ptr tensorA = std::make_shared( + vecA, + kp::Tensor::TensorTypes::eStaging); + std::shared_ptr tensorB = std::make_shared( + vecA, + kp::Tensor::TensorTypes::eStaging); + + kp::Manager mgr; + + if(std::shared_ptr sq = + mgr.getOrCreateManagedSequence("new").lock()) + { + sq->begin(); + + sq->record({tensorA, tensorB}); + + tensorA->mapDataIntoHostMemory(); + + tensorB->recordCopyFrom(tensorA, true); + + sq->end(); + + sq->eval(); + + tensorB->mapDataFromHostMemory(); + } + + REQUIRE(tensorA->data() == tensorB->data()); +} +