Commit graph

3714 commits

Author SHA1 Message Date
16yuki0702
19e967ef31
ls: deleting user defined max function (#1591)
This is trivial refactor.
```usize``` can call max method, so deleting user defined max function.
2020-08-26 09:42:27 +02:00
Roy Ivy III
e7a1d13380
Merge pull request #1583 from rivy/fix.test-utils
Fix sub-crate/utility testing
2020-08-23 01:05:35 -05:00
Roy Ivy III
74510d2fa4 refactor/polish ~ cargo fmt 2020-08-19 09:13:09 -05:00
Roy Ivy III
72a5d93a4d maint/CICD ~ remove old/unneeded grcov setup scripting 2020-08-19 09:13:09 -05:00
Roy Ivy III
74200f368b tests ~ (sub-crate/mknod) fix WSL variation in expected test values 2020-08-19 09:13:09 -05:00
Roy Ivy III
2a50dc42c1 tests ~ (sub-crate/factor) fix divisor(0,0) test of factor::numeric::gcd() with early value check and return (fixes #1587) 2020-08-19 09:13:09 -05:00
Roy Ivy III
63315747a5 maint/CICD ~ job naming improvement (decreased jargon) + feature name normalization 2020-08-16 17:02:19 -05:00
Roy Ivy III
bb4b20db81 maint/CICD ~ use alternate grcov configuration recipe (direct CLI options)
- `ignore` and `excl-br-line` options used to target code coverage analysis
- direct/repeated (non-DRY) CLI options are used by necessity (`grcov` is ignoring command line env variables)
2020-08-16 17:02:19 -05:00
Roy Ivy III
c6274b4003 tests ~ disable failing tail test under windows code coverage (with future FixME)
* FixME/note: test_mktemp::test_mktemp_make_temp_dir, test_mktemp::test_mktemp_mktemp, and test_mktemp::test_mktemp_suffix are also failing locally though not for CICD coverage builds
2020-08-16 17:02:19 -05:00
Roy Ivy III
ec964d1b36 maint/dev ~ improve code coverage scripting 2020-08-16 17:02:19 -05:00
Roy Ivy III
9711e5ad42 maint/CICD ~ update CICD code coverage recipe 2020-08-10 10:20:15 -05:00
Roy Ivy III
1c9b12c0d2 maint/CICD ~ add individual uutil/sub-crate testing to CICD code coverage 2020-08-10 10:19:42 -05:00
Roy Ivy III
5478ca9108 tests ~ (sub-crate/od) fix expected f16 formatted test value 2020-08-10 10:19:42 -05:00
Roy Ivy III
b2483cb3c3 tests ~ (sub-crate/od) fix/remove inadvertent doc test (by using ignore) 2020-08-10 10:19:42 -05:00
Roy Ivy III
49d17f9587 tests ~ (sub-crate/od) fix compiler error (mismatched types) 2020-08-10 10:19:42 -05:00
Roy Ivy III
4fa27345be tests ~ (sub-crate/od) fix cargo clippy complaints (from deprecated half::consts to f16::...) 2020-08-10 10:19:42 -05:00
Roy Ivy III
c7cb5cbc37 tests ~ (sub-crate/cat) fix incorrect test attribute usage 2020-08-10 10:19:42 -05:00
Roy Ivy III
c3893edf94 tests ~ (sub-crates) fix 'edition=2018' module import errors
- ref: <https://users.rust-lang.org/t/imports-can-only-refer-to-extern-crate-names/24388> @@ <https://archive.is/iCaXp>
2020-08-10 10:19:42 -05:00
Roy Ivy III
925137afce tests ~ (sub-crate/od) fix cargo clippy complaints (unused imports) 2020-08-10 10:19:41 -05:00
Roy Ivy III
dd72893771 tests ~ (sub-crate/od) fix cargo clippy complaints (deprecated std::error::Error::description) 2020-08-10 10:19:41 -05:00
Roy Ivy III
e07e5c9cd0 maint/dev ~ fix 'util'/'uutil' target aliasing for cargo make ... 2020-08-10 10:19:41 -05:00
Roy Ivy III
137b26def6 maint/CICD ~ add individual uutil/sub-crate testing to CICD 2020-08-10 10:19:41 -05:00
Roy Ivy III
cd51055056 maint/dev ~ add 'test-util' target for cargo make ... 2020-08-10 10:19:41 -05:00
nicoo
fb3a209dff
CI: Drop Appveyor builds (redundant with Github Actions) (#1585) 2020-08-10 16:55:56 +02:00
nicoo
dc6b9a8d62
CI: Improve annotations (#1584)
* CI: Only run rustfmt in one environment

- This displays clippy warnings even when rustfmt fails.
- This avoids displaying 3 copies of the same rustfmt warning as Github
  annotations.
- Avoids duplicated work.

* CI: Suppress warnings when building for the oldest toolchain version

We had cases of warnings emitted due to `rustc` bugs that were fixed
in non-obsolete versions.

* factor: Remove a workaround for warnings on obsolete rustc
2020-08-10 16:53:32 +02:00
nicoo
b0ac07296f
head: Ignore known-failing tests introduced in #1579 (#1586)
This caused tests to fail on all unrelated work.
In particular, CI went red fall all pull requests.
2020-08-09 18:51:04 +02:00
Roy Ivy III
b38abbce5e tests: (head) cargo fmt 2020-08-08 23:04:29 -05:00
Chad Brewbaker
c1f518e586 Adding failing GNU head tests (#1579)
Co-authored-by: Chad Brewbaker <chad@flyingdogsolutions.com>
2020-08-08 22:26:49 -05:00
Felipe Lema
ba6b55f117 feature[env]: Add support for --chdir=DIR in env (fixes #1568) (#1569) 2020-08-08 22:26:49 -05:00
nicoo
d9be24e354 factor: Make the implementation of GCD more readable (#1576)
* factor::numeric::gcd: Switch variable names to be more consistent

* factor::numeric::gcd: Improve comments

* factor::numeric::gcd: Extend loop invariant to v
2020-08-08 22:26:49 -05:00
nicoo
37f717f5e3 factor: Add tests against (random) numbers with known factorisations (#1573) (#1578)
* factor::Factors: Derive implementations of Eq and PartialEq

* factors::Factors: Implement quickcheck::Arbitrary

This generates uniformly-distributed integers with known factorisations,
and will enable further testing.

* factor: Test against random numbers with known factorisations

* factor::Factors::arbitrary: Simplify method signature
2020-08-08 22:26:25 -05:00
nicoo
34a5941ee9
factor::numeric: Add more property-based tests (#1577)
* factor::numeric::gcd: Rename test against the Euclidean algorithm

* factor::numeric::gcd: Add various property-based tests

* factor::numeric::modular_inverse: Rename test

* factor::numeric::modular_inverse: Add test on random values
2020-08-03 14:00:34 +02:00
nicoo
70828329ba
factor::miller_rabin: Deduplicate parametrized_check macro (#1575)
* factor::miller_rabin::tests::first_composite: Drop useless generic

* factor::miller_rabin::tests: Reuse parametrized_check macro
2020-08-03 13:58:09 +02:00
nicoo
1eabda91cf
factor: Split numeric.rs into multiple modules (#1567)
* factor::numeric: Start refactoring into multiple submodules

No change to the module's interface, but it should make it much easier to
keep the tests right next to the code they are related to.

Moreover, build.rs' dependency is now limited to numeric::{modular_inverse,
traits}, meaning that the rest of it can use build-time generated tables etc.

* factor::numeric: Move gcd (and its test) to a submodule

* factor::numeric: Move Montgomery arithmetic to its own module

Finally hollowed-out numeric.rs

* factor: Move numeric.rs to numeric/mod.rs

* factor::numeric: Fix an erroneous lint on obsolete Rust versions
2020-08-02 20:28:00 +02:00
Sylvestre Ledru
85e2e1d0ee
Merge pull request #1566 from nbraud/factor/miller-rabin/copyright
factor::miller_rabin: Add missing copyright header in source file
2020-08-02 14:09:44 +02:00
Sylvestre Ledru
d57cba1f2a
Merge pull request #1565 from rivy/fix.warnings
Fix CICD warnings
2020-07-29 17:55:40 +02:00
nicoo
645e9a24bd factor::miller_rabin: Add missing copyright header in source file 2020-07-26 14:59:30 +02:00
Roy Ivy III
c36d71ba43 refactor/polish ~ fix cargo clippy complaint (needless_lifetimes) 2020-07-25 11:09:10 -05:00
Roy Ivy III
305c3cbcdb refactor/polish ~ fix cargo clippy complaint (bind_instead_of_map) 2020-07-25 11:09:10 -05:00
Roy Ivy III
326ff36793 refactor/polosh ~ fix cargo clippy complaint (reversed_empty_ranges) 2020-07-25 11:09:10 -05:00
Roy Ivy III
d3ef4bd7da maint/CICD ~ update 'actions/upload-artifact' to 'v2' 2020-07-25 11:09:10 -05:00
Roy Ivy III
a6d7379b97
Merge pull request #1563 from nbraud/factor/faster/gcd
factor/perf ~ speed up factor::numeric::gcd
2020-07-25 11:07:57 -05:00
nicoo
6bef6306c0 factor::numeric::gcd: Avoid redundant u64::trailing_zeros and shifts
7 to 10% faster, according to criterion.
2020-07-25 15:04:57 +02:00
Roy Ivy III
c04c7a14e3
Merge pull request #1562 from nbraud/factor/faster/miller-rabbin
factor::miller_rabin: minor refactoring
2020-07-24 21:54:09 -05:00
nicoo
3e55139c13 factor::miller_rabbin::Result: Mark as #[must_use]
Ignoring a value of that type is a bug: they are only produced by
`miller_rabbin::test`, which is a pure, but expensive, function.

As such, an ignored value is always either a mistake, or an easy
optimisation opportunity (just remove the useless call to `test`).
2020-07-24 23:06:08 +02:00
nicoo
ecc3e2db24 factor::miller_rabin::test: Minor readability improvement 2020-07-24 23:06:08 +02:00
nicoo
e415b17c01 factor::miller_rabin: Remove duplicated work
The duplicate work was introduced in 2015.
2020-07-24 23:06:06 +02:00
nicoo
29d45e472d factor::numeric::gcd: Implement Stein's binary GCD algorithm
Also add a property-based test against the Euclidean implementation.

numeric::gcd got ~50-65% faster, according to criterion. The effect on the
overall system is small, but later PRs will use a lot more GCD computations.
2020-07-24 23:00:32 +02:00
nicoo
4f23767b85 factor::numeric::gcd: Add criterion-powered benchmark
The function had to be made `pub`, this is a [known limitation] of Criterion.

[known limitation]: https://bheisler.github.io/criterion.rs/book/user_guide/known_limitations.html
2020-07-24 22:58:26 +02:00
nicoo
1b593d94c9 factor: Update rand dependency to v0.7 2020-07-24 22:57:08 +02:00