Coverage report: 99%

Files Functions Classes

coverage.py v7.15.2, created at 2026-08-31 04:18 +0200

File function   statements missing excluded   coverage
src/galaxy_beep_frame/__init__.py (no function)   0 0 0   100%
src/galaxy_beep_frame/constant.py (no function)   8 0 0   100%
src/galaxy_beep_frame/converter/__init__.py (no function)   5 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.__post_init__   3 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._reset_frame   7 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._ensure_current_token   3 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._ensure_data   4 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._new_token   17 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._start   4 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._msg_type   9 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._channel   11 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._message   11 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._continuation   13 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._sequence   10 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._size   10 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._answer   10 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._header_end   7 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._payload   9 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer._end   13 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.lex_byte   1 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.feed   6 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.lex   6 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.lex_iterator   5 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.lex_stream   6 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.lex_stream_iterator   6 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.connections_to_human   12 0 0   100%
src/galaxy_beep_frame/converter/lexer.py Lexer.node_to_human   5 0 0   100%
src/galaxy_beep_frame/converter/lexer.py (no function)   47 0 4   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_answer_number   15 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_channel_number   11 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_continuation_indicator   17 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_header   12 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_message_number   11 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_message_type   23 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_payload   11 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser._get_sequence_number   11 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser.parse_frame   10 0 0   100%
src/galaxy_beep_frame/converter/parser.py Parser.parse   1 0 0   100%
src/galaxy_beep_frame/converter/parser.py (no function)   28 0 2   100%
src/galaxy_beep_frame/converter/state.py (no function)   13 0 0   100%
src/galaxy_beep_frame/converter/token/__init__.py Token.__post_init__   1 0 0   100%
src/galaxy_beep_frame/converter/token/__init__.py Token._ensure_mutable   4 0 0   100%
src/galaxy_beep_frame/converter/token/__init__.py Token.update   2 0 0   100%
src/galaxy_beep_frame/converter/token/__init__.py Token.end   2 0 0   100%
src/galaxy_beep_frame/converter/token/__init__.py (no function)   14 0 0   100%
src/galaxy_beep_frame/converter/token/immutable_state.py ImmutableState.is_mutable   1 0 0   100%
src/galaxy_beep_frame/converter/token/immutable_state.py (no function)   4 0 0   100%
src/galaxy_beep_frame/converter/token/mutability_state.py MutabilityState.is_mutable   1 0 0   100%
src/galaxy_beep_frame/converter/token/mutability_state.py (no function)   5 0 2   100%
src/galaxy_beep_frame/converter/token/mutable_state.py MutableState.is_mutable   1 0 0   100%
src/galaxy_beep_frame/converter/token/mutable_state.py MutableState.update   1 0 0   100%
src/galaxy_beep_frame/converter/token/mutable_state.py MutableState.end   1 0 0   100%
src/galaxy_beep_frame/converter/token/mutable_state.py (no function)   7 0 0   100%
src/galaxy_beep_frame/converter/token/token_type.py (no function)   12 0 0   100%
src/galaxy_beep_frame/exception/__init__.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/base.py (no function)   1 0 0   100%
src/galaxy_beep_frame/exception/converter/__init__.py (no function)   14 0 0   100%
src/galaxy_beep_frame/exception/converter/bad_end.py BadEndError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/bad_end.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/bad_header_end.py BadHeaderEndError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/bad_header_end.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/invalid_byte.py InvalidByteError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/invalid_byte.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/invalid_token.py InvalidTokenTypeError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/invalid_token.py (no function)   4 0 2   100%
src/galaxy_beep_frame/exception/converter/lexer.py (no function)   2 0 0   100%
src/galaxy_beep_frame/exception/converter/no_current_token.py NoCurrentTokenError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/no_current_token.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/node_count.py NodeCountError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/node_count.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/node_none.py NodeNoneError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/node_none.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/not_found.py NotFoundError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/not_found.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/token_immutable.py TokenImmutableError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/token_immutable.py (no function)   4 0 2   100%
src/galaxy_beep_frame/exception/converter/token_mutable.py TokenMutableError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/token_mutable.py (no function)   4 0 2   100%
src/galaxy_beep_frame/exception/converter/unknown_continuation_indicator.py UnknownContinuationIndicatorError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/unknown_continuation_indicator.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/converter/unknown_msg_type.py UnknownMsgTypeError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/converter/unknown_msg_type.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/frame/__init__.py (no function)   8 0 0   100%
src/galaxy_beep_frame/exception/frame/above_range.py AboveRangeError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/frame/above_range.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/frame/answer_number.py AnswerNumberError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/frame/answer_number.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/frame/base.py (no function)   2 0 0   100%
src/galaxy_beep_frame/exception/frame/below_range.py BelowRangeError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/frame/below_range.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/frame/invalid_continuation_indicator.py InvalidContinuationIndicatorError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/frame/invalid_continuation_indicator.py (no function)   4 0 3   100%
src/galaxy_beep_frame/exception/frame/missing_answer_number.py MissingAnswerNumberError.__init__   1 0 0   100%
src/galaxy_beep_frame/exception/frame/missing_answer_number.py (no function)   3 0 0   100%
src/galaxy_beep_frame/exception/frame/range.py (no function)   2 0 0   100%
src/galaxy_beep_frame/frame/__init__.py (no function)   4 0 0   100%
src/galaxy_beep_frame/frame/base.py Frame.__post_init__   1 0 0   100%
src/galaxy_beep_frame/frame/base.py Frame.build   2 0 0   100%
src/galaxy_beep_frame/frame/base.py (no function)   8 0 3   100%
src/galaxy_beep_frame/frame/header_type/__init__.py (no function)   8 0 0   100%
src/galaxy_beep_frame/frame/header_type/answer.py Answer.__post_init__   4 0 0   100%
src/galaxy_beep_frame/frame/header_type/answer.py Answer.build   1 0 0   100%
src/galaxy_beep_frame/frame/header_type/answer.py (no function)   9 0 2   100%
src/galaxy_beep_frame/frame/header_type/base.py HeaderType.make   16 0 0   100%
src/galaxy_beep_frame/frame/header_type/base.py HeaderType.build   1 0 0   100%
src/galaxy_beep_frame/frame/header_type/base.py (no function)   10 0 2   100%
src/galaxy_beep_frame/frame/header_type/continuation_indicator.py (no function)   4 0 0   100%
src/galaxy_beep_frame/frame/header_type/error.py Error.build   1 0 0   100%
src/galaxy_beep_frame/frame/header_type/error.py (no function)   6 0 2   100%
src/galaxy_beep_frame/frame/header_type/message.py Message.build   1 0 0   100%
src/galaxy_beep_frame/frame/header_type/message.py (no function)   6 0 2   100%
src/galaxy_beep_frame/frame/header_type/null.py Null.build   1 0 0   100%
src/galaxy_beep_frame/frame/header_type/null.py (no function)   3 0 0   100%
src/galaxy_beep_frame/frame/header_type/reply.py Reply.build   1 0 0   100%
src/galaxy_beep_frame/frame/header_type/reply.py (no function)   6 0 2   100%
src/galaxy_beep_frame/frame/state.py FrameState.__post_init__   13 0 0   100%
src/galaxy_beep_frame/frame/state.py FrameState.build   1 0 0   100%
src/galaxy_beep_frame/frame/state.py (no function)   10 0 4   100%
src/galaxy_beep_frame/header_type.py (no function)   7 0 0   100%
tests/test_conversion_utils.py TestConversionUtils.test_mutability_state   3 0 0   100%
tests/test_conversion_utils.py TestConversionUtils.test_token_ensure_mutable   4 0 0   100%
tests/test_conversion_utils.py (no function)   6 0 0   100%
tests/test_frame_data.py TestFrameBuilding.test_frame_state   34 0 0   100%
tests/test_frame_data.py (no function)   6 0 0   100%
tests/test_frame_generation.py TestFrameGeneration.test_frame_generation_unknown   3 0 0   100%
tests/test_frame_generation.py TestFrameGeneration.test_frame_generation_message   4 0 0   100%
tests/test_frame_generation.py TestFrameGeneration.test_frame_generation_answer   4 0 0   100%
tests/test_frame_generation.py TestFrameGeneration.test_frame_generation_error   4 0 0   100%
tests/test_frame_generation.py TestFrameGeneration.test_frame_generation_reply   4 0 0   100%
tests/test_frame_generation.py TestFrameGeneration.test_frame_generation_null   4 0 0   100%
tests/test_frame_generation.py (no function)   10 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_context   7 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_current_token   3 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_data   3 0 0   100%
tests/test_lexer.py TestLexer.test_bad_header_end   3 0 0   100%
tests/test_lexer.py TestLexer.test_bad_end   4 0 0   100%
tests/test_lexer.py TestLexer.test_bad_connection_to_humans   4 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_empty   3 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_message_type   20 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_channel_number   17 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_message_number   16 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_continuation_indicator   20 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_sequence_number   16 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_size   28 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_answer_number   12 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_bad_payload   12 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_good   4 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_iterator   30 0 0   100%
tests/test_lexer.py TestLexer.test_lexer_human_output   4 0 0   100%
tests/test_lexer.py (no function)   24 0 0   100%
tests/test_lexer_async.py TestLexerAsync.test_lexer_async   37 0 0   100%
tests/test_lexer_async.py TestLexerAsync.test_lexer_async.feed   4 0 0   100%
tests/test_lexer_async.py (no function)   5 0 0   100%
tests/test_parser.py TestParser._generate_graph   25 0 0   100%
tests/test_parser.py TestParser.test_good   1 0 0   100%
tests/test_parser.py TestParser.test_graph_empty   4 0 0   100%
tests/test_parser.py TestParser.test_answer_number   43 1 0   98%
tests/test_parser.py TestParser.test_message_number   36 1 0   97%
tests/test_parser.py TestParser.test_message_type   36 1 0   97%
tests/test_parser.py TestParser.test_channel_number   36 1 0   97%
tests/test_parser.py TestParser.test_continuation_indicator   36 1 0   97%
tests/test_parser.py TestParser.test_header   26 1 0   96%
tests/test_parser.py TestParser.test_frame   13 0 0   100%
tests/test_parser.py TestParser.test_payload   27 1 0   96%
tests/test_parser.py TestParser.test_sequence_number   36 1 0   97%
tests/test_parser.py (no function)   21 0 0   100%
tests/test_roundtrip.py TestRoundtrip.test_string_frame_roundtrip   14 0 0   100%
tests/test_roundtrip.py TestRoundtrip.test_frame_string_roundtrip   11 0 0   100%
tests/test_roundtrip.py (no function)   8 0 0   100%
Total     1430 8 34   99%

No items found using the specified filter.