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 40414 bool exists(const char* key) const
18 {
19
24/48
assocarr<snes_label>::exists(char const*) const:
✓ Branch 3 → 4 taken 1761 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 1761 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 1794 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 1794 times.
✗ Branch 15 → 23 not taken.
assocarr<sourcefile>::exists(char const*) const:
✓ Branch 3 → 4 taken 5434 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 5434 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 5548 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 5548 times.
✗ Branch 15 → 23 not taken.
assocarr<snes_struct>::exists(char const*) const:
✓ Branch 3 → 4 taken 130 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 130 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 130 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 130 times.
✗ Branch 15 → 23 not taken.
assocarr<memory_buffer>::exists(char const*) const:
✓ Branch 3 → 4 taken 5423 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 5423 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 5592 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 5592 times.
✗ Branch 15 → 23 not taken.
assocarr<string>::exists(char const*) const:
✓ Branch 3 → 4 taken 6742 times.
✗ Branch 3 → 11 not taken.
✓ Branch 4 → 5 taken 6742 times.
✗ Branch 4 → 9 not taken.
✓ Branch 13 → 14 taken 7198 times.
✗ Branch 13 → 25 not taken.
✓ Branch 15 → 16 taken 7198 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.
40414 return storage.find(key) != storage.end();
20 }
21
22 21497 right& find(const char* key)
23 {
24
22/48
assocarr<snes_label>::find(char const*):
✓ Branch 2 → 3 taken 1131 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 1131 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 1148 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 1148 times.
✗ Branch 8 → 19 not taken.
assocarr<sourcefile>::find(char const*):
✓ Branch 2 → 3 taken 5430 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 5430 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 5544 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 5544 times.
✗ Branch 8 → 19 not taken.
assocarr<snes_struct>::find(char const*):
✓ Branch 2 → 3 taken 67 times.
✗ Branch 2 → 11 not taken.
✓ Branch 3 → 4 taken 67 times.
✗ Branch 3 → 9 not taken.
✓ Branch 6 → 7 taken 67 times.
✗ Branch 6 → 21 not taken.
✓ Branch 8 → 9 taken 67 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.
21497 return storage.find(key)->second;
25 }
26
27 9064 right& create(const char* key)
28 {
29
22/48
assocarr<snes_label>::create(char const*):
✓ Branch 2 → 3 taken 497 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 497 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 513 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 513 times.
✗ Branch 7 → 13 not taken.
assocarr<sourcefile>::create(char const*):
✓ Branch 2 → 3 taken 148 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 148 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 186 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 186 times.
✗ Branch 7 → 13 not taken.
assocarr<snes_struct>::create(char const*):
✓ Branch 2 → 3 taken 74 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 74 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 74 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 74 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 3444 times.
✗ Branch 2 → 10 not taken.
✓ Branch 3 → 4 taken 3444 times.
✗ Branch 3 → 8 not taken.
✓ Branch 5 → 6 taken 3957 times.
✗ Branch 5 → 15 not taken.
✓ Branch 7 → 8 taken 3957 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.
9064 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 3215 void reset()
38 {
39 3215 storage.clear();
40 3215 }
41
42 335 assocarr()
43 335 {
44 335 }
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 3204 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 249 times.
✓ Branch 9 → 10 taken 126 times.
✓ Branch 22 → 10 taken 257 times.
✓ Branch 22 → 23 taken 157 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 41 times.
✓ Branch 9 → 10 taken 7 times.
✓ Branch 21 → 10 taken 41 times.
✓ Branch 21 → 22 taken 7 times.
void assocarr<sourcefile>::each<void (*)(string const&, sourcefile&)>(void (*)(string const&, sourcefile&)):
✓ Branch 8 → 4 taken 148 times.
✓ Branch 8 → 9 taken 132 times.
✓ Branch 21 → 10 taken 186 times.
✓ Branch 21 → 22 taken 164 times.
void assocarr<string>::each<void (*)(string const&, string&)>(void (*)(string const&, string&)):
✓ Branch 8 → 4 taken 1542 times.
✓ Branch 8 → 9 taken 1030 times.
✓ Branch 21 → 10 taken 1944 times.
✓ Branch 21 → 22 taken 1280 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 132 times.
✓ Branch 21 → 10 taken 69 times.
✓ Branch 21 → 22 taken 164 times.
7774 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 249 times.
✗ Branch 6 → 11 not taken.
✓ Branch 19 → 20 taken 257 times.
✗ Branch 19 → 26 not taken.
void assocarr<sourcefile>::each<void (*)(string const&, sourcefile&)>(void (*)(string const&, sourcefile&)):
✓ Branch 5 → 6 taken 148 times.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 186 times.
✗ Branch 18 → 25 not taken.
void assocarr<string>::each<void (*)(string const&, string&)>(void (*)(string const&, string&)):
✓ Branch 5 → 6 taken 1542 times.
✗ Branch 5 → 10 not taken.
✓ Branch 18 → 19 taken 1944 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.
4570 func(it.first, it.second);
63 }
64 3204 }
65
66 };
67