• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

openmc-dev / openmc / 16207562515

10 Jul 2025 10:44PM UTC coverage: 85.185% (-0.07%) from 85.252%
16207562515

Pull #3471

github

web-flow
Merge 4ef907bd5 into d700d395d
Pull Request #3471: Fix Random Ray Solver Bug: Detect Multiple Point Sources in Same Subdivided Source Region

3 of 3 new or added lines in 1 file covered. (100.0%)

322 existing lines in 33 files now uncovered.

52786 of 61966 relevant lines covered (85.19%)

36160960.56 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

84.21
/include/openmc/xml_interface.h
1
#ifndef OPENMC_XML_INTERFACE_H
2
#define OPENMC_XML_INTERFACE_H
3

4
#include <cstddef> // for size_t
5
#include <sstream> // for stringstream
6
#include <string>
7

8
#include "pugixml.hpp"
9
#include "xtensor/xadapt.hpp"
10
#include "xtensor/xarray.hpp"
11

12
#include "openmc/position.h"
13
#include "openmc/vector.h"
14

15
namespace openmc {
16

17
inline bool check_for_node(pugi::xml_node node, const char* name)
18
{
19
  return node.attribute(name) || node.child(name);
×
20
}
21

22
std::string get_node_value(pugi::xml_node node, const char* name,
23
  bool lowercase = false, bool strip = false);
24

25
bool get_node_value_bool(pugi::xml_node node, const char* name);
26

27
template<typename T>
28
vector<T> get_node_array(
29,135✔
29
  pugi::xml_node node, const char* name, bool lowercase = false)
30
{
31
  // Get value of node attribute/child
32
  std::string s {get_node_value(node, name, lowercase)};
29,135✔
33

34
  // Read values one by one into vector
35
  std::stringstream iss {s};
29,135✔
36
  T value;
×
37
  vector<T> values;
29,135✔
38
  while (iss >> value)
89,375✔
39
    values.push_back(value);
60,240✔
40

41
  return values;
58,270✔
42
}
29,135✔
43

29,135✔
44
template<typename T>
45
xt::xarray<T> get_node_xarray(
46
  pugi::xml_node node, const char* name, bool lowercase = false)
47
{
29,135✔
48
  vector<T> v = get_node_array<T>(node, name, lowercase);
49
  vector<std::size_t> shape = {v.size()};
50
  return xt::adapt(v, shape);
29,135✔
51
}
52

29,135✔
53
std::vector<Position> get_node_position_array(
89,375✔
54
  pugi::xml_node node, const char* name, bool lowercase = false);
60,240✔
55

56
Position get_node_position(
58,270✔
57
  pugi::xml_node node, const char* name, bool lowercase = false);
29,135✔
UNCOV
58

×
59
} // namespace openmc
60
#endif // OPENMC_XML_INTERFACE_H
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc