From 00c66f347b679faf15fd1ca811d9c686f73d3ce2 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Mon, 31 Aug 2020 13:16:20 +0100 Subject: [PATCH] Added tensor tests to validate tensor copies --- test/TestTensor.cpp | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) 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()); +} +