Skip to content

Commit f1d0eef

Browse files
committed
add tests for less_equal greater_equal
1 parent 92f238d commit f1d0eef

File tree

2 files changed

+75
-36
lines changed

2 files changed

+75
-36
lines changed

README.md

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,48 @@ fn equal_example() -> Result<(), Error<u8>> {
381381
}
382382
```
383383

384+
## LessEqual
385+
386+
`LessEqual` is a type that signifies the target is less than or equal to a certain number.
387+
388+
```rust
389+
type Age = LessEqualU8<80>;
390+
391+
fn less_equal_example() -> Result<(), Error<u8>> {
392+
let age = Age::new(79)?;
393+
assert_eq!(age.into_value(), 79);
394+
395+
let age = Age::new(80)?;
396+
assert_eq!(age.into_value(), 80);
397+
398+
let age = Age::new(81);
399+
assert!(age.is_err());
400+
401+
Ok(())
402+
}
403+
```
404+
405+
## GreaterEqual
406+
407+
`GreaterEqual` is a type that signifies the target is greater than or equal to a certain number.
408+
409+
```rust
410+
type Age = GreaterEqualU8<18>;
411+
412+
fn greater_equal_example() -> Result<(), Error<u8>> {
413+
let age = Age::new(19)?;
414+
assert_eq!(age.into_value(), 19);
415+
416+
let age = Age::new(18)?;
417+
assert_eq!(age.into_value(), 18);
418+
419+
let age = Age::new(17);
420+
assert!(age.is_err());
421+
422+
Ok(())
423+
}
424+
```
425+
384426
# Iterator
385427

386428
`refined_type` has several useful refined types for Iterators.
@@ -604,36 +646,6 @@ impl<ITEM> SkipOption for NoSkip<ITEM> {
604646
}
605647
```
606648

607-
---
608-
609-
## `into_iter()` and `iter()`
610-
611-
The Iterator I’ve prepared has `into_iter` and `iter` implemented.
612-
Therefore, you can easily map or convert it to a different Iterator using `collect`.
613-
Feel free to explore the capabilities of the Iterator you’ve been given!
614-
615-
### `into_iter()`
616-
617-
```rust
618-
fn example_20() -> anyhow::Result<()> {
619-
let ne_vec = NonEmptyVec::new(vec![1, 2, 3])?;
620-
let ne_vec: NonEmptyVec<i32> = ne_vec.into_iter().map(|n| n * 2).map(|n| n * 3).collect();
621-
assert_eq!(ne_vec.into_value(), vec![6, 12, 18]);
622-
Ok(())
623-
}
624-
```
625-
626-
### `iter()`
627-
628-
```rust
629-
fn example_21() -> anyhow::Result<()> {
630-
let ne_vec = NonEmptyVec::new(vec![1, 2, 3])?;
631-
let ne_vec: NonEmptyVec<i32> = ne_vec.iter().map(|n| n * 2).map(|n| n * 3).collect();
632-
assert_eq!(ne_vec.into_value(), vec![6, 12, 18]);
633-
Ok(())
634-
}
635-
```
636-
637649
### `NonEmptyVec` to `NonEmptyVecDeque` using `collect()`
638650

639651
```rust

tests/read_me.rs

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@ use serde_json::json;
33

44
use refined_type::result::Error;
55
use refined_type::rule::composer::Not;
6-
use refined_type::rule::{
7-
EqualU8, ExistsVec, ForAllVec, GreaterU8, HeadVec, IndexRuleVec, IndexVec, InitVec, LastVec,
8-
LengthDefinition, LengthEqual, LengthEqualRule, LengthGreater, LengthLess, LengthMinMax,
9-
LessU8, MinMaxU8, NonEmptyString, NonEmptyStringRule, NonEmptyVec, NonEmptyVecDeque, Reverse,
10-
Rule, SkipFirst, SkipVec, TailVec,
11-
};
6+
use refined_type::rule::{EqualU8, ExistsVec, ForAllVec, GreaterEqualU8, GreaterU8, HeadVec, IndexRuleVec, IndexVec, InitVec, LastVec, LengthDefinition, LengthEqual, LengthEqualRule, LengthGreater, LengthLess, LengthMinMax, LessEqualU8, LessU8, MinMaxU8, NonEmptyString, NonEmptyStringRule, NonEmptyVec, NonEmptyVecDeque, Reverse, Rule, SkipFirst, SkipVec, TailVec};
127
use refined_type::{And, Or, Refined};
138

149
// define a struct for converting from JSON.
@@ -312,6 +307,38 @@ fn equal_example() -> Result<(), Error<u8>> {
312307
Ok(())
313308
}
314309

310+
#[test]
311+
fn less_equal_example() -> Result<(), Error<u8>> {
312+
type Age = LessEqualU8<80>;
313+
314+
let age = Age::new(79)?;
315+
assert_eq!(age.into_value(), 79);
316+
317+
let age = Age::new(80)?;
318+
assert_eq!(age.into_value(), 80);
319+
320+
let age = Age::new(81);
321+
assert!(age.is_err());
322+
323+
Ok(())
324+
}
325+
326+
#[test]
327+
fn greater_equal_example() -> Result<(), Error<u8>> {
328+
type Age = GreaterEqualU8<18>;
329+
330+
let age = Age::new(19)?;
331+
assert_eq!(age.into_value(), 19);
332+
333+
let age = Age::new(18)?;
334+
assert_eq!(age.into_value(), 18);
335+
336+
let age = Age::new(17);
337+
assert!(age.is_err());
338+
339+
Ok(())
340+
}
341+
315342
#[test]
316343
fn example_11() -> Result<(), Error<Vec<String>>> {
317344
let vec = vec!["Hello".to_string(), "World".to_string()];

0 commit comments

Comments
 (0)