Решение на Polynomial от Биляна Добрева
Обратно към всички решения
Към профила на Биляна Добрева
Резултати
- 7 точки от тестове
- 0 бонус точки
- 7 точки общо
- 7 успешни тест(а)
- 8 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (file:///tmp/d20171121-6053-c1a731/solution)
warning: unused variable: `points`
--> src/lib.rs:20:24
|
20 | pub fn interpolate(points: Vec<(f64, f64)>) -> Option<Self> {
| ^^^^^^
|
= note: #[warn(unused_variables)] on by default
= note: to disable this warning, consider using `_points` instead
warning: unused variable: `points`
--> src/lib.rs:20:24
|
20 | pub fn interpolate(points: Vec<(f64, f64)>) -> Option<Self> {
| ^^^^^^
|
= note: #[warn(unused_variables)] on by default
= note: to disable this warning, consider using `_points` instead
Finished dev [unoptimized + debuginfo] target(s) in 5.52 secs
Running target/debug/deps/solution-200db9172ea1f728
running 1 test
test tests::it_works ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-e3c9eb714e09105e
running 15 tests
test solution_test::test_add_poly ... FAILED
test solution_test::test_add_poly_zero_one ... FAILED
test solution_test::test_arithmetic_properties ... FAILED
test solution_test::test_create_poly ... ok
test solution_test::test_div_poly_f64 ... ok
test solution_test::test_div_poly_f64_zero ... ok
test solution_test::test_fp_comparison ... ok
test solution_test::test_has_point ... FAILED
test solution_test::test_lagrange_poly_1 ... FAILED
test solution_test::test_lagrange_poly_2 ... FAILED
test solution_test::test_lagrange_poly_err_eq_x ... ok
test solution_test::test_mul_poly ... FAILED
test solution_test::test_mul_poly_f64 ... ok
test solution_test::test_mul_poly_f64_zero ... ok
test solution_test::test_mul_poly_zero_one ... FAILED
failures:
---- solution_test::test_add_poly stdout ----
thread 'solution_test::test_add_poly' panicked at 'assertion failed: `(left == right)`
left: `Polynomial { c: [1, 0] }`,
right: `Polynomial { c: [2, 1, 2] }`', tests/solution_test.rs:103:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.
---- solution_test::test_add_poly_zero_one stdout ----
thread 'solution_test::test_add_poly_zero_one' panicked at 'assertion failed: `(left == right)`
left: `Polynomial { c: [0] }`,
right: `Polynomial { c: [2, 0, 3] }`', tests/solution_test.rs:87:4
---- solution_test::test_arithmetic_properties stdout ----
thread 'solution_test::test_arithmetic_properties' panicked at 'attempt to subtract with overflow', src/lib.rs:170:8
---- solution_test::test_has_point stdout ----
thread 'solution_test::test_has_point' panicked at 'attempt to subtract with overflow', src/lib.rs:13:18
---- solution_test::test_lagrange_poly_1 stdout ----
thread 'solution_test::test_lagrange_poly_1' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:335:20
---- solution_test::test_lagrange_poly_2 stdout ----
thread 'solution_test::test_lagrange_poly_2' panicked at 'assertion failed: poly.is_some()', tests/solution_test.rs:232:4
---- solution_test::test_mul_poly stdout ----
thread 'solution_test::test_mul_poly' panicked at 'attempt to subtract with overflow', src/lib.rs:170:8
---- solution_test::test_mul_poly_zero_one stdout ----
thread 'solution_test::test_mul_poly_zero_one' panicked at 'attempt to subtract with overflow', src/lib.rs:170:8
failures:
solution_test::test_add_poly
solution_test::test_add_poly_zero_one
solution_test::test_arithmetic_properties
solution_test::test_has_point
solution_test::test_lagrange_poly_1
solution_test::test_lagrange_poly_2
solution_test::test_mul_poly
solution_test::test_mul_poly_zero_one
test result: FAILED. 7 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out
error: test failed, to rerun pass '--test solution_test'
История (2 версии и 4 коментара)
Биляна качи първо решение на 20.11.2017 14:37 (преди почти 8 години)
Биляна качи решение на 21.11.2017 15:00 (преди почти 8 години)
Различен начин, по който може би може да напишеш това:
Или нещо в тоя дух, поне. Обръщането на итератора с
rev
е безплатно, понеже имаме вектор.Има вградена функция, която можеш да ползваш за това, която вероятно ще е по-ефективна: https://doc.rust-lang.org/std/primitive.f64.html#method.powi. Само дето трябва да cast-неш аргумента към
i32
, но не би било проблем за нас, в случая. Доста голям полином трябва да се направи, за да бъде cast-ването проблем :).