Skip to content

Commit a5955af

Browse files
authored
Merge pull request #8 from orxfun/fix/tests-fixed-for-no-std-execution
fix/tests-fixed-for-no-std-execution
2 parents c2e0631 + 9a0d8d8 commit a5955af

27 files changed

+706
-601
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ The conditions to implement these variants are identical to the original traits.
531531

532532
Now we can achieve our simpler `Repo` type.
533533

534-
```rust
534+
```rust ignore
535535
use orx_iterable::obj_safe::*;
536536

537537
struct Repo {

tests/chained.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
mod common_testers;
2-
use common_testers::{obj_test_col, obj_test_it, test_col, test_it};
2+
use common_testers::{test_col, test_it};
33
use orx_iterable::*;
44
use std::collections::VecDeque;
55

@@ -46,8 +46,11 @@ fn chained_mut() {
4646

4747
// obj
4848

49+
#[cfg(feature = "std")]
4950
#[test]
5051
fn obj_chained() {
52+
use common_testers::obj_test_it;
53+
5154
let a = vec![1, 3, 4];
5255
let b = [8, 10];
5356
let c = VecDeque::from_iter([2, 7].into_iter());
@@ -57,8 +60,11 @@ fn obj_chained() {
5760
obj_test_it(vec![1, 3, 4, 8, 10, 2, 7], &a.chained(b.chained(&c)));
5861
}
5962

63+
#[cfg(feature = "std")]
6064
#[test]
6165
fn obj_into_chained() {
66+
use common_testers::obj_test_col;
67+
6268
let a = vec![1, 3, 4];
6369
let b = [8, 10];
6470
obj_test_col(vec![1, 3, 4, 8, 10], &a.into_chained(b));
@@ -72,8 +78,11 @@ fn obj_into_chained() {
7278
);
7379
}
7480

81+
#[cfg(feature = "std")]
7582
#[test]
7683
fn obj_chained_mut() {
84+
use common_testers::obj_test_col;
85+
7786
let mut a = vec![1, 3, 4];
7887
let mut b = [8, 10];
7988
obj_test_col(vec![1, 3, 4, 8, 10], &a.chained_mut(&mut b));

tests/collection.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
mod common_testers;
22
mod custom_iterables;
3-
use common_testers::{obj_test_col, test_col};
3+
use common_testers::test_col;
44
use std::collections::{LinkedList, VecDeque};
55

66
#[test]
@@ -31,8 +31,11 @@ fn custom_collection() {
3131

3232
// obj
3333

34+
#[cfg(feature = "std")]
3435
#[test]
3536
fn obj_std_collections() {
37+
use common_testers::obj_test_col;
38+
3639
let values = || vec![1, 3, 7];
3740

3841
obj_test_col(values(), &[1, 3, 7]);
@@ -41,8 +44,11 @@ fn obj_std_collections() {
4144
obj_test_col(values(), &LinkedList::from_iter([1, 3, 7].into_iter()));
4245
}
4346

47+
#[cfg(feature = "std")]
4448
#[test]
4549
fn obj_custom_collection() {
50+
use common_testers::obj_test_col;
51+
4652
let col = custom_iterables::EvensThenOddsCol {
4753
evens: vec![4, 12, 8, 2],
4854
odds: vec![1, 7],

tests/common_testers.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#![allow(dead_code)]
22

3-
use orx_iterable::obj_safe::*;
43
use orx_iterable::*;
54

65
pub fn test_it<'a>(values: Vec<usize>, col: impl Iterable<Item = &'a usize>) {
@@ -32,7 +31,11 @@ pub fn test_col(values: Vec<usize>, col: impl Collection<Item = usize>) {
3231

3332
// obj
3433

35-
pub fn obj_test_it<'a>(values: Vec<usize>, col: &dyn IterableObj<Item = &'a usize>) {
34+
#[cfg(feature = "std")]
35+
pub fn obj_test_it<'a>(
36+
values: Vec<usize>,
37+
col: &dyn orx_iterable::obj_safe::IterableObj<Item = &'a usize>,
38+
) {
3639
let sum = values.iter().sum::<usize>();
3740
let count = values.len();
3841

@@ -41,7 +44,11 @@ pub fn obj_test_it<'a>(values: Vec<usize>, col: &dyn IterableObj<Item = &'a usiz
4144
assert_eq!(col.boxed_iter().copied().sum::<usize>(), sum);
4245
}
4346

44-
pub fn obj_test_it_val(values: Vec<usize>, col: &dyn IterableObj<Item = usize>) {
47+
#[cfg(feature = "std")]
48+
pub fn obj_test_it_val(
49+
values: Vec<usize>,
50+
col: &dyn orx_iterable::obj_safe::IterableObj<Item = usize>,
51+
) {
4552
let sum = values.iter().sum::<usize>();
4653
let count = values.len();
4754

@@ -50,7 +57,11 @@ pub fn obj_test_it_val(values: Vec<usize>, col: &dyn IterableObj<Item = usize>)
5057
assert_eq!(col.boxed_iter().sum::<usize>(), sum);
5158
}
5259

53-
pub fn obj_test_col(values: Vec<usize>, col: &dyn CollectionObj<Item = usize>) {
60+
#[cfg(feature = "std")]
61+
pub fn obj_test_col(
62+
values: Vec<usize>,
63+
col: &dyn orx_iterable::obj_safe::CollectionObj<Item = usize>,
64+
) {
5465
let sum = values.iter().sum::<usize>();
5566
let count = values.len();
5667

tests/copied_cloned.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
mod custom_iterables;
2-
use orx_iterable::obj_safe::*;
32
use orx_iterable::*;
43
use std::collections::{LinkedList, VecDeque};
54

@@ -47,9 +46,10 @@ fn copied_cloned() {
4746
test(vec![4, 12, 8, 2, 1, 7], col.cloned());
4847
}
4948

49+
#[cfg(feature = "std")]
5050
#[test]
5151
fn obj_copied_cloned() {
52-
fn test(values: Vec<usize>, col: &dyn IterableObj<Item = usize>) {
52+
fn test(values: Vec<usize>, col: &dyn orx_iterable::obj_safe::IterableObj<Item = usize>) {
5353
let sum = values.iter().sum::<usize>();
5454
let count = values.len();
5555

tests/empty.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use orx_iterable::obj_safe::*;
21
use orx_iterable::*;
32

43
#[test]
@@ -31,8 +30,11 @@ fn empty_col() {
3130

3231
// obj
3332

33+
#[cfg(feature = "std")]
3434
#[test]
3535
fn obj_empty() {
36+
use orx_iterable::obj_safe::*;
37+
3638
let it = orx_iterable::empty::<usize>();
3739

3840
assert_eq!(it.boxed_iter().count(), 0);
@@ -44,8 +46,11 @@ fn obj_empty() {
4446
assert_eq!(it.boxed_iter().sum::<usize>(), 0);
4547
}
4648

49+
#[cfg(feature = "std")]
4750
#[test]
4851
fn obj_empty_col() {
52+
use orx_iterable::obj_safe::*;
53+
4954
let mut it = orx_iterable::empty_col::<usize>();
5055

5156
assert_eq!(it.boxed_iter().count(), 0);

tests/enumerated.rs

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use obj_safe::IterableObj;
21
use orx_iterable::*;
32

43
fn test_it<'a>(values: Vec<(usize, usize)>, col: impl Iterable<Item = (usize, &'a usize)>) {
@@ -21,24 +20,30 @@ fn enumerated() {
2120
);
2221
}
2322

24-
// obj
23+
#[cfg(feature = "std")]
24+
mod object_safe {
25+
use orx_iterable::{obj_safe::*, *};
2526

26-
fn obj_test_it<'a>(values: Vec<(usize, usize)>, col: &dyn IterableObj<Item = (usize, &'a usize)>) {
27-
let sum_values = values.iter().map(|x| x.1).sum::<usize>();
28-
let sum_indices = values.iter().map(|x| x.0).sum::<usize>();
29-
let count = values.len();
27+
fn obj_test_it<'a>(
28+
values: Vec<(usize, usize)>,
29+
col: &dyn IterableObj<Item = (usize, &'a usize)>,
30+
) {
31+
let sum_values = values.iter().map(|x| x.1).sum::<usize>();
32+
let sum_indices = values.iter().map(|x| x.0).sum::<usize>();
33+
let count = values.len();
3034

31-
// tests
32-
assert_eq!(col.boxed_iter().count(), count);
33-
assert_eq!(col.boxed_iter().map(|x| x.0).sum::<usize>(), sum_indices);
34-
assert_eq!(col.boxed_iter().map(|x| x.1).sum::<usize>(), sum_values);
35-
}
35+
// tests
36+
assert_eq!(col.boxed_iter().count(), count);
37+
assert_eq!(col.boxed_iter().map(|x| x.0).sum::<usize>(), sum_indices);
38+
assert_eq!(col.boxed_iter().map(|x| x.1).sum::<usize>(), sum_values);
39+
}
3640

37-
#[test]
38-
fn obj_enumerated() {
39-
let a = vec![1, 2, 3, 4];
40-
obj_test_it(
41-
a.clone().into_iter().enumerate().collect::<Vec<_>>(),
42-
&a.enumerated(),
43-
);
41+
#[test]
42+
fn obj_enumerated() {
43+
let a = vec![1, 2, 3, 4];
44+
obj_test_it(
45+
a.clone().into_iter().enumerate().collect::<Vec<_>>(),
46+
&a.enumerated(),
47+
);
48+
}
4449
}

tests/fields_of_generic_iterables.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#![cfg(feature = "std")]
2+
13
use orx_iterable::*;
24
use std::collections::{BTreeSet, LinkedList, VecDeque};
35

tests/fields_of_iterable_objects.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#![cfg(feature = "std")]
2+
13
use orx_iterable::{obj_safe::*, IntoCloningIterable};
24
use std::{
35
collections::{BTreeSet, LinkedList, VecDeque},

tests/filter_mapped.rs

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use obj_safe::IterableObj;
21
use orx_iterable::*;
32

43
fn test_it(values: Vec<usize>, col: impl Iterable<Item = usize>) {
@@ -26,29 +25,32 @@ fn filter_mapped() {
2625
);
2726
}
2827

29-
// obj
30-
31-
fn obj_test_it(values: Vec<usize>, col: &dyn IterableObj<Item = usize>) {
32-
let sum = values.iter().sum::<usize>();
33-
let count = values.len();
34-
35-
// tests
36-
assert_eq!(col.boxed_iter().count(), count);
37-
assert_eq!(col.boxed_iter().sum::<usize>(), sum);
38-
}
39-
40-
#[test]
41-
fn obj_filter_mapped() {
42-
obj_test_it(
43-
vec![1, 4, 7, 11],
44-
&vec![1, 15, 4, 7, 33, 11].filter_mapped(|x| (*x < 12).then_some(*x)),
45-
);
46-
47-
assert_eq!(
48-
vec![4.to_string()],
49-
[1, 4, 7, 11]
50-
.filter_mapped(|x| (*x % 2 == 0).then_some(x.to_string()))
51-
.iter()
52-
.collect::<Vec<_>>(),
53-
);
28+
#[cfg(feature = "std")]
29+
mod object_safe {
30+
use orx_iterable::{obj_safe::*, *};
31+
32+
fn obj_test_it(values: Vec<usize>, col: &dyn IterableObj<Item = usize>) {
33+
let sum = values.iter().sum::<usize>();
34+
let count = values.len();
35+
36+
// tests
37+
assert_eq!(col.boxed_iter().count(), count);
38+
assert_eq!(col.boxed_iter().sum::<usize>(), sum);
39+
}
40+
41+
#[test]
42+
fn obj_filter_mapped() {
43+
obj_test_it(
44+
vec![1, 4, 7, 11],
45+
&vec![1, 15, 4, 7, 33, 11].filter_mapped(|x| (*x < 12).then_some(*x)),
46+
);
47+
48+
assert_eq!(
49+
vec![4.to_string()],
50+
[1, 4, 7, 11]
51+
.filter_mapped(|x| (*x % 2 == 0).then_some(x.to_string()))
52+
.iter()
53+
.collect::<Vec<_>>(),
54+
);
55+
}
5456
}

0 commit comments

Comments
 (0)