rust_intervals 1.0.1

Intervals arithmetic with any combination of open, closed or infinite bounds, along with operations like intersection, convex hull, union, difference,...
# Install
#    cargo install --force cargo-make cargo-fuzz

[config]
default_to_workspace = false

[tasks.default]
alias = "workflow"

[tasks.workflow]
dependencies = [ "test-all", "format", "clippy", "doc", "fuzz", "mutants" ]

[tasks.test-all]
dependencies = ["test-all-features", "test-nostd" ]

[tasks.test-all-features]
command = "cargo"
args = ["test", "--all-features"]

[tasks.test-nostd]
command = "cargo"
args = ["test", "--no-default-features"]

[tasks.cov]
toolchain = "nightly"
install_crate = "cargo-llvm-cov"
command = "cargo"
# Could add  --branch  (superceded by --mcdc)
# Could add --show-instantiations to show how functions are instantiated
args = [ "llvm-cov", "test", "--show-missing-lines", "--doctests", "--html", "--all-features", "--color=always", "--mcdc" ]

# [tasks.cov2]
# toolchain = "nightly"
# install_crate = "cargo-llvm-cov"
# dependencies = ["cov_clean", "cov_no_std", "cov_all_tests", "cov_report" ]
# 
# [tasks.cov_clean]
# toolchain = "nightly"
# command = "cargo"
# args = [ "llvm-cov", "clean", "--workspace" ]
# 
# [tasks.cov_all_tests]
# toolchain = "nightly"
# command = "cargo"
# args = [ "llvm-cov", "--no-report", "--all-features", "--mcdc" ]
# 
# [tasks.cov_no_std]
# toolchain = "nightly"
# command = "cargo"
# args = [ "llvm-cov", "--no-report", "--no-default-features", "--mcdc" ]
# 
# [tasks.cov_report]
# toolchain = "nightly"
# command = "cargo"
# args = [ "llvm-cov", "report", "--html", "--doctests", "--show-missing-lines", "--mcdc" ]

[tasks.doc]
command = "cargo"
args = [ "doc", "-p", "rust_intervals" ]

[tasks.fuzz]
dependencies = [ "fuzz_intv", "fuzz_set" ]

[tasks.fuzz_intv]
toolchain = "nightly"
install_crate = "cargo-fuzz"
command = "cargo"
args = ["fuzz", "run", "fuzz_intervals", "--", "-max_total_time=20", "-max_len=1000"]

[tasks.fuzz_set]
toolchain = "nightly"
install_crate = "cargo-fuzz"
command = "cargo"
args = ["fuzz", "run", "fuzz_intervalsets", "--", "-max_total_time=20", "-max_len=8000"]

[tasks.clippy]
command = "cargo"
args = ["clippy", "--all-features"]

# Find areas in the code that can be modified without impacting any of the tests
[tasks.mutants]
command = "cargo"
args = ["mutants", "--all-features", "--jobs=4"]