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

CityOfZion / neo3-boa / 0aff654d-b027-49a1-9d97-558d9a2a52ff

05 Mar 2024 04:57PM UTC coverage: 91.985% (-0.1%) from 92.106%
0aff654d-b027-49a1-9d97-558d9a2a52ff

push

circleci

web-flow
Merge pull request #1215 from CityOfZion/CU-86drpndkk

CU-86drpndkk - Refactor test_interop/test_blockchain.py to use BoaTestConstructor

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

658 existing lines in 143 files now uncovered.

20635 of 22433 relevant lines covered (91.99%)

1.84 hits per line

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

97.73
/boa3/internal/model/builtin/method/boolmethod.py
1
from boa3.internal.model.builtin.method.builtinmethod import IBuiltinMethod
2✔
2
from boa3.internal.model.variable import Variable
2✔
3
from boa3.internal.neo.vm.opcode.Opcode import Opcode
2✔
4

5

6
class BoolMethod(IBuiltinMethod):
2✔
7

8
    def __init__(self):
2✔
9
        from boa3.internal.model.type.type import Type
2✔
10
        identifier = 'bool'
2✔
11

12
        args: dict[str, Variable] = {
2✔
13
            'value': Variable(Type.any),
14
        }
15
        super().__init__(identifier, args, return_type=Type.bool)
2✔
16

17
    @property
2✔
18
    def _value(self) -> Variable:
2✔
UNCOV
19
        return self.args['value']
×
20

21
    def generate_internal_opcodes(self, code_generator):
2✔
22
        from boa3.internal.model.builtin.builtin import Builtin
2✔
23
        from boa3.internal.neo.vm.type.StackItem import StackItemType
2✔
24

25
        # if arg is None
26
        code_generator.duplicate_stack_top_item()
2✔
27
        code_generator.insert_type_check(None)
2✔
28
        is_null = code_generator.convert_begin_if()
2✔
29
        #   return False
30
        code_generator.remove_stack_top_item()
2✔
31
        code_generator.convert_literal(False)
2✔
32

33
        else_is_null = code_generator.convert_begin_else(is_null, is_internal=True)
2✔
34
        # if arg is not int
35
        code_generator.duplicate_stack_top_item()
2✔
36
        code_generator.insert_type_check(StackItemType.Array)
2✔
37
        if_is_sequence = code_generator.convert_begin_if()
2✔
38
        code_generator.change_jump(if_is_sequence, Opcode.JMPIF)
2✔
39

40
        code_generator.duplicate_stack_top_item()
2✔
41
        code_generator.insert_type_check(StackItemType.Map)
2✔
42
        if_is_map = code_generator.convert_begin_if()
2✔
43
        code_generator.change_jump(if_is_map, Opcode.JMPIF)
2✔
44

45
        code_generator.duplicate_stack_top_item()
2✔
46
        code_generator.insert_type_check(StackItemType.Struct)
2✔
47
        if_is_struct = code_generator.convert_begin_if()
2✔
48

49
        code_generator.convert_end_if(if_is_sequence, is_internal=True)
2✔
50
        code_generator.convert_end_if(if_is_map, is_internal=True)
2✔
51
        #   return len(arg) == 0
52
        code_generator.convert_builtin_method_call(Builtin.Len, is_internal=True)
2✔
53

54
        code_generator.convert_end_if(if_is_struct, is_internal=True)
2✔
55
        # else
56
        #   return arg == 0
57
        code_generator.convert_end_if(else_is_null, is_internal=True)
2✔
58

59
        code_generator.insert_opcode(Opcode.NZ)
2✔
60

61
    @property
2✔
62
    def _args_on_stack(self) -> int:
2✔
63
        return len(self.args)
2✔
64

65
    @property
2✔
66
    def _body(self) -> str | None:
2✔
67
        return
2✔
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