summaryrefslogtreecommitdiffstats
path: root/vendor/unicode-ident/tests/static_size.rs
blob: 24effb4895bb0d75980dbb0dcc1f90f5e7cf60cd (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#![allow(clippy::unreadable_literal)]

use std::mem::size_of_val;

#[test]
fn test_size() {
    #[allow(dead_code)]
    #[path = "../src/tables.rs"]
    mod tables;

    let size = size_of_val(&tables::ASCII_START)
        + size_of_val(&tables::ASCII_CONTINUE)
        + size_of_val(&tables::TRIE_START)
        + size_of_val(&tables::TRIE_CONTINUE)
        + size_of_val(&tables::LEAF);
    assert_eq!(10016, size);
}

#[test]
fn test_xid_size() {
    #[deny(dead_code)]
    #[path = "tables/mod.rs"]
    mod tables;

    let size = size_of_val(tables::XID_START) + size_of_val(tables::XID_CONTINUE);
    assert_eq!(11528, size);

    let _ = tables::BY_NAME;
}

#[cfg(target_pointer_width = "64")]
#[test]
fn test_trieset_size() {
    #[deny(dead_code)]
    #[allow(clippy::redundant_static_lifetimes)]
    #[path = "trie/trie.rs"]
    mod trie;

    let ucd_trie::TrieSet {
        tree1_level1,
        tree2_level1,
        tree2_level2,
        tree3_level1,
        tree3_level2,
        tree3_level3,
    } = *trie::XID_START;

    let start_size = size_of_val(trie::XID_START)
        + size_of_val(tree1_level1)
        + size_of_val(tree2_level1)
        + size_of_val(tree2_level2)
        + size_of_val(tree3_level1)
        + size_of_val(tree3_level2)
        + size_of_val(tree3_level3);

    let ucd_trie::TrieSet {
        tree1_level1,
        tree2_level1,
        tree2_level2,
        tree3_level1,
        tree3_level2,
        tree3_level3,
    } = *trie::XID_CONTINUE;

    let continue_size = size_of_val(trie::XID_CONTINUE)
        + size_of_val(tree1_level1)
        + size_of_val(tree2_level1)
        + size_of_val(tree2_level2)
        + size_of_val(tree3_level1)
        + size_of_val(tree3_level2)
        + size_of_val(tree3_level3);

    assert_eq!(10208, start_size + continue_size);

    let _ = trie::BY_NAME;
}

#[test]
fn test_fst_size() {
    let xid_start_fst = include_bytes!("fst/xid_start.fst");
    let xid_continue_fst = include_bytes!("fst/xid_continue.fst");
    let size = xid_start_fst.len() + xid_continue_fst.len();
    assert_eq!(137749, size);
}

#[test]
fn test_roaring_size() {
    #[path = "roaring/mod.rs"]
    mod roaring;

    let xid_start_bitmap = roaring::xid_start_bitmap();
    let xid_continue_bitmap = roaring::xid_continue_bitmap();
    let size = xid_start_bitmap.serialized_size() + xid_continue_bitmap.serialized_size();
    assert_eq!(66104, size);
}