Hady Wirawan Lauw

61 papers A* 18A 14B 2Misc 1Journal 18Unranked 7
YearRankTypeTitle / Venue / Authors
2026 J jnl
Trans. Recomm. Syst.
Jaime Hieu Do, Trung-Hoang Le, Hady Wirawan Lauw
2025 B conf
COLING
Jia Peng Lim, Hady Wirawan Lauw
2024 A* conf
ICDE
Delvin Ce Zhang, Hady Wirawan Lauw
2022 A* conf
KDD
Delvin Ce Zhang, Hady Wirawan Lauw
2021 J jnl
J. Artif. Intell. Res.
Dung D. Le, Hady Wirawan Lauw
2017 A* conf
IJCAI
Duc-Trong Le, Hady Wirawan Lauw, Yuan Fang
2017 J jnl
IEEE Trans. Knowl. Data Eng.
Maksim Tkachenko, Hady Wirawan Lauw
2017 J jnl
Data Min. Knowl. Discov.
Thanh-Son Nguyen, Hady Wirawan Lauw, Panayiotis Tsaparas
2017 A* conf
IJCAI
Tuan M. V. Le, Hady Wirawan Lauw
2016 A conf
SDM
Dung D. Le, Hady Wirawan Lauw
2016 conf
ECML/PKDD (2)
Duc-Trong Le, Yuan Fang, Hady Wirawan Lauw
2016 A conf
CIKM
Maksim Tkachenko, Hady Wirawan Lauw
2016 J jnl
ACM Trans. Inf. Syst.
Loc Do, Hady Wirawan Lauw
2016 A conf
RecSys
Trong T. Nguyen, Hady Wirawan Lauw
2016 J jnl
J. Artif. Intell. Res.
Tuan M. V. Le, Hady Wirawan Lauw
2016 A* conf
IJCAI
Tuan M. V. Le, Hady Wirawan Lauw
2015 conf
ACL (1)
Maksim Tkachenko, Hady Wirawan Lauw
2015 J jnl
IEEE Trans. Knowl. Data Eng.
Shuaiqiang Wang, Yun Wu, Byron J. Gao, Ke Wang, Hady Wirawan Lauw, Jun Ma
2015 J jnl
Proc. VLDB Endow.
Loc Do, Hady Wirawan Lauw, Ke Wang
2015 J jnl
IEEE Trans. Knowl. Data Eng.
Thanh-Son Nguyen, Hady Wirawan Lauw, Panayiotis Tsaparas
2015 A conf
WSDM
Thanh-Son Nguyen, Hady Wirawan Lauw, Panayiotis Tsaparas
2015 A conf
CIKM
Tengyuan Ye, Hady Wirawan Lauw
2014 A conf
CIKM
Trong T. Nguyen, Hady Wirawan Lauw
2014 A conf
CIKM
Maksim Tkachenko, Hady Wirawan Lauw
2014 A* conf
ICML
Yuan Fang, Kevin Chen-Chuan Chang, Hady Wirawan Lauw
2014 A* conf
AAAI
Tuan M. V. Le, Hady Wirawan Lauw
2014 A* conf
WWW
Loc Do, Hady Wirawan Lauw
2014 A* conf
ICDM
Tuan M. V. Le, Hady Wirawan Lauw
2014 A* conf
KDD
Tuan M. V. Le, Hady Wirawan Lauw
2013 J jnl
IEEE Trans. Knowl. Data Eng.
Freddy Chong Tat Chua, Hady Wirawan Lauw, Ee-Peng Lim
2013 A* conf
ICDM
Bing Tian Dai, Hady Wirawan Lauw
2013 A* conf
ICDE
Yuan Fang, Kevin Chen-Chuan Chang, Hady Wirawan Lauw
2013 A conf
CIKM
Thanh-Son Nguyen, Hady Wirawan Lauw, Panayiotis Tsaparas
2012 J jnl
IEEE Trans. Knowl. Data Eng.
Tao Cheng, Hady Wirawan Lauw, Stelios Paparizos
2012 A conf
SDM
Freddy Chong Tat Chua, Hady Wirawan Lauw, Ee-Peng Lim
2012 J jnl
IEEE Trans. Knowl. Data Eng.
Heasoo Hwang, Hady Wirawan Lauw, Lise Getoor, Alexandros Ntoulas
2012 J jnl
ACM Trans. Web
Hady Wirawan Lauw, Ee-Peng Lim, Ke Wang
2011 A* conf
AAAI
Shuaiqiang Wang, Byron J. Gao, Ke Wang, Hady Wirawan Lauw
2011 A* conf
SIGIR
Shuaiqiang Wang, Byron J. Gao, Ke Wang, Hady Wirawan Lauw
2011 A conf
SDM
Freddy Chong Tat Chua, Hady Wirawan Lauw, Ee-Peng Lim
2010 A conf
CIKM
Ee-Peng Lim, Viet-An Nguyen, Nitin Jindal, Bing Liu, Hady Wirawan Lauw
2010 A* conf
ICDE
Tao Cheng, Hady Wirawan Lauw, Stelios Paparizos
2010 J jnl
IEEE Internet Comput.
Hady Wirawan Lauw, John C. Shafer, Rakesh Agrawal, Alexandros Ntoulas
2010 J jnl
ACM Trans. Inf. Syst.
Hady Wirawan Lauw, Ee-Peng Lim, HweeHwa Pang, Teck-Tim Tan
2010 A* conf
ICDE
John C. Shafer, Rakesh Agrawal, Hady Wirawan Lauw
2009 B conf
PAKDD
Hady Wirawan Lauw, Ee-Peng Lim, Ke Wang
2008 J jnl
IEEE Trans. Knowl. Data Eng.
Hady Wirawan Lauw, Ee-Peng Lim, Ke Wang
2008 conf
ICDE Workshops
Young Ae Kim, Minh-Tam Le, Hady Wirawan Lauw, Ee-Peng Lim, Haifeng Liu, Jaideep Srivastava
2008
Hady Wirawan Lauw
2008 conf
SSM
Marc A. Smith, Vladimir Barash, Lise Getoor, Hady Wirawan Lauw
2008 A conf
WSDM
Ba-Quy Vuong, Ee-Peng Lim, Aixin Sun, Minh-Tam Le, Hady Wirawan Lauw
2008 A* conf
EC
Haifeng Liu, Ee-Peng Lim, Hady Wirawan Lauw, Minh-Tam Le, Aixin Sun, Jaideep Srivastava, Young Ae Kim
2008 conf
ISI Workshops
Hanbo Dai, Ee-Peng Lim, Hady Wirawan Lauw, HweeHwa Pang
2007 A conf
CIKM
Meiqun Hu, Ee-Peng Lim, Aixin Sun, Hady Wirawan Lauw, Ba-Quy Vuong
2007 conf
WIDM
Meiqun Hu, Ee-Peng Lim, Aixin Sun, Hady Wirawan Lauw, Ba-Quy Vuong
2007 A conf
SDM
Hady Wirawan Lauw, Ee-Peng Lim, Ke Wang
2007 Misc conf
SAC
Hady Wirawan Lauw, Ee-Peng Lim, HweeHwa Pang
2006 A* conf
KDD
Hady Wirawan Lauw, Ee-Peng Lim, Ke Wang
2006 conf
Web Intelligence
Ee-Peng Lim, Ba-Quy Vuong, Hady Wirawan Lauw, Aixin Sun
2005 J jnl
Comput. Math. Organ. Theory
Hady Wirawan Lauw, Ee-Peng Lim, HweeHwa Pang, Teck-Tim Tan
2004 J jnl
IEEE Internet Comput.
Hady Wirawan Lauw, Siu Cheung Hui, Edmund Ming-Kit Lai
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