Randall A. Berry

167 papers A* 13A 1B 37Misc 11Journal 65Unranked 39
YearRankTypeTitle / Venue / Authors
2025 conf
DySPAN
Federico Bobbio, Randall A. Berry, Michael L. Honig, Thành Nguyen, Vijay G. Subramanian, Rakesh V. Vohra
2025 B conf
ISIT
Cüneyd Öztürk, Dongning Guo, Randall A. Berry, Michael L. Honig
2025 conf
DySPAN
Zongyun Xie, Randall A. Berry
2025 J jnl
CoRR
Federico Bobbio, Randall A. Berry, Michael L. Honig, Thành Nguyen, Vijay G. Subramanian, Rakesh V. Vohra
2024 conf
DySPAN
Zongyun Xie, Randall A. Berry
2024 conf
DySPAN
Cuneyd Ozturk, Randall A. Berry, Dongning Guo, Michael L. Honig, Frank D. Lind
2023 B conf
WiOpt
Zongyun Xie, Randall A. Berry
2023 J jnl
IEEE Trans. Mob. Comput.
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2023 J jnl
IEEE Trans. Mob. Comput.
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2022 J jnl
IEEE Trans. Mob. Comput.
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2022 J jnl
IEEE Trans. Mob. Comput.
Chao Huang, Haoran Yu, Randall A. Berry, Jianwei Huang
2021 J jnl
IEEE Trans. Netw. Sci. Eng.
Xu Wang, Randall A. Berry
2021 B conf
ISIT
Meng Zhang, Ahmed Arafa, Ermin Wei, Randall A. Berry
2021 J jnl
J. Commun. Networks
Randall A. Berry, Zhu Han, Krishna Narayanan, H. Vincent Poor, Christos V. Verikoukis, Osman Yagan
2021 A* conf
INFOCOM
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2021 J jnl
CoRR
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2020 J jnl
CoRR
Natasa Trkulja, David Starobinski, Randall A. Berry
2020 J jnl
IEEE Trans. Netw. Sci. Eng.
Brendan Badia, Randall A. Berry, Ermin Wei
2020 J jnl
CoRR
Haoran Yu, Ermin Wei, Randall A. Berry
2020 B conf
MobiHoc
Haoran Yu, Ermin Wei, Randall A. Berry
2020 conf
INFOCOM Workshops
Xu Wang, Randall A. Berry
2020 J jnl
IEEE J. Sel. Areas Commun.
Haoran Yu, Ermin Wei, Randall A. Berry
2020 B conf
WiOpt
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2020 J jnl
CoRR
Meng Zhang, Ahmed Arafa, Ermin Wei, Randall A. Berry
2020 J jnl
IEEE/ACM Trans. Netw.
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2020 J jnl
IEEE J. Sel. Areas Commun.
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2019 A* conf
INFOCOM
Haoran Yu, Ermin Wei, Randall A. Berry
2019 conf
INFOCOM Workshops
Hao Ge, Randall A. Berry
2019 conf
SIGMETRICS (Abstracts)
Haoran Yu, Ermin Wei, Randall A. Berry
2019 J jnl
CoRR
Haoran Yu, Ermin Wei, Randall A. Berry
2019 J jnl
Proc. ACM Meas. Anal. Comput. Syst.
Haoran Yu, Ermin Wei, Randall A. Berry
2019 A* conf
INFOCOM
Yining Zhu, Haoran Yu, Randall A. Berry, Chang Liu
2019 B conf
GLOBECOM
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2019 conf
GlobalSIP
Chao Huang, Haoran Yu, Jianwei Huang, Randall A. Berry
2019 J jnl
CoRR
Haoran Yu, Ermin Wei, Randall A. Berry
2019 A* conf
INFOCOM
Xu Wang, Randall A. Berry
2019 B conf
ISIT
Hao Ge, Randall A. Berry
2019 B conf
MobiHoc
Hao Ge, Randall A. Berry
2019 B conf
WiOpt
Yining Zhu, Haoran Yu, Randall A. Berry
2018 conf
VTC Fall
Xu Wang, Randall A. Berry, Ivan Vukovic, Jayanthi Rao
2018 J jnl
CoRR
Xu Wang, Randall A. Berry, Ivan Vukovic, Jayanthi Rao
2018 B conf
ISIT
Tho Ngoc Le, Vijay G. Subramanian, Randall A. Berry
2018 A* conf
INFOCOM
Yining Zhu, Randall A. Berry
2018 J jnl
IEEE Trans. Signal Process.
Jarkko Kaleva, Antti Tölli, Markku J. Juntti, Randall A. Berry, Michael L. Honig
2018 A* conf
INFOCOM
Hao Ge, Randall A. Berry
2018 conf
Allerton
Hao Ge, Randall A. Berry
2018 J jnl
IEEE Trans. Cogn. Commun. Netw.
Arnob Ghosh, Randall A. Berry, Vaneet Aggarwal
2018 A* conf
INFOCOM
Xu Wang, Randall A. Berry
2017 conf
WONS
Chang Liu, Yuanzhang Xiao, Ermin Wei, Randall A. Berry
2017 J jnl
IEEE Trans. Cogn. Commun. Netw.
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2017 J jnl
CoRR
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2017 conf
INFOCOM Workshops
Yining Zhu, Randall A. Berry
2017 B conf
ISIT
Ruijie Xu, Hao Ge, Randall A. Berry
2017 J jnl
IEEE J. Sel. Areas Commun.
Luca Sanguinetti, Tansu Alpcan, Tamer Basar, Mehdi Bennis, Randall A. Berry, Jianwei Huang, Walid Saad
2017 J jnl
IEEE J. Sel. Areas Commun.
Luca Sanguinetti, Tansu Alpcan, Tamer Basar, Mehdi Bennis, Randall A. Berry, Jianwei Huang, Walid Saad
2017 J jnl
IEEE Trans. Signal Inf. Process. over Networks
Tho Ngoc Le, Vijay G. Subramanian, Randall A. Berry
2017 conf
DySPAN
Chang Liu, Sihua Fu, Randall A. Berry
2017 conf
DySPAN
Yining Zhu, Randall A. Berry
2017 conf
Allerton
Tho Ngoc Le, Vijay G. Subramanian, Randall A. Berry
2017 conf
ICC
Hao Ge, Randall A. Berry
2017 J jnl
CoRR
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2017 conf
DySPAN
Xu Wang, Randall A. Berry
2017 conf
DySPAN
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2016 B conf
ISIT
Tho Ngoc Le, Vijay G. Subramanian, Randall A. Berry
2016 conf
CDC
Tho Ngoc Le, Vijay G. Subramanian, Randall A. Berry
2016 B conf
ISIT
Arnob Ghosh, Saswati Sarkar, Randall A. Berry
2016 J jnl
Oper. Res.
Thành Nguyen, Hang Zhou, Randall A. Berry, Michael L. Honig, Rakesh Vohra
2016 J jnl
CoRR
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2016 Misc conf
CISS
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2016 B conf
WiOpt
Chang Liu, Randall A. Berry
2016 A* conf
INFOCOM
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2016 conf
INFOCOM Workshops
Chang Liu, Randall A. Berry
2015 conf
INFOCOM Workshops
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2015 Misc conf
ACSSC
Chang Liu, Randall A. Berry
2015 conf
INFOCOM Workshops
Chang Liu, Randall A. Berry
2015 conf
Allerton
Chang Liu, Yuanzhang Xiao, Ermin Wei, Randall A. Berry
2015 B conf
ISIT
Hao Ge, Ruijie Xu, Randall A. Berry
2015 J jnl
CoRR
Thành Nguyen, Hang Zhou, Randall A. Berry, Michael L. Honig, Rakesh V. Vohra
2014 conf
Allerton
Chang Liu, Randall A. Berry
2014 J jnl
IEEE Trans. Signal Process.
Changxin Shi, Randall A. Berry, Michael L. Honig
2014 Misc conf
CISS
Chang Liu, Randall A. Berry
2014 conf
CrownCom
Chang Liu, Randall A. Berry
2014 conf
DySPAN
Chang Liu, Randall A. Berry
2014 Misc conf
COCOON
Georgios Askalidis, Randall A. Berry, Vijay G. Subramanian
2014 J jnl
CoRR
Georgios Askalidis, Randall A. Berry, Vijay G. Subramanian
2014 conf
INFOCOM Workshops
Hang Zhou, Randall A. Berry, Michael L. Honig, Rakesh Vohra
2014 conf
CDC
Tho Ngoc Le, Vijay G. Subramanian, Randall A. Berry
2014 B conf
ISIT
Tho Ngoc Le, Vijay G. Subramanian, Randall A. Berry
2013 J jnl
CoRR
Randall A. Berry, Thành Nguyen, Vijay G. Subramanian
2013 J jnl
IEEE Trans. Signal Process.
David A. Schmidt, Changxin Shi, Randall A. Berry, Michael L. Honig, Wolfgang Utschick
2013 B conf
GLOBECOM
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2013 conf
ICC
Minhua Ding, Olav Tirkkonen, Randall A. Berry, Sennur Ulukus
2013 J jnl
Found. Trends Netw.
Randall A. Berry, Ramesh Johari
2013 J jnl
IEEE Trans. Inf. Theory
Randall A. Berry
2013 B conf
ISIT
Suvarup Saha, Randall A. Berry
2013 Misc conf
ACSSC
Cheng Chen, Randall A. Berry, Michael L. Honig, Vijay G. Subramanian
2013 J jnl
IEEE J. Sel. Areas Commun.
Yalin Evren Sagduyu, Randall A. Berry, Dongning Guo
2012 Misc conf
CISS
Hang Zhou, Randall A. Berry, Michael L. Honig, Rakesh Vohra
2012 J jnl
IEEE Commun. Mag.
Randall A. Berry
2012 J jnl
IEEE Trans. Inf. Theory
Kaibin Huang, Jeffrey G. Andrews, Dongning Guo, Robert W. Heath Jr., Randall A. Berry
2012 B conf
ISIT
Suvarup Saha, Randall A. Berry
2012 conf
Allerton Conference
Suvarup Saha, Randall A. Berry
2012 B conf
ITW
Suvarup Saha, Randall A. Berry
2011 B conf
ISIT
Suvarup Saha, Randall A. Berry
2011 J jnl
IEEE Trans. Wirel. Commun.
Ertugrul Necdet Ciftcioglu, Yalin Evren Sagduyu, Randall A. Berry, Aylin Yener
2011 B conf
ISIT
Ka-Hung Hui, Tianyi Li, Dongning Guo, Randall A. Berry
2011 Misc conf
ICASSP
Binnan Zhuang, Randall A. Berry, Michael L. Honig
2011 B conf
ISIT
Changxin Shi, Randall A. Berry, Michael L. Honig
2011 J jnl
IEEE Commun. Mag.
Yalin Evren Sagduyu, Randall A. Berry, Anthony Ephremides
2011 J jnl
CoRR
Ka-Hung Hui, Dongning Guo, Randall A. Berry
2011 J jnl
IEEE Trans. Inf. Theory
Randall A. Berry, David N. C. Tse
2011 B conf
WiOpt
Hang Zhou, Randall A. Berry, Michael L. Honig, Rakesh Vohra
2011 conf
Allerton
Suvarup Saha, Randall A. Berry
2010 J jnl
CoRR
Changxin Shi, Randall A. Berry, Michael L. Honig
2010 Misc conf
CISS
Changxin Shi, Randall A. Berry, Michael L. Honig
2010 B conf
ISIT
Yalin Evren Sagduyu, Randall A. Berry, Anthony Ephremides
2010 J jnl
IEEE Trans. Inf. Theory
Vijay G. Subramanian, Randall A. Berry, Rajeev Agrawal
2010 B conf
ISIT
Ka-Hung Hui, Dongning Guo, Randall A. Berry
2010 B conf
ISIT
Ning Wen, Randall A. Berry
2010 conf
Allerton
Suvarup Saha, Randall A. Berry
2010 Misc conf
CISS
Ertugrul Necdet Ciftcioglu, Yalin Evren Sagduyu, Aylin Yener, Randall A. Berry
2010 J jnl
CoRR
Randall A. Berry, David N. C. Tse
2010 Misc conf
CISS
Ka-Hung Hui, Yalin Evren Sagduyu, Dongning Guo, Randall A. Berry
2010 B conf
WiOpt
Yalin Evren Sagduyu, Randall A. Berry, Anthony Ephremides
2009 conf
Allerton
Hang Zhou, Randall A. Berry, Michael L. Honig, Rakesh Vohra
2009 conf
ICC
Changxin Shi, David A. Schmidt, Randall A. Berry, Michael L. Honig, Wolfgang Utschick
2009 J jnl
IEEE Signal Process. Mag.
David A. Schmidt, Changxin Shi, Randall A. Berry, Michael L. Honig, Wolfgang Utschick
2009 A conf
ICDCS
John S. Otto, Fabián E. Bustamante, Randall A. Berry
2009 J jnl
IEEE Trans. Wirel. Commun.
Jianwei Huang, Vijay G. Subramanian, Rajeev Agrawal, Randall A. Berry
2009 B conf
ITW
Randall A. Berry, David N. C. Tse
2009 B conf
ISIT
Changxin Shi, Randall A. Berry, Michael L. Honig
2008 conf
Allerton
Jieying Chen, Randall A. Berry, Michael L. Honig
2008 Misc conf
CISS
Changxin Shi, Randall A. Berry, Michael L. Honig
2008 conf
Allerton
Changxin Shi, Randall A. Berry, Michael L. Honig
2008 J jnl
Wirel. Networks
Xiangping Qin, Randall A. Berry
2008 J jnl
IEEE J. Sel. Top. Signal Process.
Ananthram Swami, Randall A. Berry, Akbar M. Sayeed, Vahid Tarokh, Qing Zhao
2008 J jnl
IEEE J. Sel. Areas Commun.
Jieying Chen, Randall A. Berry, Michael L. Honig
2008 conf
ACSCC
Hongxia Shen, Hang Zhou, Randall A. Berry, Michael L. Honig
2008 B conf
ISIT
Ning Wen, Randall A. Berry
2008 J jnl
IEEE J. Sel. Areas Commun.
Junjik Bae, Eyal Beigman, Randall A. Berry, Michael L. Honig, Rakesh V. Vohra
2008 J jnl
CoRR
Kaibin Huang, Jeffrey G. Andrews, Robert W. Heath Jr., Dongning Guo, Randall A. Berry
2008 B conf
GLOBECOM
Kaibin Huang, Jeffrey G. Andrews, Robert W. Heath Jr., Dongning Guo, Randall A. Berry
2008 J jnl
CoRR
Kaibin Huang, Jeffrey G. Andrews, Robert W. Heath Jr., Dongning Guo, Randall A. Berry
2008 conf
ACSCC
Kaibin Huang, Robert W. Heath Jr., Jeffrey G. Andrews, Dongning Guo, Randall A. Berry
2007 J jnl
IEEE Trans. Inf. Technol. Biomed.
Marisa Ruffolo, Mark S. Daskin, Alan V. Sahakian, Randall A. Berry
2007 J jnl
IEEE Trans. Wirel. Commun.
Peijuan Liu, Randall A. Berry, Michael L. Honig, Scott Jordan
2007 B conf
ISIT
Jieying Chen, Randall A. Berry, Michael L. Honig
2007 J jnl
IEEE Trans. Inf. Theory
Edmund M. Yeh, Randall A. Berry
2006 J jnl
IEEE Trans. Inf. Theory
Peijuan Liu, Randall A. Berry, Michael L. Honig
2006 J jnl
IEEE Trans. Inf. Theory
Xiangping Qin, Randall A. Berry
2006 J jnl
IEEE J. Sel. Areas Commun.
Jianwei Huang, Randall A. Berry, Michael L. Honig
2006 B conf
ISIT
Jieying Chen, Randall A. Berry, Michael L. Honig
2005 B conf
ISIT
Jianwei Huang, Randall A. Berry, Michael L. Honig
2005 B conf
ISIT
Edmund M. Yeh, Randall A. Berry
2005 J jnl
IEEE Trans. Wirel. Commun.
Jianwei Huang, Randall A. Berry, Michael L. Honig
2004 J jnl
IEEE Signal Process. Mag.
Randall A. Berry, Edmund Yeh
2004 A* conf
INFOCOM
Randall A. Berry, Eytan H. Modiano
2004 A* conf
INFOCOM
Xiangping Qin, Randall A. Berry
2004 B conf
ISIT
Randall A. Berry
2004 J jnl
IEEE J. Sel. Areas Commun.
Randall A. Berry, Eytan H. Modiano
2003 A* conf
INFOCOM
Xiangping Qin, Randall A. Berry
2002 J jnl
IEEE Trans. Inf. Theory
Randall A. Berry, Robert G. Gallager
2002 A* conf
INFOCOM
Peter Marbach, Randall A. Berry
2002 conf
JCIS
Randall A. Berry, Eytan H. Modiano
2000
Randall A. Berry
1997 A* conf
INFOCOM
Charles E. Rohrs, Randall A. Berry
1996 J jnl
Comput. Commun.
Charles E. Rohrs, Randall A. Berry, Stephen J. O'Halek
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