+TYPED_TEST(HostAllocatorTestNoMem, CreateVector)
+{
+ typename TestFixture::VectorType input1;
+ EXPECT_FALSE(input1.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+ typename TestFixture::VectorType input2({PinningPolicy::CanBePinned});
+ EXPECT_TRUE (input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+}
+
+TYPED_TEST(HostAllocatorTestNoMem, MoveAssignment)
+{
+ typename TestFixture::VectorType input1({PinningPolicy::CanBePinned});
+ input1 = typename TestFixture::VectorType();
+ EXPECT_FALSE(input1.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+
+ typename TestFixture::VectorType input2;
+ input2 = typename TestFixture::VectorType({PinningPolicy::CanBePinned});
+ EXPECT_TRUE (input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+}
+
+TYPED_TEST(HostAllocatorTestNoMem, MoveConstruction)
+{
+ typename TestFixture::VectorType input1;
+ typename TestFixture::VectorType input2(std::move(input1));
+ EXPECT_FALSE(input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+
+ typename TestFixture::VectorType input3({PinningPolicy::CanBePinned});
+ typename TestFixture::VectorType input4(std::move(input3));
+ EXPECT_TRUE(input4.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+}
+
+TYPED_TEST(HostAllocatorTestNoMem, CopyAssignment)
+{
+ typename TestFixture::VectorType input1;
+ typename TestFixture::VectorType input2({PinningPolicy::CanBePinned});
+ input1 = input2;
+ EXPECT_FALSE(input1.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+ EXPECT_TRUE (input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+ input2 = input1;
+ EXPECT_FALSE(input1.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+ EXPECT_TRUE (input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+}
+
+TYPED_TEST(HostAllocatorTestNoMem, CopyConstruction)
+{
+ typename TestFixture::VectorType input1;
+ typename TestFixture::VectorType input2(input1);
+ EXPECT_FALSE(input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+
+ typename TestFixture::VectorType input3({PinningPolicy::CanBePinned});
+ typename TestFixture::VectorType input4(input3);
+ EXPECT_FALSE(input4.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+}
+
+TYPED_TEST(HostAllocatorTestNoMem, Swap)
+{
+ typename TestFixture::VectorType input1;
+ typename TestFixture::VectorType input2({PinningPolicy::CanBePinned});
+ swap(input1, input2);
+ EXPECT_TRUE (input1.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+ EXPECT_FALSE(input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+ swap(input2, input1);
+ EXPECT_FALSE(input1.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+ EXPECT_TRUE (input2.get_allocator().pinningPolicy() == PinningPolicy::CanBePinned);
+}
+