Xiangyu Gao

119 papers A* 5A 6B 5C 4Misc 5Journal 68Unranked 25
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Wenbin Wei, Suyuan Yao, Cheng Huang, Xiangyu Gao
2026 J jnl
IEEE Trans. Green Commun. Netw.
Lyutianyang Zhang, Liu Cao, Dongyu Wei, Xiangyu Gao
2026 J jnl
Displays
Xiangyu Gao, Yu Dai, Taijin Zhao, Benliu Qiu, Lanxiao Wang, Heqian Qiu, Qingbo Wu, Hongliang Li
2025 J jnl
J. Sci. Comput.
Aqin Xiao, Xiangyu Gao, Jun-Feng Yin
2025 J jnl
CoRR
Aqin Xiao, Xiangyu Gao, Jun-Feng Yin
2025 A conf
ICME
Xiangyu Gao, Zhekai Luo, Peijia Zheng, Jian Li, Rui Yang
2025 J jnl
IEEE Trans. Netw.
Hanlin Huang, Ke Xu, Tong Li, Zhuotao Liu, Xinle Du, Xiangyu Gao
2025 J jnl
VLDB J.
Xiangyu Gao, Xingxing Xiao, Xiao Pan, Dongjing Miao, Jianzhong Li
2025 J jnl
CoRR
Xiangyu Gao, Tong Li, Yinchao Zhang, Ziqiang Wang, Xiangsheng Zeng, Su Yao, Ke Xu
2025 J jnl
CoRR
Xiangyu Gao, Yu Dai, Benliu Qiu, Hongliang Li
2025 J jnl
IEEE Internet Things J.
Xiangyu Gao, Hao Yin, Yaping Sun, Dongyu Wei, Xiaodong Xu, Hao Chen, Wen Wu, Shuguang Cui
2025 conf
eBPF@SIGCOMM
Xiangyu Gao, Xiangfeng Zhu, Bhavana Vannarth Shobhana, Yiwei Yang, Arvind Krishnamurthy, Ratul Mahajan
2025 B conf
ICNP
Jianfeng Guan, Kexian Liu, Su Yao, Xiaolong Hu, Ye Qin, Jianli Liu, Songtao Fu, Xiangyu Gao, Ke Xu
2025 Misc conf
NSDI
Xinle Du, Tong Li, Guangmeng Zhou, Zhuotao Liu, Hanlin Huang, Xiangyu Gao, Mowei Wang, Kun Tan, Ke Xu
2025 A* conf
SIGCOMM
Xiangyu Gao, Jiaqi Gao, Karan Kumar G., Muhammad Haseeb, Ennan Zhai, Bili Dong, Joseph Tassarotti, Srinivas Narayana, Anirudh Sivaraman
2025 A* conf
SIGCOMM
Yinchao Zhang, Su Yao, Yong Feng, Kang Chen, Tong Li, Zhuotao Liu, Yi Zhao, Lexuan Zhang, Xiangyu Gao, Feng Xiong, Qi Li, Ke Xu
2025 J jnl
CoRR
Yinchao Zhang, Su Yao, Yong Feng, Kang Chen, Tong Li, Zhuotao Liu, Yi Zhao, Lexuan Zhang, Xiangyu Gao, Feng Xiong, Qi Li, Ke Xu
2025 conf
PACMI@SOSP
Megan Frisella, Arvin Oentoro, Xiangyu Gao, Gilbert Bernstein, Stephanie Wang
2025 A conf
ICME
Zhekai Luo, Xiangyu Gao, Peijia Zheng, Jian Li, Weiqi Luo
2025 J jnl
IEEE Trans. Image Process.
Peijia Zheng, Donger Mo, Yufei Zhou, Xiangyu Gao, Xiaochun Cao, Jiwu Huang
2025 A conf
HotOS
Xiangfeng Zhu, Yang Zhou, Yuyao Wang, Xiangyu Gao, Arvind Krishnamurthy, Sam Kumar, Ratul Mahajan, Danyang Zhuo
2025 J jnl
IEEE Trans. Netw.
Tong Li, Xinle Du, Xiangyu Gao, Guangmeng Zhou, Hanlin Huang, Zhuotao Liu, Mowei Wang, Kun Tan, Ke Xu
2025 J jnl
Manag. Sci.
Kairen Zhang, Xiangyu Gao, Zhanyue Wang, Sean X. Zhou
2025 Misc conf
NSDI
Qiongwen Xu, Sebastiano Miano, Xiangyu Gao, Tao Wang, Adithya Murugadass, Songyuan Zhang, Anirudh Sivaraman, Gianni Antichi, Srinivas Narayana
2025 B conf
TrustCom
Shuang Wu, Ying Yu, Yan Liu, Xiangyu Gao, Zhe Qu
2025 J jnl
CoRR
Yusheng Zheng, Tong Yu, Yiwei Yang, Minghui Jiang, Xiangyu Gao, Jianchang Su, Yanpeng Hu, Wenan Mao, Wei Zhang, Dan Williams, Andi Quinn
2024 C conf
ISPA
Jie Zhang, Yuanyuan He, Miao Hu, Xinwei Yu, Tingting Guo, Xiangyu Gao, Jiaqi Ma
2024 conf
PKDD (4)
Weiting Gao, Xiangyu Gao, Wenjin Chen, David J. Foran, Yi Chen
2024 A conf
CIKM
Weiting Gao, Xiangyu Gao, Yi Chen
2024 A* conf
ICDE
Xiangyu Gao, Jianzhong Li, Dongjing Miao
2024 conf
APNet
Xiangyu Gao, Jiaqi Gao, Karan Kumar G., Ennan Zhai, Srinivas Narayana, Anirudh Sivaraman
2024 J jnl
IEEE Internet Things J.
Lyutianyang Zhang, Hao Yin, Sumit Roy, Liu Cao, Xiangyu Gao, Vanlin Sathya
2024 J jnl
IEEE Internet Things J.
Xiangyu Gao, Yaping Sun, Hao Chen, Xiaodong Xu, Shuguang Cui
2024 conf
ICC
Xiangyu Gao, Yaping Sun, Dongyu Wei, Xiaodong Xu, Hao Chen, Hao Yin, Shuguang Cui
2024 J jnl
CoRR
Xiangyu Gao, Yuwei Jin, Minghao Guo, Henry Chen, Eddy Z. Zhang
2024 conf
VTC Fall
Dongyu Wei, Liu Cao, Lyutianyang Zhang, Xiangyu Gao, Hao Yin
2024 J jnl
CoRR
Dongyu Wei, Liu Cao, Xiangyu Gao, Hao Yin
2024 B conf
GLOBECOM
Dongyu Wei, Liu Cao, Lyutianyang Zhang, Xiangyu Gao, Hao Yin
2024 J jnl
CoRR
Dongyu Wei, Liu Cao, Lyutianyang Zhang, Xiangyu Gao, Hao Yin
2024 A conf
SC
Yuwei Jin, Xiangyu Gao, Minghao Guo, Henry Chen, Fei Hua, Chi Zhang, Eddy Z. Zhang
2024 B conf
IWQoS
Hanlin Huang, Ke Xu, Xinle Du, Yiyang Shao, Jie Li, Xiangyu Gao, Tong Li
2024
Xiangyu Gao
2024 J jnl
Theor. Comput. Sci.
Hengzhao Ma, Jianzhong Li, Tianpeng Gao, Xiangyu Gao
2023 conf
ASPLOS (3)
Xiangyu Gao, Divya Raghunathan, Ruijie Fang, Tao Wang, Xiaotong Zhu, Anirudh Sivaraman, Srinivas Narayana, Aarti Gupta
2023 J jnl
CoRR
Xiangyu Gao, Jianzhong Li, Dongjing Miao
2023 J jnl
J. Frankl. Inst.
Xiangyu Gao, Jianqiao Wang, Kok Lay Teo, Hongfu Yang, Xinrong Yang
2023 J jnl
CoRR
Lyutianyang Zhang, Hao Yin, Sumit Roy, Liu Cao, Xiangyu Gao, Vanlin Sathya
2023 J jnl
CoRR
Xiangyu Gao, Yaping Sun, Hao Chen, Xiaodong Xu, Shuguang Cui
2023 conf
QuNet@SIGCOMM
Xiangyu Gao, Eddy Z. Zhang
2023 J jnl
CoRR
Xiangyu Gao, Yaping Sun, Dongyu Wei, Xiaodong Xu, Hao Chen, Hao Yin, Shuguang Cui
2023 J jnl
CoRR
Dequan Wang, Xiaosong Wang, Lilong Wang, Mengzhang Li, Qian Da, Xiaoqiang Liu, Xiangyu Gao, Jun Shen, Junjun He, Tian Shen, Qi Duan, Jie Zhao, Kang Li, Yu Qiao, Shaoting Zhang
2023 conf
BigDataSecurity/HPSC/IDS
Meikang Qiu, Xiangyu Gao
2023 J jnl
CoRR
Hengzhao Ma, Jianzhong Li, Xiangyu Gao
2023 B conf
GLOBECOM
Xiangyu Gao, Yaping Sun, Hao Chen, Xiaodong Xu, Shuguang Cui
2023 J jnl
CoRR
Xiangyu Gao, Yaping Sun, Hao Chen, Xiaodong Xu, Shuguang Cui
2023 J jnl
CoRR
Qiongwen Xu, Sebastiano Miano, Xiangyu Gao, Tao Wang, Songyuan Zhang, Anirudh Sivaraman, Gianni Antichi, Srinivas Narayana
2022 J jnl
CoRR
Hengzhao Ma, Xiangyu Gao, Jianzhong Li, Tianpeng Gao
2022 conf
SmartCom
Xiangyu Gao, Meikang Qiu, Hui Zhao
2022 conf
SmartCom
Xiangyu Gao, Meikang Qiu, Hui Zhao
2022 J jnl
Artif. Intell. Medicine
Jinhe Shi, Xiangyu Gao, William C. Kinsman, Chenyu Ha, Guodong Gordon Gao, Yi Chen
2022 J jnl
CoRR
Xiangyu Gao, Sihao Ding, Karl Vanas, Dasari Harshavardhan Reddy, Henrik Söderlund
2022 A* conf
ICDE
Xiangyu Gao, Jianzhong Li, Dongjing Miao
2022 conf
BigDataSecurity/HPSC/IDS
Xiangyu Gao, Meikang Qiu
2022 conf
SmartCloud
Xiangyu Gao, Meikang Qiu
2022 conf
KSEM (3)
Xiangyu Gao, Meikang Qiu
2022 J jnl
Int. J. Control
Xiangyu Gao, Kok Lay Teo, Hongfu Yang, Shen Cong
2022 J jnl
CoRR
Xiangyu Gao, Divya Raghunathan, Ruijie Fang, Tao Wang, Xiaotong Zhu, Anirudh Sivaraman, Srinivas Narayana, Aarti Gupta
2022 J jnl
Manag. Sci.
Xiangyu Gao, Stefanus Jasin, Sajjad Najafi, Huanan Zhang
2022 J jnl
IEEE J. Sel. Top. Signal Process.
Xiangyu Gao, Hui Liu, Sumit Roy, Guanbin Xing, Ali Alansari, Youchen Luo
2022 conf
CSCloud/EdgeCom
Xiangyu Gao, Meikang Qiu
2022 J jnl
Theor. Comput. Sci.
Xiangyu Gao, Jianzhong Li, Dongjing Miao
2022 Misc conf
COCOON
Hengzhao Ma, Jianzhong Li, Xiangyu Gao, Tianpeng Gao
2022 J jnl
CoRR
Hengzhao Ma, Jianzhong Li, Xiangyu Gao, Tianpeng Gao
2021 J jnl
IEEE Trans. Ind. Electron.
Jingen Wu, Zhongqiang Hu, Xiangyu Gao, MiaoMiao Cheng, Xinger Zhao, Wei Su, Zhiguang Wang, Ziyao Zhou, Shuxiang Dong, Ming Liu
2021 conf
ISPA/BDCloud/SocialCom/SustainCom
Xiangyu Gao, Meikang Qiu, Zhen He
2021 J jnl
CoRR
Xiangyu Gao, Hui Liu, Sumit Roy, Guanbin Xing, Ali Alansari, Youchen Luo
2021 J jnl
IEEE Trans. Veh. Technol.
Xiangyu Gao, Sumit Roy, Guanbin Xing
2021 conf
CSCloud/EdgeCom
Xiangyu Gao, Meikang Qiu, Meiqin Liu
2021 A conf
WACV
Yizhou Wang, Zhongyu Jiang, Xiangyu Gao, Jenq-Neng Hwang, Guanbin Xing, Hui Liu
2021 C conf
COCOA
Xiangyu Gao, Jian-Zhong Li, Dongjing Miao
2021 J jnl
CoRR
Xiangyu Gao, Jianzhong Li, Dongjing Miao
2020 J jnl
Comput. Math. Methods Medicine
Wentao Wu, Daning Li, Jiaoyang Du, Xiangyu Gao, Wen Gu, Fanfan Zhao, Xiaojie Feng, Hong Yan
2020 conf
BIBM
Xiangyu Gao, Jinhe Shi, Wenjin Chen, Nancy Sazo, Huiqi Chu, Evita T. Sadimin, David J. Foran, Yi Chen
2020 J jnl
CoRR
Dongjing Miao, Zhipeng Cai, Jianzhong Li, Xiangyu Gao, Xianmin Liu
2020 J jnl
CoRR
Xiangyu Gao, Jianzhong Li, Dongjing Miao, Xianmin Liu
2020 conf
IEEE BigData
Jinhe Shi, Xiangyu Gao, Chenyu Ha, Yage Wang, Guodong Gordon Gao, Yi Chen
2020 J jnl
CoRR
Jinhe Shi, Xiangyu Gao, Chenyu Ha, Yage Wang, Guodong Gordon Gao, Yi Chen
2020 J jnl
CoRR
Xiangyu Gao, Guanbin Xing, Sumit Roy, Hui Liu
2020 J jnl
CoRR
Yizhou Wang, Zhongyu Jiang, Xiangyu Gao, Jenq-Neng Hwang, Guanbin Xing, Hui Liu
2020 J jnl
Theor. Comput. Sci.
Xiangyu Gao, Jianzhong Li, Dongjing Miao, Xianmin Liu
2020 A* conf
SIGCOMM
Xiangyu Gao, Taegyun Kim, Michael D. Wong, Divya Raghunathan, Aatish Kishan Varma, Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, Aarti Gupta
2020 J jnl
Proc. VLDB Endow.
Dongjing Miao, Zhipeng Cai, Jianzhong Li, Xiangyu Gao, Xianmin Liu
2019 Misc conf
HotNets
Xiangyu Gao, Taegyun Kim, Aatish Kishan Varma, Anirudh Sivaraman, Srinivas Narayana
2019 conf
ICITEE
Gukai Li, Juanjuan Li, Can Ge, Guoxing Yang, Zelin Yu, Xuan Chen, Jingjing Liao, Zhiheng Mu, Xiangyu Gao, Jiahao Tang, Fei He, Yifan Xia
2019 Misc conf
ACSSC
Xiangyu Gao, Guanbin Xing, Sumit Roy, Hui Liu
2019 J jnl
CoRR
Xiangyu Gao, Guanbin Xing, Sumit Roy, Hui Liu
2019 J jnl
Manag. Sci.
Xin Chen, Xiangyu Gao, Zhenyu Hu, Qiong Wang
2019 C conf
COCOA
Xiangyu Gao, Jianzhong Li, Dongjing Miao, Xianmin Liu
2019 J jnl
CoRR
Xiangyu Gao, Jianzhong Li, Dongjing Miao, Xianmin Liu
2019 J jnl
Oper. Res.
Xin Chen, Xiangyu Gao
2018 conf
ROBIO
Menghui Pei, Kun Xu, Xilun Ding, Shuiqing Jiang, Xiangyu Gao
2018 J jnl
Oper. Res.
Xin Chen, Xiangyu Gao, Zhan Pang
2016 conf
APWeb (2)
Jiahong Li, Hongzhi Wang, Shengqiang Zhang, Xiangyu Gao, Ziqi Qu, Shenbin Huang
2016 J jnl
Wirel. Commun. Mob. Comput.
Xiangyu Gao, Yuesheng Zhu, Li Ping
2016 J jnl
J. Frankl. Inst.
Xiangyu Gao
2016 J jnl
Neurocomputing
Shuang Ding, Xiangyu Gao, Julong Tan
2016 J jnl
Appl. Math. Comput.
Tingting Liu, Xian Zhang, Xiangyu Gao
2015 J jnl
Oper. Res. Lett.
Xin Chen, Xiangyu Gao, Zhenyu Hu
2015 conf
GLOBECOM Workshops
Zhenfa Wang, Lei Wang, Xiangyu Gao, Ying Xia, Song Wang
2015 conf
DSP
Xiaolong Liu, Lei Wang, Zhenfa Wang, Xiangyu Gao, Ming Zhu
2015 J jnl
J. Optim. Theory Appl.
Guoqiang Wang, Yan-Qin Bai, Xiangyu Gao, Dazhong Wang
2014 C conf
CIT
Xiangyu Gao, Yuesheng Zhu
2014 J jnl
J. Commun.
Xiangyu Gao, Yuesheng Zhu
2013 J jnl
IEICE Trans. Commun.
Xiangyu Gao, Yuesheng Zhu
2012 J jnl
Int. J. Control
Xiangyu Gao, Kok Lay Teo, Guang-Ren Duan
2012 J jnl
J. Frankl. Inst.
Xiangyu Gao, Kok Lay Teo, Guang-Ren Duan
2011 J jnl
IMA J. Math. Control. Inf.
Xiangyu Gao, Kok Lay Teo, Guang-Ren Duan
2010 J jnl
IMA J. Math. Control. Inf.
Xian Zhang, Xiangyu Gao, Haiyan Wu
2009 conf
CDC
Xiangyu Gao, Guang-Ren Duan, Xian Zhang
tests/unit/test_macho_dataclasses.py
← Index tests/unit/test_macho_dataclasses.py python
"""
Unit tests for Mach-O dataclasses.
"""
import pytest
from typing import List, Dict, Optional

pytestmark = [pytest.mark.unit, pytest.mark.dataclass, pytest.mark.macho]


class TestMachODataclass:
    """Tests for MachO dataclass."""

    def test_macho_required_fields(self):
        """Test MachO dataclass with required fields."""
        from redb.models.dataclasses import MachO

        macho = MachO(
            magic=0xFEEDFACF,
            cputype=0x01000007,
            cpusubtype=0x00000003,
            filetype=2,
            ncmds=15,
            sizeofcmds=1024,
            flags=0x00200085,
            architecture=0x01000007,
            architectures=[0x01000007],
            magic_str="MH_MAGIC_64",
            cputype_str="CPU_TYPE_X86_64",
            cpusubtype_str="CPU_SUBTYPE_X86_64_ALL",
            filetype_str="MH_EXECUTE",
            flags_str=["MH_NOUNDEFS", "MH_DYLDLINK", "MH_TWOLEVEL", "MH_PIE"],
            architecture_str="x86_64",
            architectures_str=["x86_64"],
            is_64bit=True,
            is_signed=True
        )

        assert macho.magic == 0xFEEDFACF
        assert macho.cputype == 0x01000007
        assert macho.is_64bit is True
        assert macho.is_signed is True
        assert macho.magic_str == "MH_MAGIC_64"
        assert macho.filetype_str == "MH_EXECUTE"

    def test_macho_optional_fields_defaults(self):
        """Test MachO dataclass optional fields default to correct values."""
        from redb.models.dataclasses import MachO

        macho = MachO(
            magic=0xFEEDFACF,
            cputype=0x01000007,
            cpusubtype=0x00000003,
            filetype=2,
            ncmds=15,
            sizeofcmds=1024,
            flags=0x00200085,
            architecture=0x01000007,
            architectures=[0x01000007],
            magic_str="MH_MAGIC_64",
            cputype_str="CPU_TYPE_X86_64",
            cpusubtype_str="CPU_SUBTYPE_X86_64_ALL",
            filetype_str="MH_EXECUTE",
            flags_str=["MH_NOUNDEFS"],
            architecture_str="x86_64",
            architectures_str=["x86_64"],
            is_64bit=True,
            is_signed=False
        )

        assert macho.number_of_load_commands == 0
        assert macho.load_commands_set is None
        assert macho.number_of_segments == 0
        assert macho.number_of_dylibs == 0
        assert macho.number_of_imports == 0
        assert macho.number_of_exports == 0
        assert macho.entry_point is None
        assert macho.uuid is None
        assert macho.version_info is None
        assert macho.version_info_str is None

    def test_macho_with_all_fields(self):
        """Test MachO dataclass with all fields populated."""
        from redb.models.dataclasses import MachO

        macho = MachO(
            magic=0xFEEDFACF,
            cputype=0x01000007,
            cpusubtype=0x00000003,
            filetype=2,
            ncmds=15,
            sizeofcmds=1024,
            flags=0x00200085,
            architecture=0x01000007,
            architectures=[0x01000007],
            magic_str="MH_MAGIC_64",
            cputype_str="CPU_TYPE_X86_64",
            cpusubtype_str="CPU_SUBTYPE_X86_64_ALL",
            filetype_str="MH_EXECUTE",
            flags_str=["MH_PIE"],
            architecture_str="x86_64",
            architectures_str=["x86_64"],
            is_64bit=True,
            is_signed=True,
            number_of_load_commands=15,
            load_commands_set=["LC_SEGMENT_64", "LC_DYLD_INFO_ONLY"],
            number_of_segments=4,
            number_of_dylibs=5,
            number_of_imports=100,
            number_of_exports=10,
            entry_point=0x100001234,
            uuid="12345678-1234-1234-1234-123456789012",
            version_info={"min_os": "10.15"},
            version_info_str={"min_os": "macOS 10.15"}
        )

        assert macho.number_of_load_commands == 15
        assert macho.uuid == "12345678-1234-1234-1234-123456789012"
        assert macho.entry_point == 0x100001234


class TestMachOSegmentDataclass:
    """Tests for MachOSegment dataclass."""

    def test_segment_creation(self):
        """Test MachOSegment dataclass creation."""
        from redb.models.dataclasses import MachOSegment

        segment = MachOSegment(
            segment_name="__TEXT",
            segment_vaddr=0x100000000,
            segment_vsize=0x1000,
            segment_offset=0,
            segment_size=0x1000,
            segment_max_vm_protection=7,
            segment_initial_vm_protection=5,
            segment_nsects=4,
            segment_flags=0,
            segment_entropy=6.5,
            segment_sha256="abc123def456789012345678901234567890123456789012345678901234"
        )

        assert segment.segment_name == "__TEXT"
        assert segment.segment_vaddr == 0x100000000
        assert segment.segment_entropy == 6.5


class TestMachOImportDataclass:
    """Tests for MachOImport dataclass."""

    def test_import_creation(self):
        """Test MachOImport dataclass creation."""
        from redb.models.dataclasses import MachOImport

        import_info = MachOImport(
            macho_imports_total=50,
            macho_import_libraryName=["libSystem.B.dylib", "CoreFoundation"],
            macho_import_functions=["_printf", "_malloc", "_free"]
        )

        assert import_info.macho_imports_total == 50
        assert len(import_info.macho_import_libraryName) == 2
        assert "_printf" in import_info.macho_import_functions

    def test_import_optional_fields(self):
        """Test MachOImport with optional fields as None."""
        from redb.models.dataclasses import MachOImport

        import_info = MachOImport(macho_imports_total=0)

        assert import_info.macho_imports_total == 0
        assert import_info.macho_import_libraryName is None
        assert import_info.macho_import_functions is None


class TestMachOExportDataclass:
    """Tests for MachOExport dataclass."""

    def test_export_creation(self):
        """Test MachOExport dataclass creation."""
        from redb.models.dataclasses import MachOExport

        export_info = MachOExport(
            macho_exports_total=10,
            macho_export_symbols=["_main", "_helper_func"]
        )

        assert export_info.macho_exports_total == 10
        assert "_main" in export_info.macho_export_symbols


class TestMachODylibDataclass:
    """Tests for MachODylib dataclass."""

    def test_dylib_creation(self):
        """Test MachODylib dataclass creation."""
        from redb.models.dataclasses import MachODylib

        dylib = MachODylib(
            dylib_name="/usr/lib/libSystem.B.dylib",
            dylib_timestamp=2,
            dylib_current_version=0x04E10200,
            dylib_compat_version=0x00010000
        )

        assert dylib.dylib_name == "/usr/lib/libSystem.B.dylib"
        assert dylib.dylib_timestamp == 2


class TestMachOLoadCommandDataclass:
    """Tests for MachOLoadCommand dataclass."""

    def test_load_command_creation(self):
        """Test MachOLoadCommand dataclass creation."""
        from redb.models.dataclasses import MachOLoadCommand

        lc = MachOLoadCommand(
            load_command=0x19,
            load_command_str="LC_SEGMENT_64",
            load_command_size=72
        )

        assert lc.load_command == 0x19
        assert lc.load_command_str == "LC_SEGMENT_64"
        assert lc.load_command_size == 72


class TestMachOUniversalDataclass:
    """Tests for MachOUniversal dataclass."""

    def test_universal_fat_binary(self):
        """Test MachOUniversal for FAT binary."""
        from redb.models.dataclasses import MachOUniversal

        universal = MachOUniversal(
            is_fat=True,
            architecture_count=2,
            architectures=["x86_64", "arm64"],
            architecture_info=[
                {"arch": "x86_64", "offset": 0x1000},
                {"arch": "arm64", "offset": 0x10000}
            ],
            fat_hash="abc123def456789012345678901234567890123456789012345678901234",
            fat_md5="abc123def456789012345678901234",
            fat_sha1="abc123def456789012345678901234567890"
        )

        assert universal.is_fat is True
        assert universal.architecture_count == 2
        assert "x86_64" in universal.architectures
        assert "arm64" in universal.architectures

    def test_universal_single_arch(self):
        """Test MachOUniversal for single-architecture binary."""
        from redb.models.dataclasses import MachOUniversal

        universal = MachOUniversal(
            is_fat=False,
            architecture_count=1,
            architectures=["arm64"],
            architecture_info=[{"arch": "arm64", "offset": 0}]
        )

        assert universal.is_fat is False
        assert universal.architecture_count == 1
        assert universal.fat_hash is None


class TestMachOCertificateDataclass:
    """Tests for MachOCertificate dataclass."""

    def test_certificate_creation(self):
        """Test MachOCertificate dataclass creation."""
        from redb.models.dataclasses import MachOCertificate

        cert = MachOCertificate(
            subject="CN=Apple Development",
            issuer="CN=Apple Worldwide Developer Relations",
            serial_number="123456789",
            not_before="2023-01-01T00:00:00Z",
            not_after="2024-01-01T00:00:00Z",
            thumbprint="abc123def456789012345678901234567890",
            certificate_type="leaf",
            order=0,
            algorithm="sha256WithRSAEncryption",
            common_name="Apple Development",
            organizational_unit="Development",
            organization="Apple Inc."
        )

        assert cert.subject == "CN=Apple Development"
        assert cert.certificate_type == "leaf"
        assert cert.order == 0


class TestMachOCodeDirectoryDataclass:
    """Tests for MachOCodeDirectory dataclass."""

    def test_code_directory_creation(self):
        """Test MachOCodeDirectory dataclass creation."""
        from redb.models.dataclasses import MachOCodeDirectory

        cd = MachOCodeDirectory(
            identifier="com.example.app",
            team_id="ABC123DEF",
            flags=0x10000,
            cd_hash="abc123def456789012345678901234567890123456789012345678901234"
        )

        assert cd.identifier == "com.example.app"
        assert cd.team_id == "ABC123DEF"
        assert cd.flags == 0x10000


class TestMachOCodeSigningInfoDataclass:
    """Tests for MachOCodeSigningInfo dataclass."""

    def test_code_signing_info_unsigned(self):
        """Test MachOCodeSigningInfo for unsigned binary."""
        from redb.models.dataclasses import MachOCodeSigningInfo

        info = MachOCodeSigningInfo(
            _id="abc123def456789012345678901234567890123456789012345678901234",
            signing_type="unsigned",
            has_signature=False,
            number_of_certificates=0
        )

        assert info.signing_type == "unsigned"
        assert info.has_signature is False
        assert info.number_of_certificates == 0

    def test_code_signing_info_signed(self):
        """Test MachOCodeSigningInfo for signed binary."""
        from redb.models.dataclasses import MachOCodeSigningInfo, MachOCodeDirectory

        cd = MachOCodeDirectory(
            identifier="com.example.app",
            team_id="ABC123DEF"
        )

        info = MachOCodeSigningInfo(
            _id="abc123def456789012345678901234567890123456789012345678901234",
            signing_type="certificate",
            has_signature=True,
            number_of_certificates=3,
            code_directories=[cd],
            entitlements={"com.apple.security.app-sandbox": True},
            has_hardened_runtime=True,
            has_library_validation=True
        )

        assert info.signing_type == "certificate"
        assert info.has_signature is True
        assert info.number_of_certificates == 3
        assert info.has_hardened_runtime is True

    def test_code_signing_info_adhoc(self):
        """Test MachOCodeSigningInfo for ad-hoc signed binary."""
        from redb.models.dataclasses import MachOCodeSigningInfo

        info = MachOCodeSigningInfo(
            _id="abc123def456789012345678901234567890123456789012345678901234",
            signing_type="ad-hoc",
            has_signature=True,
            number_of_certificates=0,
            arch_identifier="x86_64"
        )

        assert info.signing_type == "ad-hoc"
        assert info.number_of_certificates == 0
        assert info.arch_identifier == "x86_64"


class TestMachOEntitlementDataclass:
    """Tests for MachOEntitlement dataclass."""

    def test_entitlement_boolean(self):
        """Test MachOEntitlement with boolean value."""
        from redb.models.dataclasses import MachOEntitlement

        ent = MachOEntitlement(
            key="com.apple.security.app-sandbox",
            value_type="boolean",
            value_bool=True
        )

        assert ent.key == "com.apple.security.app-sandbox"
        assert ent.value_type == "boolean"
        assert ent.value_bool is True

    def test_entitlement_string(self):
        """Test MachOEntitlement with string value."""
        from redb.models.dataclasses import MachOEntitlement

        ent = MachOEntitlement(
            key="com.apple.developer.team-identifier",
            value_type="string",
            value_string="ABC123DEF"
        )

        assert ent.key == "com.apple.developer.team-identifier"
        assert ent.value_type == "string"
        assert ent.value_string == "ABC123DEF"

    def test_entitlement_array(self):
        """Test MachOEntitlement with array value."""
        from redb.models.dataclasses import MachOEntitlement

        ent = MachOEntitlement(
            key="com.apple.security.application-groups",
            value_type="array",
            value_array=["group.com.example.app", "group.com.example.shared"]
        )

        assert ent.key == "com.apple.security.application-groups"
        assert ent.value_type == "array"
        assert len(ent.value_array) == 2