summaryrefslogtreecommitdiffstats
path: root/third_party/rust/litrs/src/bool/tests.rs
blob: 4b829244b8d7a6262e1ae2c3091e939141dec1c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
use crate::{
    Literal, BoolLit,
    test_util::assert_parse_ok_eq,
};

macro_rules! assert_bool_parse {
    ($input:literal, $expected:expr) => {
        assert_parse_ok_eq(
            $input, Literal::parse($input), Literal::Bool($expected), "Literal::parse");
        assert_parse_ok_eq($input, BoolLit::parse($input), $expected, "BoolLit::parse");
    };
}



#[test]
fn parse_ok() {
    assert_bool_parse!("false", BoolLit::False);
    assert_bool_parse!("true", BoolLit::True);
}

#[test]
fn parse_err() {
    assert!(Literal::parse("fa").is_err());
    assert!(Literal::parse("fal").is_err());
    assert!(Literal::parse("fals").is_err());
    assert!(Literal::parse(" false").is_err());
    assert!(Literal::parse("false ").is_err());
    assert!(Literal::parse("False").is_err());

    assert!(Literal::parse("tr").is_err());
    assert!(Literal::parse("tru").is_err());
    assert!(Literal::parse(" true").is_err());
    assert!(Literal::parse("true ").is_err());
    assert!(Literal::parse("True").is_err());
}

#[test]
fn value() {
    assert!(!BoolLit::False.value());
    assert!(BoolLit::True.value());
}

#[test]
fn as_str() {
    assert_eq!(BoolLit::False.as_str(), "false");
    assert_eq!(BoolLit::True.as_str(), "true");
}