N. Benjamin Erichson

84 papers A* 13A 4C 1Journal 63Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Soon Hoe Lim, Shizheng Lin, Michael W. Mahoney, N. Benjamin Erichson
2026 J jnl
CoRR
Yu Fu, Haz Sameen Shahgir, Huanli Gong, Zhipeng Wei, N. Benjamin Erichson, Yue Dong
2026 J jnl
CoRR
Shenghao Yang, Zhichao Wang, Oleg Balabanov, N. Benjamin Erichson, Michael W. Mahoney
2026 J jnl
CoRR
Aditi Gupta, Raphael A. Meyer, Yotam Yaniv, Elynn Chen, N. Benjamin Erichson
2026 J jnl
CoRR
Alex Morehead, Miruna T. Cretu, Antonia Panescu, Rishabh Anand, Maurice Weiler, Tynan Perez, Samuel M. Blau, Steven Farrell, Wahid Bhimji, Anubhav Jain, Hrushikesh Sahasrabuddhe, Pietro Lio, Tommi S. Jaakkola, Rafael Gómez-Bombarelli, Rex Ying, N. Benjamin Erichson, Michael W. Mahoney
2025 J jnl
CoRR
Yihan Wang, Lujun Zhang, Annan Yu, N. Benjamin Erichson, Tiantian Yang
2025 J jnl
CoRR
Annan Yu, N. Benjamin Erichson
2025 J jnl
Trans. Mach. Learn. Res.
Soon Hoe Lim, Yijin Wang, Annan Yu, Emma Hart, Michael W. Mahoney, Xiaoye Sherry Li, N. Benjamin Erichson
2025 A* conf
ICML
Zhipeng Wei, Yuqi Liu, N. Benjamin Erichson
2025 J jnl
CoRR
N. Benjamin Erichson, Vinicius Mikuni, Dongwei Lyu, Yang Gao, Omri Azencot, Soon Hoe Lim, Michael W. Mahoney
2025 A conf
AISTATS
N. Benjamin Erichson, Soon Hoe Lim, Michael W. Mahoney
2025 A* conf
ICLR
Annan Yu, Michael W. Mahoney, N. Benjamin Erichson
2025 J jnl
CoRR
Jialin Song, Yingheng Tang, Pu Ren, Shintaro Takayoshi, Saurabh Sawant, Yujie Zhu, Jia-Mian Hu, Andy Nonaka, Michael W. Mahoney, N. Benjamin Erichson, Zhi Yao
2025 J jnl
CoRR
Yihan Wang, Annan Yu, Lujun Zhang, Charuleka Varadharajan, N. Benjamin Erichson
2025 J jnl
CoRR
Yingheng Tang, Wenbin Xu, Jie Cao, Jianzhu Ma, Weilu Gao, Steven Farrell, N. Benjamin Erichson, Michael W. Mahoney, Andy Nonaka, Zhi Yao
2025 J jnl
CoRR
Kareem Hegazy, Michael W. Mahoney, N. Benjamin Erichson
2025 J jnl
CoRR
Krti Tallam, John Kevin Cava, Caleb Geniesse, N. Benjamin Erichson, Michael W. Mahoney
2025 J jnl
J. Data-centric Mach. Learn. Res.
Pu Ren, N. Benjamin Erichson, Junyi Guo, Shashank Subramanian, Omer San, Zarija Lukic, Michael W. Mahoney
2025 A* conf
ICLR
Annan Yu, Dongwei Lyu, Soon Hoe Lim, Michael W. Mahoney, N. Benjamin Erichson
2024 J jnl
CoRR
Soon Hoe Lim, Yijin Wang, Annan Yu, Emma Hart, Michael W. Mahoney, Xiaoye S. Li, N. Benjamin Erichson
2024 J jnl
CoRR
Zhipeng Wei, Yuqi Liu, N. Benjamin Erichson
2024 J jnl
Mach. Learn. Sci. Technol.
Jialin Song, Zezheng Song, Pu Ren, N. Benjamin Erichson, Michael W. Mahoney, Xiaoye S. Li
2024 A* conf
ICLR
Ilan Naiman, N. Benjamin Erichson, Pu Ren, Michael W. Mahoney, Omri Azencot
2024 J jnl
CoRR
Pu Ren, Rie Nakata, Maxime Lacour, Ilan Naiman, Nori Nakata, Jialin Song, Zhengfa Bi, Osman Asif Malik, Dmitriy Morozov, Omri Azencot, N. Benjamin Erichson, Michael W. Mahoney
2024 A conf
AISTATS
N. Benjamin Erichson, Soon Hoe Lim, Winnie Xu, Francisco Utrera, Ziang Cao, Michael W. Mahoney
2024 A* conf
ICLR
Annan Yu, Arnur Nigmetov, Dmitriy Morozov, Michael W. Mahoney, N. Benjamin Erichson
2024 J jnl
CoRR
Annan Yu, Michael W. Mahoney, N. Benjamin Erichson
2024 J jnl
CoRR
Annan Yu, Dongwei Lyu, Soon Hoe Lim, Michael W. Mahoney, N. Benjamin Erichson
2024 J jnl
CoRR
Dongwei Lyu, Rie Nakata, Pu Ren, Michael W. Mahoney, Arben Pitarka, Nori Nakata, N. Benjamin Erichson
2023 A conf
AISTATS
Junwen Yao, N. Benjamin Erichson, Miles E. Lopes
2023 J jnl
CoRR
Junwen Yao, N. Benjamin Erichson, Miles E. Lopes
2023 J jnl
CoRR
Ilan Naiman, N. Benjamin Erichson, Pu Ren, Michael W. Mahoney, Omri Azencot
2023 J jnl
CoRR
Riley Murray, James Demmel, Michael W. Mahoney, N. Benjamin Erichson, Maksim Melnichenko, Osman Asif Malik, Laura Grigori, Piotr Luszczek, Michal Derezinski, Miles E. Lopes, Tianyu Liang, Hengrui Luo, Jack J. Dongarra
2023 J jnl
CoRR
Annan Yu, Arnur Nigmetov, Dmitriy Morozov, Michael W. Mahoney, N. Benjamin Erichson
2023 J jnl
CoRR
Pu Ren, N. Benjamin Erichson, Shashank Subramanian, Omer San, Zarija Lukic, Michael W. Mahoney
2022 J jnl
CoRR
N. Benjamin Erichson, Soon Hoe Lim, Michael W. Mahoney
2022 J jnl
CoRR
Aditi S. Krishnapriyan, Alejandro F. Queiruga, N. Benjamin Erichson, Michael W. Mahoney
2022 A* conf
ICLR
T. Konstantin Rusch, Siddhartha Mishra, N. Benjamin Erichson, Michael W. Mahoney
2022 A* conf
ICLR
Soon Hoe Lim, N. Benjamin Erichson, Francisco Utrera, Winnie Xu, Michael W. Mahoney
2022 J jnl
CoRR
N. Benjamin Erichson, Soon Hoe Lim, Francisco Utrera, Winnie Xu, Ziang Cao, Michael W. Mahoney
2021 J jnl
CoRR
Omri Azencot, N. Benjamin Erichson, Mirela Ben-Chen, Michael W. Mahoney
2021 A* conf
ICLR
Francisco Utrera, Evan Kravitz, N. Benjamin Erichson, Rajiv Khanna, Michael W. Mahoney
2021 J jnl
CoRR
Reese Pathak, Rajat Sen, Nikhil Rao, N. Benjamin Erichson, Michael I. Jordan, Inderjit S. Dhillon
2021 J jnl
CoRR
Alejandro F. Queiruga, N. Benjamin Erichson, Liam Hodgkinson, Michael W. Mahoney
2021 A* conf
ICLR
N. Benjamin Erichson, Omri Azencot, Alejandro F. Queiruga, Liam Hodgkinson, Michael W. Mahoney
2021 J jnl
CoRR
T. Konstantin Rusch, Siddhartha Mishra, N. Benjamin Erichson, Michael W. Mahoney
2021 A conf
SDM
N. Benjamin Erichson, Dane Taylor, Qixuan Wu, Michael W. Mahoney
2021 J jnl
CoRR
Soon Hoe Lim, N. Benjamin Erichson, Francisco Utrera, Winnie Xu, Michael W. Mahoney
2021 A* conf
NeurIPS
Soon Hoe Lim, N. Benjamin Erichson, Liam Hodgkinson, Michael W. Mahoney
2021 J jnl
CoRR
Soon Hoe Lim, N. Benjamin Erichson, Liam Hodgkinson, Michael W. Mahoney
2021 A* conf
NeurIPS
Alejandro F. Queiruga, N. Benjamin Erichson, Liam Hodgkinson, Michael W. Mahoney
2020 J jnl
CoRR
Francisco Utrera, Evan Kravitz, N. Benjamin Erichson, Rajiv Khanna, Michael W. Mahoney
2020 J jnl
CoRR
Alejandro F. Queiruga, N. Benjamin Erichson, Dane Taylor, Michael W. Mahoney
2020 A* conf
ICML
Miles E. Lopes, N. Benjamin Erichson, Michael W. Mahoney
2020 J jnl
CoRR
Miles E. Lopes, N. Benjamin Erichson, Michael W. Mahoney
2020 A* conf
ICML
Omri Azencot, N. Benjamin Erichson, Vanessa Lin, Michael W. Mahoney
2020 J jnl
CoRR
Omri Azencot, N. Benjamin Erichson, Vanessa Lin, Michael W. Mahoney
2020 C conf
ICPRAM
N. Benjamin Erichson, Zhewei Yao, Michael W. Mahoney
2020 J jnl
CoRR
N. Benjamin Erichson, Omri Azencot, Alejandro F. Queiruga, Michael W. Mahoney
2020 J jnl
CoRR
N. Benjamin Erichson, Dane Taylor, Qixuan Wu, Michael W. Mahoney
2020 J jnl
Mach. Learn. Sci. Technol.
N. Benjamin Erichson, Krithika Manohar, Steven L. Brunton, J. Nathan Kutz
2020 J jnl
SIAM J. Appl. Math.
N. Benjamin Erichson, Peng Zheng, Krithika Manohar, Steven L. Brunton, J. Nathan Kutz, Aleksandr Y. Aravkin
2019 J jnl
CoRR
Miles E. Lopes, N. Benjamin Erichson, Michael W. Mahoney
2019 J jnl
J. Real Time Image Process.
N. Benjamin Erichson, Steven L. Brunton, J. Nathan Kutz
2019 J jnl
CoRR
N. Benjamin Erichson, Zhewei Yao, Michael W. Mahoney
2019 J jnl
CoRR
N. Benjamin Erichson, Michael Muehlebach, Michael W. Mahoney
2019 J jnl
SIAM J. Appl. Dyn. Syst.
N. Benjamin Erichson, Lionel Mathelin, J. Nathan Kutz, Steven L. Brunton
2019 J jnl
CoRR
Zhe Bai, N. Benjamin Erichson, Muralikrishnan Gopalakrishnan Meena, Kunihiko Taira, Steven L. Brunton
2019 J jnl
IEEE Trans. Medical Imaging
Chen Gong, N. Benjamin Erichson, John P. Kelly, Laura C. Trutoiu, Brian T. Schowengerdt, Steven L. Brunton, Eric J. Seibel
2019 J jnl
CoRR
N. Benjamin Erichson, Lionel Mathelin, Zhewei Yao, Steven L. Brunton, Michael W. Mahoney, J. Nathan Kutz
2018 J jnl
CoRR
N. Benjamin Erichson, Lionel Mathelin, Steven L. Brunton, J. Nathan Kutz
2018 J jnl
Pattern Recognit. Lett.
N. Benjamin Erichson, Ariana Mendible, Sophie Wihlborn, J. Nathan Kutz
2018 J jnl
CoRR
Chen Gong, N. Benjamin Erichson, John P. Kelly, Laura C. Trutoiu, Brian T. Schowengerdt, Steven L. Brunton, Eric J. Seibel
2018 J jnl
CoRR
N. Benjamin Erichson, Peng Zeng, Krithika Manohar, Steven L. Brunton, J. Nathan Kutz, Aleksandr Y. Aravkin
2017 conf
ICCV Workshops
N. Benjamin Erichson, Steven L. Brunton, J. Nathan Kutz
2017 conf
ICCV Workshops
Seth D. Pendergrass, Steven L. Brunton, J. Nathan Kutz, N. Benjamin Erichson, Travis Askham
2017 J jnl
CoRR
N. Benjamin Erichson, Krithika Manohar, Steven L. Brunton, J. Nathan Kutz
2017 J jnl
CoRR
N. Benjamin Erichson, Steven L. Brunton, J. Nathan Kutz
2017 J jnl
CoRR
N. Benjamin Erichson, Ariana Mendible, Sophie Wihlborn, J. Nathan Kutz
2016 J jnl
CoRR
N. Benjamin Erichson, Sergey Voronin, Steven L. Brunton, J. Nathan Kutz
2016 J jnl
Comput. Vis. Image Underst.
N. Benjamin Erichson, Carl Donovan
2015 J jnl
CoRR
N. Benjamin Erichson, Steven L. Brunton, J. Nathan Kutz
2015 conf
ICCV Workshops
J. Nathan Kutz, Xing Fu, Steven L. Brunton, N. Benjamin Erichson
2015 J jnl
CoRR
N. Benjamin Erichson, Carl Donovan
tests/unit/test_extractor_registry.py
← Index tests/unit/test_extractor_registry.py python
"""
Unit tests for the extractor registry (redb/extractor_registry.py).

Verifies that all file-type groups load correctly, return the expected
extractors, and that lookup/filtering logic works as intended.
"""
import pytest

from redb.extractor_registry import (
    get_filetype_modules,
    get_extractor_class,
    FILETYPE_TO_GROUP,
    _REGISTRY,
)

pytestmark = [pytest.mark.unit]


# ============================================================================
# get_filetype_modules — group loading
# ============================================================================

class TestGetFiletypeModules:

    @pytest.mark.parametrize("filetype,expected_names", [
        ("pebin", [
            "PEFeaturesExtractor", "PEImportExtractor", "PEResourceExtractor",
            "PEOverlayExtractor", "PESectionExtractor", "PESignatureExtractor",
            "PEExtraFindings", "PEInconstistencyTestsExtractor", "PEDotNetExtractor",
        ]),
        ("elf", [
            "ELFFeaturesExtractor", "ELFSegmentExtractor", "ELFSectionExtractor",
            "ELFDependencyExtractor", "ELFSymbolExtractor", "ELFImportExtractor",
            "ELFExportExtractor", "ELFRelocationExtractor", "ELFNotesExtractor",
        ]),
        ("macho", [
            "MachOFeaturesExtractor", "MachOSegmentExtractor",
            "MachOImportExtractor", "MachOExportExtractor",
            "MachODylibExtractor", "MachOSignatureExtractor",
        ]),
        ("apk", [
            "APKFeaturesExtractor", "APKManifestExtractor",
            "APKPermissionsExtractor", "APKSignatureExtractor",
            "APKDexExtractor", "APKResourceExtractor",
            "APKNativeLibExtractor", "APKInconsistencyTestsExtractor",
        ]),
    ])
    def test_loads_all_extractors_for_filetype(self, filetype, expected_names):
        """Each filetype group should return all its registered extractors."""
        modules = get_filetype_modules(filetype)
        names = [m.__name__ for m in modules]
        for expected in expected_names:
            assert expected in names, f"{expected} missing from {filetype} modules"

    def test_apk_excludes_decompilers(self):
        """get_filetype_modules should not include DecompileAPK."""
        modules = get_filetype_modules("apk")
        names = [m.__name__ for m in modules]
        assert "DecompileAPK" not in names

    def test_unknown_filetype_returns_empty(self):
        """An unrecognized filetype should return an empty list."""
        assert get_filetype_modules("unknown_format") == []

    def test_returned_classes_are_callable(self):
        """All returned extractor classes should be callable (i.e., actual classes)."""
        for filetype in FILETYPE_TO_GROUP:
            for cls in get_filetype_modules(filetype):
                assert callable(cls), f"{cls} is not callable"


# ============================================================================
# get_extractor_class — single lookup
# ============================================================================

class TestGetExtractorClass:

    def test_finds_pe_extractor(self):
        cls = get_extractor_class("PEFeaturesExtractor")
        assert cls is not None
        assert cls.__name__ == "PEFeaturesExtractor"

    def test_finds_elf_extractor(self):
        cls = get_extractor_class("ELFSectionExtractor")
        assert cls is not None
        assert cls.__name__ == "ELFSectionExtractor"

    def test_finds_macho_extractor(self):
        cls = get_extractor_class("MachOSignatureExtractor")
        assert cls is not None
        assert cls.__name__ == "MachOSignatureExtractor"

    def test_finds_apk_extractor(self):
        cls = get_extractor_class("APKDexExtractor")
        assert cls is not None
        assert cls.__name__ == "APKDexExtractor"

    def test_finds_decompile_apk(self):
        cls = get_extractor_class("DecompileAPK")
        assert cls is not None
        assert cls.__name__ == "DecompileAPK"

    def test_returns_none_for_unknown(self):
        assert get_extractor_class("NonExistentExtractor") is None


# ============================================================================
# Registry completeness
# ============================================================================

class TestRegistryCompleteness:

    def test_all_filetypes_have_registry_group(self):
        """Every filetype in FILETYPE_TO_GROUP should map to a valid registry group."""
        for filetype, group in FILETYPE_TO_GROUP.items():
            assert group in _REGISTRY, f"filetype {filetype} maps to unknown group {group}"

    def test_all_registry_groups_are_reachable(self):
        """Every registry group should be reachable via at least one filetype."""
        reachable = set(FILETYPE_TO_GROUP.values())
        for group in _REGISTRY:
            assert group in reachable, f"registry group {group} has no filetype mapping"


# ============================================================================
# Integration with workers.get_module_by_name
# ============================================================================

class TestWorkersGetModuleByName:

    def test_resolves_common_extractor(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("BasicPropertiesExtractor")
        assert cls is not None
        assert cls.__name__ == "BasicPropertiesExtractor"

    def test_resolves_type_specific_extractor(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("PEFeaturesExtractor")
        assert cls is not None
        assert cls.__name__ == "PEFeaturesExtractor"

    def test_resolves_decompile_apk(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("DecompileAPK")
        assert cls is not None

    def test_returns_none_for_unknown(self):
        from redb.workers import get_module_by_name
        assert get_module_by_name("BogusExtractor") is None