From 02431cbe71eb036b1d6caa49c585db92a20b030f Mon Sep 17 00:00:00 2001 From: Eugene Zhulenev Date: Wed, 16 Oct 2019 13:26:28 -0700 Subject: TensorBroadcasting support for random/uniform blocks --- unsupported/test/cxx11_tensor_block_eval.cpp | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'unsupported/test/cxx11_tensor_block_eval.cpp') diff --git a/unsupported/test/cxx11_tensor_block_eval.cpp b/unsupported/test/cxx11_tensor_block_eval.cpp index eb93c5c53..01c431098 100644 --- a/unsupported/test/cxx11_tensor_block_eval.cpp +++ b/unsupported/test/cxx11_tensor_block_eval.cpp @@ -264,6 +264,10 @@ static void test_eval_tensor_broadcast() { input.broadcast(bcast), [&bcasted_dims]() { return SkewedInnerBlock(bcasted_dims); }); + VerifyBlockEvaluator( + input.broadcast(bcast), + [&bcasted_dims]() { return RandomBlock(bcasted_dims, 5, 10); }); + VerifyBlockEvaluator( input.broadcast(bcast), [&bcasted_dims]() { return FixedSizeBlock(bcasted_dims); }); @@ -534,6 +538,33 @@ static void test_eval_tensor_forced_eval() { [dims]() { return RandomBlock(dims, 1, 50); }); } +template +static void test_eval_tensor_chipping_of_bcast() { + if (Layout != static_cast(RowMajor)) return; + + Index dim0 = internal::random(1, 10); + Index dim1 = internal::random(1, 10); + Index dim2 = internal::random(1, 10); + + Tensor input(1, dim1, dim2); + input.setRandom(); + + Eigen::array bcast({dim0, 1, 1}); + DSizes chipped_dims(dim0, dim2); + + VerifyBlockEvaluator( + input.broadcast(bcast).chip(0, 1), + [chipped_dims]() { return FixedSizeBlock(chipped_dims); }); + + VerifyBlockEvaluator( + input.broadcast(bcast).chip(0, 1), + [chipped_dims]() { return SkewedInnerBlock(chipped_dims); }); + + VerifyBlockEvaluator( + input.broadcast(bcast).chip(0, 1), + [chipped_dims]() { return RandomBlock(chipped_dims, 1, 5); }); +} + // -------------------------------------------------------------------------- // // Verify that assigning block to a Tensor expression produces the same result // as an assignment to TensorSliceOp (writing a block is is identical to @@ -760,6 +791,7 @@ EIGEN_DECLARE_TEST(cxx11_tensor_block_eval) { CALL_SUBTESTS_LAYOUTS(6, test_eval_tensor_reshape_with_bcast); CALL_SUBTESTS_LAYOUTS(6, test_eval_tensor_forced_eval); + CALL_SUBTESTS_LAYOUTS(6, test_eval_tensor_chipping_of_bcast); CALL_SUBTESTS_DIMS_LAYOUTS(7, test_assign_to_tensor); CALL_SUBTESTS_DIMS_LAYOUTS(7, test_assign_to_tensor_reshape); -- cgit v1.2.3