Skip to content

Commit 82257d3

Browse files
committed
Added subarraytests
1 parent 59ed76e commit 82257d3

File tree

1 file changed

+82
-6
lines changed

1 file changed

+82
-6
lines changed

test/array.cpp

Lines changed: 82 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -427,14 +427,90 @@ TEST(Array, ISSUE_3534) {
427427
// Following assignment failed silently without above copy()
428428
// a(0,0) = 1234;
429429

430-
array a = range(dim4(5, 5));
431-
a = a.rows(1, 4);
432-
a(1, 1) = 1234;
430+
// Testing rows
431+
{
432+
array a = range(dim4(5, 5));
433+
af_array before_handle = a.get();
434+
const float *before_dev_pointer = a.device<float>();
433435

434-
array b = range(dim4(4, 5)) + 1.0;
435-
b(1, 1) = 1234;
436+
a = a.rows(1, 4);
437+
af_array after_handle = a.get();
438+
const float *after_dev_pointer = a.device<float>();
436439

437-
ASSERT_ARRAYS_EQ(a, b);
440+
// We expect a copy to be created, so the handle and
441+
// array pointers should be different
442+
ASSERT_NE(before_handle, after_handle);
443+
ASSERT_NE(before_dev_pointer, after_dev_pointer);
444+
445+
a(1, 1) = -1234;
446+
447+
array b = range(dim4(4, 5)) + 1.0;
448+
b(1, 1) = -1234;
449+
450+
ASSERT_ARRAYS_EQ(a, b);
451+
}
452+
453+
// Testing columns
454+
{
455+
array a = range(dim4(5, 5));
456+
af_array before_handle = a.get();
457+
const float *before_dev_pointer = a.device<float>();
458+
459+
a = a.cols(1, 4);
460+
af_array after_handle = a.get();
461+
const float *after_dev_pointer = a.device<float>();
462+
463+
// We expect a copy to be created, so the handle and
464+
// array pointers should be different
465+
ASSERT_NE(before_handle, after_handle);
466+
ASSERT_NE(before_dev_pointer, after_dev_pointer);
467+
468+
a(1, 1) = -1234;
469+
470+
array b = range(dim4(5, 4));
471+
b(1, 1) = -1234;
472+
473+
ASSERT_ARRAYS_EQ(a, b);
474+
}
475+
476+
// Testing subarrays with sizes of one page
477+
{
478+
array a = range(dim4(64, 64));
479+
a = a.rows(31, 57);
480+
a(1, 1) = -123456;
481+
482+
array b = range(dim4(27, 64)) + 31.0;
483+
b(1, 1) = -123456;
484+
485+
ASSERT_ARRAYS_EQ(a, b);
486+
487+
a = range(dim4(128, 128));
488+
a = a.rows(0, 63);
489+
a = a.cols(0, 63);
490+
a(0, 0) = -54321;
491+
a(63, 63) = -12345;
492+
493+
b = range(dim4(64, 64));
494+
b(0, 0) = -54321;
495+
b(63, 63) = -12345;
496+
497+
ASSERT_ARRAYS_EQ(a, b);
498+
499+
a = range(dim4(128, 128));
500+
a(64, 64) = -67890;
501+
a(127, 127) = -9876;
502+
a = a.rows(64, 127);
503+
a = a.cols(64, 127);
504+
505+
a(0, 0) = -54321;
506+
a(63, 63) = -12345;
507+
508+
b = range(dim4(64, 64)) + 64;
509+
b(0, 0) = -54321;
510+
b(63, 63) = -12345;
511+
512+
ASSERT_ARRAYS_EQ(a, b);
513+
}
438514
}
439515

440516
TEST(Array, CreateHandleInvalidNullDimsPointer) {

0 commit comments

Comments
 (0)