@@ -71,6 +71,48 @@ namespace xt
71
71
}
72
72
}
73
73
74
+ TEST (xsort, argsort_zero_stride)
75
+ {
76
+ {
77
+ xt::xtensor<double , 2 > A = {{1.4 , 1.3 , 1.2 , 1.1 }};
78
+ xt::xtensor<size_t , 2 > bsort = {{0 , 0 , 0 , 0 }};
79
+ xt::xtensor<size_t , 2 > fsort = {{3 , 2 , 1 , 0 }};
80
+ EXPECT_EQ (bsort, xt::argsort (A, 0 ));
81
+ EXPECT_EQ (fsort, xt::argsort (A, 1 ));
82
+ EXPECT_EQ (fsort, xt::argsort (A));
83
+ }
84
+ {
85
+ xt::xtensor<double , 3 > A = {{{1.4 , 1.3 , 1.2 , 1.1 }}};
86
+ xt::xtensor<size_t , 3 > bsort = {{{0 , 0 , 0 , 0 }}};
87
+ xt::xtensor<size_t , 3 > fsort = {{{3 , 2 , 1 , 0 }}};
88
+ EXPECT_EQ (bsort, xt::argsort (A, 0 ));
89
+ EXPECT_EQ (bsort, xt::argsort (A, 1 ));
90
+ EXPECT_EQ (fsort, xt::argsort (A, 2 ));
91
+ EXPECT_EQ (fsort, xt::argsort (A));
92
+ }
93
+ }
94
+
95
+ TEST (xsort, argsort_zero_stride_column_major)
96
+ {
97
+ {
98
+ xt::xtensor<double , 2 , xt::layout_type::column_major> A = {{1.4 , 1.3 , 1.2 , 1.1 }};
99
+ xt::xtensor<size_t , 2 , xt::layout_type::column_major> bsort = {{0 , 0 , 0 , 0 }};
100
+ xt::xtensor<size_t , 2 , xt::layout_type::column_major> fsort = {{3 , 2 , 1 , 0 }};
101
+ EXPECT_EQ (bsort, xt::argsort (A, 0 ));
102
+ EXPECT_EQ (fsort, xt::argsort (A, 1 ));
103
+ EXPECT_EQ (fsort, xt::argsort (A));
104
+ }
105
+ {
106
+ xt::xtensor<double , 3 , xt::layout_type::column_major> A = {{{1.4 , 1.3 , 1.2 , 1.1 }}};
107
+ xt::xtensor<size_t , 3 , xt::layout_type::column_major> bsort = {{{0 , 0 , 0 , 0 }}};
108
+ xt::xtensor<size_t , 3 , xt::layout_type::column_major> fsort = {{{3 , 2 , 1 , 0 }}};
109
+ EXPECT_EQ (bsort, xt::argsort (A, 0 ));
110
+ EXPECT_EQ (bsort, xt::argsort (A, 1 ));
111
+ EXPECT_EQ (fsort, xt::argsort (A, 2 ));
112
+ EXPECT_EQ (fsort, xt::argsort (A));
113
+ }
114
+ }
115
+
74
116
TEST (xsort, flatten_argsort)
75
117
{
76
118
{
@@ -256,7 +298,7 @@ namespace xt
256
298
auto d = unique (c);
257
299
EXPECT_EQ (d, bx);
258
300
259
- auto e = xt::unique (xt::where (xt::greater (b,2 ), 1 , 0 ));
301
+ auto e = xt::unique (xt::where (xt::greater (b,2 ), 1 , 0 ));
260
302
xarray<double > ex = {0 , 1 };
261
303
EXPECT_EQ (e, ex);
262
304
}
0 commit comments