more composition tests
All checks were successful
buildbot/cargo fmt (1.72) Build done.
buildbot/cargo doc (1.72) Build done.
buildbot/cargo clippy (1.72) Build done.
buildbot/cargo test (1.65) Build done.
buildbot/cargo clippy (1.65) Build done.

This commit is contained in:
AF 2023-10-16 12:12:01 +00:00
parent 3c7b122b2a
commit 02550c0ded
2 changed files with 30 additions and 1 deletions

View File

@ -15,3 +15,7 @@ export LLVM_PROFILE_FILE="prof/%p-%m.profraw"
```sh
./coverage.sh
```
```sh
clear && npx http-server -p 1337 ./target/debug/coverage
```

View File

@ -181,7 +181,9 @@ impl<'a, U: SharedFunctor<'a> + Functor<'a>, V: SharedFunctor<'a>> SharedFunctor
mod composition_tests {
use std::sync::Arc;
use crate::func::instances::{option::*, result::*, tryfuture::TryFutureInstance};
use crate::func::instances::{
option::*, result::*, solo::SoloInstance, tryfuture::TryFutureInstance,
};
use super::*;
@ -261,4 +263,27 @@ mod composition_tests {
.unwrap();
assert!(matches!(res, Selected::B(_, 2)));
}
#[test]
fn solo_composable() {
test_suite::monad_follows_laws::<CompositionInstance<SoloInstance, SoloInstance>>()
.unwrap();
}
#[test]
fn composition_composable() {
test_suite::monad_follows_laws::<
CompositionInstance<
CompositionInstance<SoloInstance, SoloInstance>,
CompositionInstance<SoloInstance, SoloInstance>,
>,
>()
.unwrap();
}
#[test]
fn option_composable() {
test_suite::monad_follows_laws::<CompositionInstance<OptionInstance, OptionInstance>>()
.unwrap();
}
}