@@ -998,6 +998,54 @@ fn test_chunks_exactator_0() {
998
998
let _it = v. chunks_exact ( 0 ) ;
999
999
}
1000
1000
1001
+ #[ test]
1002
+ fn test_rchunksator ( ) {
1003
+ let v = & [ 1 , 2 , 3 , 4 , 5 ] ;
1004
+
1005
+ assert_eq ! ( v. rchunks( 2 ) . len( ) , 3 ) ;
1006
+
1007
+ let chunks: & [ & [ _ ] ] = & [ & [ 4 , 5 ] , & [ 2 , 3 ] , & [ 1 ] ] ;
1008
+ assert_eq ! ( v. rchunks( 2 ) . collect:: <Vec <_>>( ) , chunks) ;
1009
+ let chunks: & [ & [ _ ] ] = & [ & [ 3 , 4 , 5 ] , & [ 1 , 2 ] ] ;
1010
+ assert_eq ! ( v. rchunks( 3 ) . collect:: <Vec <_>>( ) , chunks) ;
1011
+ let chunks: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
1012
+ assert_eq ! ( v. rchunks( 6 ) . collect:: <Vec <_>>( ) , chunks) ;
1013
+
1014
+ let chunks: & [ & [ _ ] ] = & [ & [ 1 ] , & [ 2 , 3 ] , & [ 4 , 5 ] ] ;
1015
+ assert_eq ! ( v. rchunks( 2 ) . rev( ) . collect:: <Vec <_>>( ) , chunks) ;
1016
+ }
1017
+
1018
+ #[ test]
1019
+ #[ should_panic]
1020
+ fn test_rchunksator_0 ( ) {
1021
+ let v = & [ 1 , 2 , 3 , 4 ] ;
1022
+ let _it = v. rchunks ( 0 ) ;
1023
+ }
1024
+
1025
+ #[ test]
1026
+ fn test_rchunks_exactator ( ) {
1027
+ let v = & [ 1 , 2 , 3 , 4 , 5 ] ;
1028
+
1029
+ assert_eq ! ( v. rchunks_exact( 2 ) . len( ) , 2 ) ;
1030
+
1031
+ let chunks: & [ & [ _ ] ] = & [ & [ 4 , 5 ] , & [ 2 , 3 ] ] ;
1032
+ assert_eq ! ( v. rchunks_exact( 2 ) . collect:: <Vec <_>>( ) , chunks) ;
1033
+ let chunks: & [ & [ _ ] ] = & [ & [ 3 , 4 , 5 ] ] ;
1034
+ assert_eq ! ( v. rchunks_exact( 3 ) . collect:: <Vec <_>>( ) , chunks) ;
1035
+ let chunks: & [ & [ _ ] ] = & [ ] ;
1036
+ assert_eq ! ( v. rchunks_exact( 6 ) . collect:: <Vec <_>>( ) , chunks) ;
1037
+
1038
+ let chunks: & [ & [ _ ] ] = & [ & [ 2 , 3 ] , & [ 4 , 5 ] ] ;
1039
+ assert_eq ! ( v. rchunks_exact( 2 ) . rev( ) . collect:: <Vec <_>>( ) , chunks) ;
1040
+ }
1041
+
1042
+ #[ test]
1043
+ #[ should_panic]
1044
+ fn test_rchunks_exactator_0 ( ) {
1045
+ let v = & [ 1 , 2 , 3 , 4 ] ;
1046
+ let _it = v. rchunks_exact ( 0 ) ;
1047
+ }
1048
+
1001
1049
#[ test]
1002
1050
fn test_reverse_part ( ) {
1003
1051
let mut values = [ 1 , 2 , 3 , 4 , 5 ] ;
@@ -1205,7 +1253,7 @@ fn test_get_mut() {
1205
1253
#[ test]
1206
1254
fn test_mut_chunks ( ) {
1207
1255
let mut v = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] ;
1208
- assert_eq ! ( v. chunks_mut( 2 ) . len( ) , 4 ) ;
1256
+ assert_eq ! ( v. chunks_mut( 3 ) . len( ) , 3 ) ;
1209
1257
for ( i, chunk) in v. chunks_mut ( 3 ) . enumerate ( ) {
1210
1258
for x in chunk {
1211
1259
* x = i as u8 ;
@@ -1237,7 +1285,7 @@ fn test_mut_chunks_0() {
1237
1285
#[ test]
1238
1286
fn test_mut_chunks_exact ( ) {
1239
1287
let mut v = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] ;
1240
- assert_eq ! ( v. chunks_exact_mut( 2 ) . len( ) , 3 ) ;
1288
+ assert_eq ! ( v. chunks_exact_mut( 3 ) . len( ) , 2 ) ;
1241
1289
for ( i, chunk) in v. chunks_exact_mut ( 3 ) . enumerate ( ) {
1242
1290
for x in chunk {
1243
1291
* x = i as u8 ;
@@ -1266,6 +1314,70 @@ fn test_mut_chunks_exact_0() {
1266
1314
let _it = v. chunks_exact_mut ( 0 ) ;
1267
1315
}
1268
1316
1317
+ #[ test]
1318
+ fn test_mut_rchunks ( ) {
1319
+ let mut v = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] ;
1320
+ assert_eq ! ( v. rchunks_mut( 3 ) . len( ) , 3 ) ;
1321
+ for ( i, chunk) in v. rchunks_mut ( 3 ) . enumerate ( ) {
1322
+ for x in chunk {
1323
+ * x = i as u8 ;
1324
+ }
1325
+ }
1326
+ let result = [ 2 , 1 , 1 , 1 , 0 , 0 , 0 ] ;
1327
+ assert_eq ! ( v, result) ;
1328
+ }
1329
+
1330
+ #[ test]
1331
+ fn test_mut_rchunks_rev ( ) {
1332
+ let mut v = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] ;
1333
+ for ( i, chunk) in v. rchunks_mut ( 3 ) . rev ( ) . enumerate ( ) {
1334
+ for x in chunk {
1335
+ * x = i as u8 ;
1336
+ }
1337
+ }
1338
+ let result = [ 0 , 1 , 1 , 1 , 2 , 2 , 2 ] ;
1339
+ assert_eq ! ( v, result) ;
1340
+ }
1341
+
1342
+ #[ test]
1343
+ #[ should_panic]
1344
+ fn test_mut_rchunks_0 ( ) {
1345
+ let mut v = [ 1 , 2 , 3 , 4 ] ;
1346
+ let _it = v. rchunks_mut ( 0 ) ;
1347
+ }
1348
+
1349
+ #[ test]
1350
+ fn test_mut_rchunks_exact ( ) {
1351
+ let mut v = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] ;
1352
+ assert_eq ! ( v. rchunks_exact_mut( 3 ) . len( ) , 2 ) ;
1353
+ for ( i, chunk) in v. rchunks_exact_mut ( 3 ) . enumerate ( ) {
1354
+ for x in chunk {
1355
+ * x = i as u8 ;
1356
+ }
1357
+ }
1358
+ let result = [ 0 , 1 , 1 , 1 , 0 , 0 , 0 ] ;
1359
+ assert_eq ! ( v, result) ;
1360
+ }
1361
+
1362
+ #[ test]
1363
+ fn test_mut_rchunks_exact_rev ( ) {
1364
+ let mut v = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] ;
1365
+ for ( i, chunk) in v. rchunks_exact_mut ( 3 ) . rev ( ) . enumerate ( ) {
1366
+ for x in chunk {
1367
+ * x = i as u8 ;
1368
+ }
1369
+ }
1370
+ let result = [ 0 , 0 , 0 , 0 , 1 , 1 , 1 ] ;
1371
+ assert_eq ! ( v, result) ;
1372
+ }
1373
+
1374
+ #[ test]
1375
+ #[ should_panic]
1376
+ fn test_mut_rchunks_exact_0 ( ) {
1377
+ let mut v = [ 1 , 2 , 3 , 4 ] ;
1378
+ let _it = v. rchunks_exact_mut ( 0 ) ;
1379
+ }
1380
+
1269
1381
#[ test]
1270
1382
fn test_mut_last ( ) {
1271
1383
let mut x = [ 1 , 2 , 3 , 4 , 5 ] ;
0 commit comments