Решение на Code Identifier от Димитър Иринков

Обратно към всички решения

Към профила на Димитър Иринков

Резултати

  • 8 точки от тестове
  • 0 бонус точки
  • 8 точки общо
  • 6 успешни тест(а)
  • 9 неуспешни тест(а)

Код

#[derive(Debug)]
pub struct CodeIdentifier {
var : String,
}
impl CodeIdentifier {
pub fn new(identifier: &str) -> Option<Self> {
identifier.trim_left();
identifier.trim_right();
let mut i = identifier.chars();
if !char::is_alphabetic(i.next().unwrap()) {
return None;
}
while let Some(c) = i.next() {
if !(char::is_alphabetic(c) || char::is_numeric(c) || (c == '_')) {
return None;
}
if char::is_alphabetic(c) && char::is_uppercase(c) {
c.to_lowercase();
}
}
Some(CodeIdentifier {var : String::from(identifier)})
}
pub fn camelcase(&self) -> String {
String::from("someVar")
}
pub fn titlecase(&self) -> String {
String::from("SomeVar")
}
pub fn kebabcase(&self) -> String {
String::from("some-var")
}
pub fn underscore(&self) -> String {
String::from("some_var")
}
pub fn screaming_snakecase(&self) -> String {
String::from("SOME_VAR")
}
}

Лог от изпълнението

Compiling solution v0.1.0 (/tmp/d20190123-22631-5tnldb/solution)
    Finished dev [unoptimized + debuginfo] target(s) in 4.19s
     Running target/debug/deps/solution-2e785d603b538f71

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/debug/deps/solution_test-29808948fb50ed3a

running 15 tests
test solution_test::test_both_static_and_dynamic_strings ... ok
test solution_test::test_camelcase_basic ... ok
test solution_test::test_cyrillic1 ... FAILED
test solution_test::test_digits1 ... FAILED
test solution_test::test_digits2 ... FAILED
test solution_test::test_digits3 ... FAILED
test solution_test::test_kebabcase_basic ... ok
test solution_test::test_multibyte_uppercase ... FAILED
test solution_test::test_normalize_case1 ... FAILED
test solution_test::test_normalize_case2 ... FAILED
test solution_test::test_screaming_snakecase_basic ... ok
test solution_test::test_titlecase_basic ... ok
test solution_test::test_underscore_basic ... ok
test solution_test::test_validity ... FAILED
test solution_test::test_whitespace ... FAILED

failures:

---- solution_test::test_cyrillic1 stdout ----
thread 'solution_test::test_cyrillic1' panicked at 'assertion failed: `(left == right)`
  left: `"some_var"`,
 right: `"що_стана"`', tests/solution_test.rs:94:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.

---- solution_test::test_digits1 stdout ----
thread 'solution_test::test_digits1' panicked at 'assertion failed: `(left == right)`
  left: `"someVar"`,
 right: `"someVar123"`', tests/solution_test.rs:120:5

---- solution_test::test_digits2 stdout ----
thread 'solution_test::test_digits2' panicked at 'assertion failed: `(left == right)`
  left: `"someVar"`,
 right: `"some12Var"`', tests/solution_test.rs:131:5

---- solution_test::test_digits3 stdout ----
thread 'solution_test::test_digits3' panicked at 'assertion failed: `(left == right)`
  left: `"someVar"`,
 right: `"some٣Var"`', tests/solution_test.rs:142:5

---- solution_test::test_multibyte_uppercase stdout ----
thread 'solution_test::test_multibyte_uppercase' panicked at 'assertion failed: `(left == right)`
  left: `"someVar"`,
 right: `"someSSpecialCase"`', tests/solution_test.rs:104:5

---- solution_test::test_normalize_case1 stdout ----
thread 'solution_test::test_normalize_case1' panicked at 'assertion failed: `(left == right)`
  left: `"some_var"`,
 right: `"somevar"`', tests/solution_test.rs:72:5

---- solution_test::test_normalize_case2 stdout ----
thread 'solution_test::test_normalize_case2' panicked at 'assertion failed: `(left == right)`
  left: `"SOME_VAR"`,
 right: `"SOMEVAR"`', tests/solution_test.rs:84:5

---- solution_test::test_validity stdout ----
thread 'solution_test::test_validity' panicked at 'assertion failed: CodeIdentifier::new(" some_var ").is_some()', tests/solution_test.rs:18:5

---- solution_test::test_whitespace stdout ----
thread 'solution_test::test_whitespace' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:355:21


failures:
    solution_test::test_cyrillic1
    solution_test::test_digits1
    solution_test::test_digits2
    solution_test::test_digits3
    solution_test::test_multibyte_uppercase
    solution_test::test_normalize_case1
    solution_test::test_normalize_case2
    solution_test::test_validity
    solution_test::test_whitespace

test result: FAILED. 6 passed; 9 failed; 0 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '--test solution_test'

История (1 версия и 2 коментара)

Димитър качи първо решение на 25.10.2018 16:04 (преди над 4 години)