MCPcopy Create free account
hub / github.com/CVCUDA/CV-CUDA / TEST

Function TEST

tests/cvcuda/system/TestOpRotate.cpp:568–624  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

566}
567
568TEST(OpRotate_Negative, varshape_hasDifferentFormat)
569{
570 cudaStream_t stream;
571 EXPECT_EQ(cudaSuccess, cudaStreamCreate(&stream));
572
573 nvcv::ImageFormat fmt = nvcv::FMT_RGB8;
574 const int numberOfImages = 5;
575 NVCVInterpolationType interpolation = NVCV_INTERP_NEAREST;
576
577 int srcWidthBase = 4;
578 int srcHeightBase = 4;
579
580 std::vector<std::tuple<nvcv::ImageFormat, nvcv::ImageFormat>> testSet{
581 {nvcv::FMT_RGBA8, fmt},
582 { fmt, nvcv::FMT_RGBA8}
583 };
584 for (auto testCase : testSet)
585 {
586 nvcv::ImageFormat inputFmtExtra = std::get<0>(testCase);
587 nvcv::ImageFormat outputFmtExtra = std::get<1>(testCase);
588
589 // Create input and output
590 std::default_random_engine randEng;
591 std::uniform_int_distribution<int> rndSrcWidth(srcWidthBase * 0.8, srcWidthBase * 1.1);
592 std::uniform_int_distribution<int> rndSrcHeight(srcHeightBase * 0.8, srcHeightBase * 1.1);
593
594 nvcv::Tensor angleDegTensor(nvcv::TensorShape({numberOfImages}, "N"), nvcv::TYPE_F64);
595 nvcv::Tensor shiftTensor(nvcv::TensorShape({numberOfImages, 2}, nvcv::TENSOR_NW), nvcv::TYPE_F64);
596
597 std::vector<nvcv::Image> imgSrc, imgDst;
598
599 for (int i = 0; i < numberOfImages - 1; ++i)
600 {
601 int tmpWidth = i == 0 ? srcWidthBase : rndSrcWidth(randEng);
602 int tmpHeight = i == 0 ? srcHeightBase : rndSrcHeight(randEng);
603
604 imgSrc.emplace_back(nvcv::Size2D{tmpWidth, tmpHeight}, fmt);
605 imgDst.emplace_back(nvcv::Size2D{tmpWidth, tmpHeight}, fmt);
606 }
607 imgSrc.emplace_back(imgSrc[0].size(), inputFmtExtra);
608 imgDst.emplace_back(imgSrc.back().size(), outputFmtExtra);
609
610 nvcv::ImageBatchVarShape batchSrc(numberOfImages);
611 batchSrc.pushBack(imgSrc.begin(), imgSrc.end());
612
613 nvcv::ImageBatchVarShape batchDst(numberOfImages);
614 batchDst.pushBack(imgDst.begin(), imgDst.end());
615
616 cvcuda::Rotate rotateOp(numberOfImages);
617 EXPECT_EQ(NVCV_ERROR_INVALID_ARGUMENT,
618 nvcv::ProtectCall(
619 [&] { rotateOp(stream, batchSrc, batchDst, angleDegTensor, shiftTensor, interpolation); }));
620 }
621
622 EXPECT_EQ(cudaSuccess, cudaStreamSynchronize(stream));
623 EXPECT_EQ(cudaSuccess, cudaStreamDestroy(stream));
624}
625

Callers

nothing calls this directly

Calls 8

backMethod · 0.80
TensorShapeClass · 0.50
ProtectCallFunction · 0.50
emplace_backMethod · 0.45
sizeMethod · 0.45
pushBackMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected