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

idaholab / MontePy / 18539205608

15 Oct 2025 06:44PM UTC coverage: 84.326% (-13.2%) from 97.503%
18539205608

push

github

MicahGale
Updated annotations for all top level modules.

24 of 25 new or added lines in 5 files covered. (96.0%)

1103 existing lines in 38 files now uncovered.

7064 of 8377 relevant lines covered (84.33%)

0.84 hits per line

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

93.33
/montepy/input_parser/surface_parser.py
1
# Copyright 2024-2025, Battelle Energy Alliance, LLC All Rights Reserved.
2
from montepy.input_parser.parser_base import MCNP_Parser
1✔
3
from montepy.input_parser.tokens import SurfaceLexer
1✔
4
from montepy.input_parser import syntax_node
1✔
5

6

7
class SurfaceParser(MCNP_Parser):
1✔
8
    """A parser for MCNP surfaces.
9

10
    Returns
11
    -------
12
    SyntaxNode
13
    """
14

15
    debugfile = None
1✔
16

17
    @_(
1✔
18
        "surface_id SURFACE_TYPE padding number_sequence",
19
        "padding surface_id SURFACE_TYPE padding number_sequence",
20
        "surface_id number_phrase SURFACE_TYPE padding number_sequence",
21
        "padding surface_id number_phrase SURFACE_TYPE padding number_sequence",
22
    )
23
    def surface(self, p):
1✔
24
        ret = {}
1✔
25
        if isinstance(p[0], syntax_node.PaddingNode):
1✔
UNCOV
26
            ret["start_pad"] = p[0]
×
27
        else:
28
            ret["start_pad"] = syntax_node.PaddingNode()
1✔
29
        ret["surface_num"] = p.surface_id
1✔
30
        if hasattr(p, "number_phrase"):
1✔
31
            ret["pointer"] = p.number_phrase
1✔
32
        else:
33
            ret["pointer"] = syntax_node.ValueNode(None, int)
1✔
34
        if hasattr(p, "padding"):
1✔
35
            padding = p.padding
1✔
36
        else:
UNCOV
37
            padding = p.padding1
×
38
        ret["surface_type"] = syntax_node.ValueNode(p.SURFACE_TYPE, str, padding)
1✔
39
        ret["data"] = p.number_sequence
1✔
40
        return syntax_node.SyntaxNode("surface", ret)
1✔
41

42
    @_('"*" number_phrase', '"+" number_phrase', "number_phrase")
1✔
43
    def surface_id(self, p):
1✔
44
        ret = {}
1✔
45
        token = None
1✔
46
        if isinstance(p[0], str) and p[0] in {"*", "+"}:
1✔
47
            token = p[0]
1✔
48
        ret["modifier"] = syntax_node.ValueNode(token, str, never_pad=True)
1✔
49

50
        ret["number"] = p.number_phrase
1✔
51
        return syntax_node.SyntaxNode("surface_number", ret)
1✔
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