Wang Ling Goh

133 papers A* 4C 33Misc 1Journal 44Unranked 51
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Tiancheng Cao, Zhongyi Zhang, Wei Soon Ng, Wang Ling Goh, Yuan Gao
2026 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Tiancheng Cao, Wei Soon Ng, Wang Ling Goh, Yuan Gao, Hen-Wei Huang
2026 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Chen Shen, Jinhai Hu, Wang Ling Goh, Yi Sheng Chong, Anh Tuan Do, Yuan Gao
2025 C conf
ISCAS
Zhaoyang Cao, Jinhai Hu, Wang Ling Goh, Yuan Gao
2025 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Ziming Liu, Wang Ling Goh, Liter Siek, Yuan Gao
2025 C conf
ISCAS
Jinhai Hu, Wang Ling Goh, Yuan Gao
2025 C conf
ISCAS
Shuailin Tao, Wang Ling Goh, Tiancheng Cao, Yuan Gao
2025 J jnl
CoRR
Jinhai Hu, Wang Ling Goh, Yuan Gao
2025 C conf
ISCAS
Qibang Zang, Wang Ling Goh, Andres Brito, Anh Tuan Do
2025 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Tiancheng Cao, Weihao Yu, Yuan Gao, Chen Liu, Tantan Zhang, Shuicheng Yan, Wang Ling Goh
2025 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Jinhai Hu, Zhongyi Zhang, Cong Sheng Leow, Wang Ling Goh, Yuan Gao
2025 J jnl
CoRR
Jinhai Hu, Zhongyi Zhang, Cong Sheng Leow, Wang Ling Goh, Yuan Gao
2025 C conf
ISCAS
Tiancheng Cao, Zhengyuan Zhang, Shuailin Tao, Chen Liu, Wang Ling Goh, Yuanjing Zheng, Yuan Gao
2025 C conf
ISCAS
Yuntian Liu, Yi Sheng Chong, Benjamin Lienhard, Minghao Fan, Wang Ling Goh, Vishnu P. Nambiar, Anh Tuan Do
2025 J jnl
IEEE Trans. Biomed. Circuits Syst.
Zhengyuan Zhang, Tiancheng Cao, Siyu Liu, Haoran Jin, Wensong Wang, Xiangjun Yin, Chen Liu, Wang Ling Goh, Yuan Gao, Yuanjin Zheng
2025 J jnl
IEEE Trans. Biomed. Circuits Syst.
Jinhai Hu, Cong Sheng Leow, Shuailin Tao, Wang Ling Goh, Yuan Gao
2024 C conf
ISCAS
Zhangyi Pei, Vishnu P. Nambiar, Yi Sheng Chong, Wang Ling Goh, Anh Tuan Do
2024 C conf
ISCAS
Jiaju Lu, Siqi Zhang, Wang Ling Goh, Yuan Gao
2024 C conf
ISCAS
Zhongyi Zhang, Wang Ling Goh, Yuan Gao
2024 conf
A-SSCC
Zexin Su, Chang Liu, Zhe Chen, Zhiqiang Li, Guangyin Shi, Qian Luo, Jixin Chen, Wang Ling Goh, Zhengsheng Han, Bo Li
2024 conf
BioCAS
Shuailin Tao, Jinhai Hu, Wang Ling Goh, Yuan Gao
2024 conf
BioCAS
Tiancheng Cao, Wei Soon Ng, Wang Ling Goh, Yuan Gao
2024 C conf
ISCAS
Wei Soon Ng, Wang Ling Goh, Yuan Gao
2024 conf
BioCAS
Jinhai Hu, Wang Ling Goh, Yuan Gao
2024 A* conf
DAC
Jinhai Hu, Zhongyi Zhang, Cong Sheng Leow, Wang Ling Goh, Yuan Gao
2024 C conf
ISCAS
Yi Sheng Chong, Hongyu Cao, Wang Ling Goh, Patrick Bore, Yuanzheng Paul Tan, Yung Szen Yap, Rainer Dumke, Vishnu P. Nambiar, Anh Tuan Do
2024 C conf
ISCAS
Shuailin Tao, Jinhai Hu, Wang Ling Goh, Yuan Gao
2023 C conf
ISCAS
Qibang Zang, Wang Ling Goh, Lu Lu, Chengshuo Yu, Junjie Mu, Tony Tae-Hyoung Kim, Bongjin Kim, Dongrui Li, Anh Tuan Do
2023 conf
AICAS
Qibang Zang, Wang Ling Goh, Yi Sheng Chong, Anh Tuan Do
2023 C conf
ISCAS
Chen Shen, Junran Pu, Yi Sheng Chong, Zhongyi Zhang, Wang Ling Goh, Bin Zhao, Anh Tuan Do, Yuan Gao
2023 conf
BioCAS
Ziming Liu, Wang Ling Goh, Liter Siek, Yuan Gao
2023 conf
AICAS
Shuailin Tao, Wang Ling Goh, Yuan Gao
2023 C conf
ISCAS
Zhongyi Zhang, Tantan Zhang, Chen Shen, Wang Ling Goh, Yuan Gao
2023 conf
AICAS
Tiancheng Cao, Zhongyi Zhang, Wang Ling Goh, Chen Liu, Yao Zhu, Yuan Gao
2023 C conf
ISCAS
Jinhai Hu, Wang Ling Goh, Yuan Gao
2023 conf
BioCAS
Tiancheng Cao, Zhongyi Zhang, Wang Ling Goh, Chen Liu, Yao Zhu, Yuan Gao
2023 conf
AICAS
Jinhai Hu, Cong Sheng Leow, Wang Ling Goh, Yuan Gao
2023 C conf
ISCAS
Tiancheng Cao, Weihao Yu, Yuan Gao, Chen Liu, Shuicheng Yan, Wang Ling Goh
2023 C conf
ISCAS
Cong Sheng Leow, Wang Ling Goh, Yuan Gao
2023 conf
BioCAS
Jinhai Hu, Cong Sheng Leow, Shuailin Tao, Wang Ling Goh, Yuan Gao
2022 C conf
ISCAS
Yi Sheng Chong, Wang Ling Goh, Yew Soon Ong, Vishnu P. Nambiar, Anh Tuan Do
2022 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Yi Sheng Chong, Wang Ling Goh, Vishnu P. Nambiar, Anh-Tuan Do
2022 J jnl
IEEE J. Emerg. Sel. Topics Circuits Syst.
Tiancheng Cao, Chen Liu, Weijie Wang, Tantan Zhang, Hock Koon Lee, Ming Hua Li, Wendong Song, Zhixian Chen, Victor Yi-Qian Zhuo, Nan Wang, Yao Zhu, Yuan Gao, Wang Ling Goh
2022 conf
ISOCC
Yingfeng Wang, Yi Sheng Chong, Wang Ling Goh, Anh Tuan Do
2022 J jnl
IEEE J. Emerg. Sel. Topics Circuits Syst.
Tiancheng Cao, Chen Liu, Yuan Gao, Wang Ling Goh
2022 C conf
ISCAS
Yi Sheng Chong, Wang Ling Goh, Yew Soon Ong, Vishnu P. Nambiar, Anh Tuan Do
2022 conf
ISOCC
Qibang Zang, Wang Ling Goh, Fei Li, Lu Lu, Anh Tuan Do
2021 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Junran Pu, Wang Ling Goh, Vishnu P. Nambiar, Ming Ming Wong, Anh Tuan Do
2021 conf
AsianHOST
Xuyang Huang, Ming Ming Wong, Anh Tuan Do, Wang Ling Goh
2021 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Junran Pu, Wang Ling Goh, Vishnu P. Nambiar, Anh-Tuan Do
2021 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Junran Pu, Wang Ling Goh, Vishnu P. Nambiar, Yi Sheng Chong, Anh Tuan Do
2021 C conf
ISCAS
Yi Sheng Chong, Wang Ling Goh, Yew Soon Ong, Vishnu P. Nambiar, Anh Tuan Do
2021 C conf
VLSI-SoC
Zhaoyang Cao, Tan-Tan Zhang, Yuan Gao, Wang Ling Goh
2021 conf
AICAS
Jinhai Hu, Wang Ling Goh, Yuan Gao
2021 C conf
VLSI-SoC
Yi Sheng Chong, Wang Ling Goh, Yew Soon Ong, Vishnu P. Nambiar, Anh Tuan Do
2021 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Vishnu P. Nambiar, Junran Pu, Yun Kwan Lee, Aarthy Mani, Eng-Kiat Koh, Ming Ming Wong, Fei Li, Wang Ling Goh, Anh Tuan Do
2021 conf
MCSoC
Tiancheng Cao, Chen Liu, Yuan Gao, Wang Ling Goh
2020 conf
A-SSCC
Vishnu P. Nambiar, Junran Pu, Yun Kwan Lee, Aarthy Mani, Tao Luo, L. Yang, Eng-Kiat Koh, Ming Ming Wong, Fei Li, Wang Ling Goh, Anh Tuan Do
2020 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Wei Zhou, Wang Ling Goh, Yuan Gao
2020 J jnl
IEEE Trans. Biomed. Circuits Syst.
Tao Tang, Wang Ling Goh, Lei Yao, Yuan Gao
2020 J jnl
IEEE Trans. Biomed. Circuits Syst.
Tao Tang, Wang Ling Goh, Lei Yao, Jia Hao Cheong, Yuan Gao
2020 J jnl
Int. J. Comput. Vis.
Zichuan Liu, Guosheng Lin, Wang Ling Goh
2020 C conf
ISCAS
Vishnu P. Nambiar, Eng-Kiat Koh, Junran Pu, Aarthy Mani, Ming Ming Wong, Li Fei, Wang Ling Goh, Anh Tuan Do
2019 C conf
ISCAS
Wei Zhou, Wang Ling Goh, Yuan Gao
2019 conf
SoCC
Wei Zhou, Wang Ling Goh, Yi Chen, Tantan Zhang, Yuan Gao
2019 J jnl
IEEE Trans. Ind. Electron.
Yixing Li, Zichuan Liu, Wenye Liu, Yu Jiang, Yongliang Wang, Wang Ling Goh, Hao Yu, Fengbo Ren
2019 C conf
ISCAS
Junran Pu, Vishnu P. Nambiar, Anh-Tuan Do, Wang Ling Goh
2019 conf
SoCC
Yun Kwan Lee, Vishnu P. Nambiar, Junran Pu, Wang Ling Goh, Anh-Tuan Do
2019 conf
APWCS
Yin Rui, Nicholas Heng-Loong Wong, Huaqun Guo, Wang Ling Goh
2019 conf
SoCC
Junran Pu, Vishnu P. Nambiar, Aarthy Mani, Wang Ling Goh, Anh-Tuan Do
2019 A* conf
CVPR
Zichuan Liu, Guosheng Lin, Sheng Yang, Fayao Liu, Weisi Lin, Wang Ling Goh
2019 J jnl
CoRR
Zichuan Liu, Guosheng Lin, Sheng Yang, Fayao Liu, Weisi Lin, Wang Ling Goh
2018 J jnl
Sensors
Yongkui Yang, Jun Zhou, Xin Liu, Wang Ling Goh
2018 C conf
ISCAS
Wei Zhou, Wang Ling Goh, Jia Hao Cheong, Yuan Gao
2018 C conf
ISCAS
Arish Shareef, Wang Ling Goh, Srikanth Narasimalu, Yuan Gao
2018 conf
SOLI
Elvira Febiani, Huaqun Guo, Wang Ling Goh
2018 J jnl
CoRR
Zichuan Liu, Guosheng Lin, Wang Ling Goh, Fayao Liu, Chunhua Shen, Xiaokang Yang
2018 conf
WF-IoT
Marcellinus Hendro Adi Wibowo, Huaqun Guo, Wang Ling Goh
2018 C conf
ICIS
Wang Ling Goh, Nicholas Sadjoli
2018 A* conf
CVPR
Zichuan Liu, Guosheng Lin, Sheng Yang, Jiashi Feng, Weisi Lin, Wang Ling Goh
2018 J jnl
CoRR
Zichuan Liu, Guosheng Lin, Sheng Yang, Jiashi Feng, Weisi Lin, Wang Ling Goh
2018 A* conf
AAAI
Zichuan Liu, Yixing Li, Fengbo Ren, Wang Ling Goh, Hao Yu
2017 conf
A-SSCC
Tao Tang, Wang Ling Goh, Lei Yao, Yuan Gao
2017 conf
NEWCAS
Tao Tang, Wang Ling Goh, Lei Yao, Yuan Gao
2017 C conf
ISCAS
Yong Wang, Yan Hong, Wang Ling Goh, Kevin T. C. Chai, Xin Lou, Wen Bin Ye
2017 conf
EMBC
Tao Tang, Wang Ling Goh, Lei Yao, Jia Hao Cheong, Yuan Gao
2017 J jnl
Int. J. Circuit Theory Appl.
Ming Wai Lau, Kai Ho Mak, Ka Nang Leung, Jianping Guo, Wang Ling Goh
2016 conf
ISIC
Tao Tang, Wang Ling Goh, Xin Liu, Chao Wang
2016 conf
ISIC
Yihu Li, Wang Ling Goh, Hailin Tang, Haitao Liu, Xiaodong Deng, Yong-Zhong Xiong
2016 conf
ISIC
Jiacheng Wang, Wang Ling Goh
2016 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Jiacheng Wang, Wang Ling Goh, Xin Liu, Jun Zhou
2016 C conf
ISCAS
Jiacheng Wang, Wang Ling Goh
2016 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Yongkui Yang, Jun Zhou, Xin Liu, Jia Hao Cheong, Wang Ling Goh
2016 conf
VLSI Circuits
Yan Hong, Yong Wang, Wang Ling Goh, Yuan Gao, Lei Yao
2016 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Marco Ho, Jianping Guo, Tin Wai Mui, Kai Ho Mak, Wang Ling Goh, Hiu Ching Poon, Shi Bu, Ming Wai Lau, Ka Nang Leung
2016 conf
ISIC
Yong Wang, Yan Hong, Wang Ling Goh, Xiaojing Mu, Kevin T. C. Chai
2016 conf
APCCAS
Chundong Wu, Wang Ling Goh, Wei Mao, Lei Wang, Yat-Hei Lam, Alan Chang, Yong Lian
2016 conf
NEWCAS
Chundong Wu, Wang Ling Goh, Yongkui Yang, Alan Chang, Xi Zhu, Lei Wang
2016 conf
ISIC
Yan Hong, Yong Wang, Wang Ling Goh, Yuan Gao, Lei Yao
2016 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Chundong Wu, Wang Ling Goh, Chiang Liang Kok, Liter Siek, Yat-Hei Lam, Xi Zhu, Ravinder Pal Singh
2016 Misc conf
ICNC
Sari Shafidah Binte Shafiee, Kheong Sann Chan, Wang Ling Goh
2016 conf
ISIC
Arish Shareef, Wang Ling Goh, Yuan Gao, Srikanth Narasimalu
2015 J jnl
IEEE J. Solid State Circuits
Kai Ho Mak, Ming Wai Lau, Jianping Guo, Tin Wai Mui, Marco Ho, Wang Ling Goh, Ka Nang Leung
2015 conf
A-SSCC
Jiacheng Wang, Wang Ling Goh, Xin Liu, Jun Zhou
2015 conf
ESSCIRC
Yihu Li, Wang Ling Goh, Yong-Zhong Xiong
2015 conf
EMBC
Yan Hong, Yong Wang, Wang Ling Goh, Yuan Gao, Lei Yao
2015 conf
CICC
Chundong Wu, Wang Ling Goh, Chiang Liang Kok, Wanlan Yang, Liter Siek
2015 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Xin Liu, Jun Zhou, Chao Wang, Kah-Hyong Chang, Jianwen Luo, Jingjing Lan, Lei Liao, Yat-Hei Lam, Yongkui Yang, Bo Wang, Xin Zhang, Wang Ling Goh, Tony Tae-Hyoung Kim, Minkyu Je
2015 C conf
ISCAS
Kai Ho Mak, Marco Ho, Ka Nang Leung, Wang Ling Goh
2015 J jnl
IEEE Commun. Lett.
Melissa Wan Jun Chua, Kui Cai, Wang Ling Goh
2014 conf
A-SSCC
Seong-Jin Kim, Lei Liu, Lei Yao, Wang Ling Goh, Yuan Gao, Minkyu Je
2014 J jnl
IEEE J. Solid State Circuits
Xin Liu, Jun Zhou, Yongkui Yang, Bo Wang, Jingjing Lan, Chao Wang, Jianwen Luo, Wang Ling Goh, Tony Tae-Hyoung Kim, Minkyu Je
2014 conf
ISIC
Hendika Fatkhi Nurhuda, Yongkui Yang, Wang Ling Goh
2014 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Melvin Heng Li Lim, Wang Ling Goh
2013 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Xiaodan Zou, Lei Liu, Jia Hao Cheong, Lei Yao, Peng Li, Ming-Yuan Cheng, Wang Ling Goh, Ramamoorthy Rajkumar, Gavin Stewart Dawe, Kuang-Wei Cheng, Minkyu Je
2013 C conf
ICICS
Melvin Heng Li Lim, Wang Ling Goh
2013 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Stephen M. Cox, Jun Yu, Wang Ling Goh, Meng Tong Tan
2013 conf
EMBC
Lei Liu, Lei Yao, Xiaodan Zou, Wang Ling Goh, Minkyu Je
2012 J jnl
IEEE J. Solid State Circuits
Chang Liu, Yue-Peng Yan, Wang Ling Goh, Yong-Zhong Xiong, Li-jun Zhang, Mohammad Madihian
2012 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Jun Yu, Wang Ling Goh, Muthukumaraswamy Annamalai Arasu, Minkyu Je
2012 conf
ISSCC
Yong Wang, Wang Ling Goh, Yong-Zhong Xiong
2012 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Jun Yu, Meng Tong Tan, Wang Ling Goh, Stephen M. Cox
2012 conf
ISPACS
Melvin Heng Li Lim, Wang Ling Goh, Zhiliang Qin
2012 conf
ISPACS
Melissa Wan Jun Chua, Kui Cai, Wang Ling Goh
2011 conf
3DIC
Xin Liu, Lei Wang, Mini Jayakrishnan, Jingjing Lan, Hongyu Li, Chong Ser Choong, M. Kumarasamy Raja, Yongxin Guo, Wang Ling Goh, Jin He, Shan Gao, Minkyu Je
2011 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Myint Wai Phyu, Kangkang Fu, Wang Ling Goh, Kiat Seng Yeo
2011 conf
ISOCC
Ning Zhu, Wang Ling Goh, Kiat Seng Yeo
2010 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Ning Zhu, Wang Ling Goh, Weija Zhang, Kiat Seng Yeo, Zhi-Hui Kong
2009 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Hai Qi Liu, Wang Ling Goh, Liter Siek, Wei Meng Lim, Yue Ping Zhang
2008 conf
APCCAS
Liang-Yu Loy, Weija Zhang, Zhi-Hui Kong, Wang Ling Goh, Kiat Seng Yeo
2005 conf
SoCC
Hai Qi Liu, Wang Ling Goh, Liter Siek
2005 conf
ISCAS (2)
Hai Qi Liu, Wang Ling Goh, Liter Siek
2005 conf
ISCAS (3)
Myint Wai Phyu, Wang Ling Goh, Kiat Seng Yeo
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