asar coverage - build #


src/asar/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
128 of 130, 0 excluded
98.5%
Functions:
40 of 41, 0 excluded
97.6%
Branches:
111 of 220, 0 excluded
50.5%

assocarr.h
Line Branch Exec Source
1 // this used to be a custom map type, now replaced with just a wrapper around std::unordered_map.
2
3 #pragma once
4
5 #include <initializer_list>
6 #include <unordered_map>
7 #include "libstr.h"
8
9 template<typename right>
10 class assocarr {
11 private:
12
13 std::unordered_map<string, right> storage;
14
15 public:
16
17 40174 bool exists(const char* key) const
18 {
19
24/48
assocarr<snes_label>::exists(char const*) const:
✓ Branch 3 → 4 taken 1680 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 1680 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 1713 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 1713 times.
✗ Branch 15 → 23 not taken.
assocarr<sourcefile>::exists(char const*) const:
✓ Branch 3 → 4 taken 5428 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 5428 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 5542 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 5542 times.
✗ Branch 15 → 23 not taken.
assocarr<snes_struct>::exists(char const*) const:
✓ Branch 3 → 4 taken 125 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 125 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 125 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 125 times.
✗ Branch 15 → 23 not taken.
assocarr<memory_buffer>::exists(char const*) const:
✓ Branch 3 → 4 taken 5419 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 5419 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 5588 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 5588 times.
✗ Branch 15 → 23 not taken.
assocarr<string>::exists(char const*) const:
✓ Branch 3 → 4 taken 6718 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 6718 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 7174 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 7174 times.
✗ Branch 15 → 23 not taken.
assocarr<macrodata*>::exists(char const*) const:
✓ Branch 3 → 4 taken 331 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 331 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 331 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 331 times.
✗ Branch 15 → 23 not taken.
40174 return storage.find(key) != storage.end();
20 }
21
22 21041 right& find(const char* key)
23 {
24
22/48
assocarr<snes_label>::find(char const*):
✓ Branch 2 → 3 taken 1076 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 1076 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 1093 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 1093 times.
✗ Branch 8 → 19 not taken.
assocarr<sourcefile>::find(char const*):
✓ Branch 2 → 3 taken 5278 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 5278 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 5354 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 5354 times.
✗ Branch 8 → 19 not taken.
assocarr<snes_struct>::find(char const*):
✓ Branch 2 → 3 taken 65 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 65 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 65 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 65 times.
✗ Branch 8 → 19 not taken.
assocarr<memory_buffer>::find(char const*):
✗ Branch 2 → 3 not taken.
✗ Branch 2 → 11 not taken.
✗ Branch 3 → 4 not taken.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 50 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 50 times.
✗ Branch 8 → 19 not taken.
assocarr<string>::find(char const*):
✓ Branch 2 → 3 taken 3753 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 3753 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 3785 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 3785 times.
✗ Branch 8 → 19 not taken.
assocarr<macrodata*>::find(char const*):
✓ Branch 2 → 3 taken 261 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 261 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 261 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 261 times.
✗ Branch 8 → 19 not taken.
21041 return storage.find(key)->second;
25 }
26
27 8892 right& create(const char* key)
28 {
29
22/48
assocarr<snes_label>::create(char const*):
✓ Branch 2 → 3 taken 446 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 446 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 462 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 462 times.
✗ Branch 7 → 13 not taken.
assocarr<sourcefile>::create(char const*):
✓ Branch 2 → 3 taken 146 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 146 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 184 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 184 times.
✗ Branch 7 → 13 not taken.
assocarr<snes_struct>::create(char const*):
✓ Branch 2 → 3 taken 71 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 71 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 71 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 71 times.
✗ Branch 7 → 13 not taken.
assocarr<memory_buffer>::create(char const*):
✗ Branch 2 → 3 not taken.
✗ Branch 2 → 10 not taken.
✗ Branch 3 → 4 not taken.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 33 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 33 times.
✗ Branch 7 → 13 not taken.
assocarr<string>::create(char const*):
✓ Branch 2 → 3 taken 3414 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 3414 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 3927 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 3927 times.
✗ Branch 7 → 13 not taken.
assocarr<macrodata*>::create(char const*):
✓ Branch 2 → 3 taken 69 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 69 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 69 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 69 times.
✗ Branch 7 → 13 not taken.
8892 return storage[key];
30 }
31
32 201 void remove(const char* key)
33 {
34
6/16
assocarr<memory_buffer>::remove(char const*):
✗ Branch 2 → 3 not taken.
✗ Branch 2 → 8 not taken.
✗ Branch 3 → 4 not taken.
✗ Branch 3 → 6 not taken.
✓ Branch 5 → 6 taken 33 times.
✗ Branch 5 → 13 not taken.
✓ Branch 7 → 8 taken 33 times.
✗ Branch 7 → 11 not taken.
assocarr<string>::remove(char const*):
✓ Branch 2 → 3 taken 84 times.
✗ Branch 2 → 8 not taken.
✓ Branch 3 → 4 taken 84 times.
✗ Branch 3 → 6 not taken.
✓ Branch 5 → 6 taken 84 times.
✗ Branch 5 → 13 not taken.
✓ Branch 7 → 8 taken 84 times.
✗ Branch 7 → 11 not taken.
201 storage.erase(key);
35 201 }
36
37 3171 void reset()
38 {
39 3171 storage.clear();
40 3171 }
41
42 331 assocarr()
43 331 {
44 331 }
45
46 assocarr(std::initializer_list<std::pair<const char*, right>> list)
47 {
48 for (auto& it : list) {
49 storage.insert(std::move(it));
50 }
51 }
52
53 right& operator[](const char* key)
54 {
55 return create(key);
56 }
57
58 //void(*func)(const char * key, right& value)
59 3156 template<typename T> void each(T func)
60 {
61
26/32
void assocarr<snes_label>::each<asar_getalllabels::{lambda(string const&, snes_label const&)#1}>(asar_getalllabels::{lambda(string const&, snes_label const&)#1}):
✗ Branch 8 → 4 not taken.
✗ Branch 8 → 9 not taken.
✓ Branch 21 → 10 taken 5 times.
✓ Branch 21 → 22 taken 1 time.
void assocarr<snes_label>::each<create_symbols_file(string, unsigned int)::{lambda(string const&, snes_label&)#1}>(create_symbols_file(string, unsigned int)::{lambda(string const&, snes_label&)#1}):
✗ Branch 8 → 4 not taken.
✗ Branch 8 → 9 not taken.
✓ Branch 21 → 10 taken 2 times.
✓ Branch 21 → 22 taken 1 time.
void assocarr<snes_label>::each<allocate_freespaces()::{lambda(char const*, snes_label&)#1}>(allocate_freespaces()::{lambda(char const*, snes_label&)#1}):
✓ Branch 9 → 4 taken 223 times.
✓ Branch 9 → 10 taken 124 times.
✓ Branch 22 → 10 taken 231 times.
✓ Branch 22 → 23 taken 155 times.
void assocarr<snes_label>::each<(anonymous namespace)::fn_datasize(math_val)::{lambda(char const*, snes_label)#1}>((anonymous namespace)::fn_datasize(math_val)::{lambda(char const*, snes_label)#1}):
✓ Branch 9 → 4 taken 15 times.
✓ Branch 9 → 10 taken 5 times.
✓ Branch 21 → 10 taken 15 times.
✓ Branch 21 → 22 taken 5 times.
void assocarr<sourcefile>::each<void (*)(string const&, sourcefile&)>(void (*)(string const&, sourcefile&)):
✓ Branch 8 → 4 taken 146 times.
✓ Branch 8 → 9 taken 130 times.
✓ Branch 21 → 10 taken 184 times.
✓ Branch 21 → 22 taken 162 times.
void assocarr<string>::each<void (*)(string const&, string&)>(void (*)(string const&, string&)):
✓ Branch 8 → 4 taken 1518 times.
✓ Branch 8 → 9 taken 1014 times.
✓ Branch 21 → 10 taken 1920 times.
✓ Branch 21 → 22 taken 1264 times.
void assocarr<string>::each<asar_getalldefines::{lambda(string const&, string&)#1}>(asar_getalldefines::{lambda(string const&, string&)#1}):
✗ Branch 8 → 4 not taken.
✗ Branch 8 → 9 not taken.
✓ Branch 21 → 10 taken 17 times.
✓ Branch 21 → 22 taken 3 times.
void assocarr<macrodata*>::each<void (*)(string const&, macrodata*&)>(void (*)(string const&, macrodata*&)):
✓ Branch 8 → 4 taken 69 times.
✓ Branch 8 → 9 taken 130 times.
✓ Branch 21 → 10 taken 69 times.
✓ Branch 21 → 22 taken 162 times.
7570 for (auto& it : storage) {
62
11/28
void assocarr<snes_label>::each<asar_getalllabels::{lambda(string const&, snes_label const&)#1}>(asar_getalllabels::{lambda(string const&, snes_label const&)#1}):
✗ Branch 5 → 6 not taken.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 5 times.
✗ Branch 18 → 25 not taken.
void assocarr<snes_label>::each<create_symbols_file(string, unsigned int)::{lambda(string const&, snes_label&)#1}>(create_symbols_file(string, unsigned int)::{lambda(string const&, snes_label&)#1}):
✗ Branch 5 → 6 not taken.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 2 times.
✗ Branch 18 → 25 not taken.
void assocarr<snes_label>::each<allocate_freespaces()::{lambda(char const*, snes_label&)#1}>(allocate_freespaces()::{lambda(char const*, snes_label&)#1}):
✓ Branch 6 → 7 taken 223 times.
✗ Branch 6 → 11 not taken.
✓ Branch 19 → 20 taken 231 times.
✗ Branch 19 → 26 not taken.
void assocarr<sourcefile>::each<void (*)(string const&, sourcefile&)>(void (*)(string const&, sourcefile&)):
✓ Branch 5 → 6 taken 146 times.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 184 times.
✗ Branch 18 → 25 not taken.
void assocarr<string>::each<void (*)(string const&, string&)>(void (*)(string const&, string&)):
✓ Branch 5 → 6 taken 1518 times.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 1920 times.
✗ Branch 18 → 25 not taken.
void assocarr<string>::each<asar_getalldefines::{lambda(string const&, string&)#1}>(asar_getalldefines::{lambda(string const&, string&)#1}):
✗ Branch 5 → 6 not taken.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 17 times.
✗ Branch 18 → 25 not taken.
void assocarr<macrodata*>::each<void (*)(string const&, macrodata*&)>(void (*)(string const&, macrodata*&)):
✓ Branch 5 → 6 taken 69 times.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 69 times.
✗ Branch 18 → 25 not taken.
4414 func(it.first, it.second);
63 }
64 3156 }
65
66 };
67