R. Julian R. Abel

77 papers Journal 77
YearRankTypeTitle / Venue / Authors
2025 J jnl
Discret. Math.
Changyuan Wang, R. Julian R. Abel, Thomas Britz, Yudhistira A. Bunjamin, Diana Combe
2025 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Ingo Janiszczak, Reiner Staszewski
2024 J jnl
Adv. Math. Commun.
Liying Pan, R. Julian R. Abel, Jinhua Wang
2024 J jnl
Symmetry
Alice Miller, R. Julian R. Abel, Ivaylo Valkov, Douglas Fraser
2023 J jnl
Discret. Math.
R. Julian R. Abel, Thomas Britz, Yudhistira A. Bunjamin, Diana Combe, Tao Feng
2022 J jnl
Discret. Math.
Jingyuan Chen, Huangsheng Yu, R. Julian R. Abel, Dianhua Wu
2022 J jnl
Des. Codes Cryptogr.
Rong Pan, R. Julian R. Abel, Yudhistira A. Bunjamin, Tao Feng, Tiana J. Tsang Ung, Xiaomiao Wang
2022 J jnl
Discret. Math.
R. Julian R. Abel, Thomas Britz, Yudhistira A. Bunjamin, Diana Combe
2022 J jnl
Discret. Math.
R. Julian R. Abel, Yudhistira A. Bunjamin, Diana Combe
2021 J jnl
Discret. Math.
R. Julian R. Abel, Yudhistira A. Bunjamin, Diana Combe
2020 J jnl
Discret. Math.
Jiahao Tang, R. Julian R. Abel, Jinhua Wang
2018 J jnl
Discret. Math.
Lingye Wang, R. Julian R. Abel, Dameng Deng, Jinhua Wang
2017 J jnl
Discret. Math.
R. Julian R. Abel, Diana Combe, Adrian M. Nelson, William D. Palmer
2017 J jnl
Australas. J Comb.
R. Julian R. Abel
2016 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Robert F. Bailey, Andrea C. Burgess, Peter Danziger, Eric Mendelsohn
2015 J jnl
Discret. Math.
R. Julian R. Abel, Yang Li
2015 J jnl
Discret. Math.
Juan Du, R. Julian R. Abel, Jinhua Wang
2014 J jnl
Australas. J Comb.
R. Julian R. Abel, Frank E. Bennett
2013 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Diana Combe, Adrian M. Nelson, William D. Palmer
2013 J jnl
Electron. J. Comb.
R. Julian R. Abel, Nicholas J. Cavenagh, Jaromy Kuhl
2012 J jnl
Discret. Math.
R. Julian R. Abel, Frank E. Bennett
2012 J jnl
Australas. J Comb.
R. Julian R. Abel, Diana Combe, Adrian M. Nelson, William D. Palmer
2012 J jnl
Graphs Comb.
R. Julian R. Abel, Frank E. Bennett
2011 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Nigel H. N. Chan, Diana Combe, William D. Palmer
2011 J jnl
Electron. J. Comb.
R. Julian R. Abel, Diana Combe, Adrian M. Nelson, William D. Palmer
2011 J jnl
Discret. Appl. Math.
R. Julian R. Abel, Ian Anderson, Norman J. Finizio
2010 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Frank E. Bennett
2010 J jnl
Australas. J Comb.
R. Julian R. Abel, Nigel H. N. Chan
2010 J jnl
Discret. Math.
R. Julian R. Abel, Diana Combe, Adrian M. Nelson, William D. Palmer
2010 J jnl
Discret. Math.
R. Julian R. Abel, Frank E. Bennett
2009 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Norman J. Finizio, Malcolm Greig, Luis B. Morales
2009 J jnl
Discret. Math.
R. Julian R. Abel, Diana Combe, Georgina Price, William D. Palmer
2009 J jnl
Discret. Math.
R. Julian R. Abel, Gennian Ge, Malcolm Greig, Alan C. H. Ling
2009 J jnl
Graphs Comb.
R. Julian R. Abel, Frank E. Bennett, M. Grüttmüller
2008 J jnl
Discret. Math.
R. Julian R. Abel, Esther R. Lamken, Jinhua Wang
2008 J jnl
Discret. Math.
R. Julian R. Abel, Frank E. Bennett, Hantao Zhang
2008 J jnl
Discret. Appl. Math.
R. Julian R. Abel, Frank E. Bennett, Gennian Ge
2008 J jnl
Discret. Math.
R. Julian R. Abel, Ahmed M. Assaf
2008 J jnl
Australas. J Comb.
R. Julian R. Abel
2008 J jnl
Discret. Appl. Math.
R. Julian R. Abel, Frank E. Bennett
2007 J jnl
Discret. Math.
R. Julian R. Abel, Ahmed M. Assaf, Frank E. Bennett, Iliya Bluskov, Malcolm Greig
2007 J jnl
Australas. J Comb.
R. Julian R. Abel
2006 J jnl
Discret. Appl. Math.
R. Julian R. Abel, Norman J. Finizio, Gennian Ge, Malcolm Greig
2006 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Frank E. Bennett
2005 J jnl
Eur. J. Comb.
R. Julian R. Abel, Gennian Ge
2004 J jnl
Discret. Math.
R. Julian R. Abel, Iliya Bluskov, Malcolm Greig
2004 J jnl
Australas. J Comb.
R. Julian R. Abel, Iliya Bluskov, Malcolm Greig
2004 J jnl
Australas. J Comb.
R. Julian R. Abel, Diana Combe, William D. Palmer
2004 J jnl
Discret. Appl. Math.
R. Julian R. Abel, Stephanie Costa, Norman J. Finizio
2004 J jnl
J. Comb. Theory A
R. Julian R. Abel, Diana Combe, William D. Palmer
2004 J jnl
J. Comb. Theory A
R. Julian R. Abel, Marco Buratti
2003 J jnl
Discret. Math.
R. Julian R. Abel, Norman J. Finizio, Malcolm Greig
2003 J jnl
Discret. Math.
R. Julian R. Abel, Malcolm Greig, David H. Rees
2003 J jnl
Discret. Math.
R. Julian R. Abel, Norman J. Finizio, Malcolm Greig, Scott J. Lewis
2003 J jnl
Discret. Math.
R. Julian R. Abel, Beiliang Du
2002 J jnl
Discret. Appl. Math.
R. Julian R. Abel, Frank E. Bennett, Gennian Ge
2002 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Iliya Bluskov, Malcolm Greig
2002 J jnl
Discret. Math.
R. Julian R. Abel, Frank E. Bennett, Gennian Ge, Lie Zhu
2002 J jnl
Discret. Math.
R. Julian R. Abel, Ahmed M. Assaf
2002 J jnl
Discret. Math.
R. Julian R. Abel, Frank E. Bennett, Gennian Ge
2002 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Frank E. Bennett, Gennian Ge
2001 J jnl
Discret. Math.
R. Julian R. Abel, Malcolm Greig, Ying Miao, Lie Zhu
2001 J jnl
Discret. Math.
R. Julian R. Abel, Frank E. Bennett, Hantao Zhang, Lie Zhu
2000 J jnl
Australas. J Comb.
R. Julian R. Abel, Frank E. Bennett, Hantao Zhang, Lie Zhu
2000 J jnl
Ars Comb.
R. Julian R. Abel, Frank E. Bennett, Hantao Zhang, Lie Zhu
1998 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Malcolm Greig
1998 J jnl
Discret. Math.
R. Julian R. Abel, Hantao Zhang
1998 J jnl
Des. Codes Cryptogr.
Frank E. Bennett, Jianxing Yin, Hantao Zhang, R. Julian R. Abel
1998 J jnl
Discret. Math.
R. Julian R. Abel, Frank E. Bennett
1997 J jnl
Des. Codes Cryptogr.
R. Julian R. Abel, Charles J. Colbourn, Jianxing Yin, Hantao Zhang
1997 J jnl
Ars Comb.
Ronald C. Mullin, Alan C. H. Ling, R. Julian R. Abel, Frank E. Bennett
1997 J jnl
Des. Codes Cryptogr.
Malcolm Greig, R. Julian R. Abel
1997 J jnl
Australas. J Comb.
R. Julian R. Abel, Malcolm Greig
1994 J jnl
J. Comb. Theory A
R. Julian R. Abel
1994 J jnl
Australas. J Comb.
R. Julian R. Abel, Y. W. Cheng
1993 J jnl
J. Comb. Theory A
R. Julian R. Abel, D. T. Todorov
1991 J jnl
J. Comb. Theory A
R. Julian R. Abel
tests/unit/test_decompile_arch.py
← Index tests/unit/test_decompile_arch.py python
"""Unit tests for architecture modules:
- bninja/arch/creator.py
- bninja/arch/x86.py
"""
import sys
import pytest

# Install binaryninja stubs before importing arch modules
from tests.unit.conftest_binja_stubs import install_binja_stubs
install_binja_stubs()

from redb.extractors.decompiler.bninja.arch.creator import ArchitectureCreator
from redb.extractors.decompiler.bninja.arch.x86 import Arch_x86


# ============================================================================
# 3a. ArchitectureCreator
# ============================================================================

class TestArchitectureCreator:
    def test_create_x86(self):
        arch = ArchitectureCreator("x86").get()
        assert isinstance(arch, Arch_x86)

    def test_create_x86_case_insensitive(self):
        for name in ["X86", "x86", "X86"]:
            arch = ArchitectureCreator(name).get()
            assert isinstance(arch, Arch_x86)

    def test_unsupported_arch_raises(self):
        with pytest.raises(ValueError, match="Unsupported architecture"):
            ArchitectureCreator("arm").get()


# ============================================================================
# 3b. Arch_x86
# ============================================================================

class TestArch_x86Registers:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_register_valid(self):
        assert self.arch.is_register("RAX") is True
        assert self.arch.is_register("eax") is True
        assert self.arch.is_register("XMM0") is True

    def test_is_register_invalid(self):
        assert self.arch.is_register("INVALID_REG") is False

    def test_is_general_purpose_register(self):
        assert self.arch.is_general_purpose_register("RAX") is True
        assert self.arch.is_general_purpose_register("XMM0") is False

    def test_is_stack_register(self):
        assert self.arch.is_stack_register("RSP") is True
        assert self.arch.is_stack_register("RBP") is True
        assert self.arch.is_stack_register("RAX") is False

    def test_is_xmm_register(self):
        assert self.arch.is_xmm_register("XMM0") is True
        assert self.arch.is_xmm_register("RAX") is False


class TestArch_x86OpcodeCategories:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_opcode_categories_populated(self):
        assert len(self.arch.opcode_categories) > 0

    def test_opcode_mov_category(self):
        assert self.arch.opcode_categories["MOV"] == "DATA_MOVEMENT"

    def test_opcode_call_category(self):
        assert self.arch.opcode_categories["CALL"] == "CONTROL_FLOW"

    def test_opcode_add_category(self):
        assert self.arch.opcode_categories["ADD"] == "ARITHMETIC"


class TestArch_x86ControlFlow:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_control_flow_instruction_by_mnemonic(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("JMP") is True
        assert self.arch.is_control_flow_instruction_by_mnemonic("MOV") is False

    def test_is_control_flow_instruction_call(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("CALL") is True

    def test_is_control_flow_instruction_ret(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("RET") is True

    def test_is_control_flow_instruction_loop(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("LOOP") is True

    def test_is_control_flow_instruction_empty(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("") is False
        assert self.arch.is_control_flow_instruction_by_mnemonic(None) is False