Maneesh Singh

59 papers A* 10A 3Misc 1Journal 31Unranked 14
YearRankTypeTitle / Venue / Authors
2022 A conf
INTERSPEECH
Debottam Dutta, Debarpan Bhattacharya, Sriram Ganapathy, Amir Hossein Poorjam, Deepak Mittal, Maneesh Singh
2022 A* conf
CVPR
Paritosh Mittal, Yen-Chi Cheng, Maneesh Singh, Shubham Tulsiani
2022 J jnl
CoRR
Paritosh Mittal, Yen-Chi Cheng, Maneesh Singh, Shubham Tulsiani
2022 A* conf
EMNLP
Puneet Mathur, Gautam Kunapuli, Riyaz A. Bhat, Manish Shrivastava, Dinesh Manocha, Maneesh Singh
2022 J jnl
CoRR
Tejan Karmali, Rishubh Parihar, Susmit Agrawal, Harsh Rangwani, Varun Jampani, Maneesh Singh, R. Venkatesh Babu
2022 J jnl
CoRR
Radu V. Balan, Naveed Haghani, Maneesh Singh
2022 conf
CVPR Workshops
Susmit Agrawal, Prabhat Kumar, Siddharth Seth, Toufiq Parag, Maneesh Singh, R. Venkatesh Babu
2022 A conf
INTERSPEECH
Arjit Jain, Pranay Reddy Samala, Deepak Mittal, Preethi Jyothi, Maneesh Singh
2021 J jnl
CoRR
Avideep Mukherjee, Badri Narayana Patro, Sahil Sidheekh, Maneesh Singh, Vinay P. Namboodiri
2021 J jnl
CoRR
Soumya Banerjee, Vinay Kumar Verma, Toufiq Parag, Maneesh Singh, Vinay P. Namboodiri
2021 A* conf
ICCV
Rahul Venkatesh, Tejan Karmali, Sarthak Sharma, Aurobrata Ghosh, R. Venkatesh Babu, László A. Jeni, Maneesh Singh
2021 J jnl
CoRR
Rahul Venkatesh, Tejan Karmali, Sarthak Sharma, Aurobrata Ghosh, R. Venkatesh Babu, László A. Jeni, Maneesh Singh
2021 A conf
Interspeech
Flávio Ávila, Amir H. Poorjam, Deepak Mittal, Charles Dognin, Ananya Muguli, Rohit Kumar, Srikanth Raj Chetupalli, Sriram Ganapathy, Maneesh Singh
2021 J jnl
CoRR
Vivek Gupta, Riyaz A. Bhat, Atreya Ghosal, Manish Shrivastava, Maneesh Singh, Vivek Srikumar
2021 A* conf
ICCV
Hsin-Ping Huang, Hung-Yu Tseng, Saurabh Saini, Maneesh Singh, Ming-Hsuan Yang
2021 J jnl
CoRR
Arjit Jain, Pranay Reddy Samala, Deepak Mittal, Preethi Jyothi, Maneesh Singh
2020 conf
MLHPC/AI4S@SC
Jovita Lukasik, Margret Keuper, Maneesh Singh, Julian Yarkony
2020 A* conf
AAAI
Vishnu Suresh Lokhande, Shaofei Wang, Maneesh Singh, Julian Yarkony
2020 J jnl
Int. J. Comput. Vis.
Hsin-Ying Lee, Hung-Yu Tseng, Qi Mao, Jia-Bin Huang, Yu-Ding Lu, Maneesh Singh, Ming-Hsuan Yang
2020 J jnl
CoRR
Rahul Venkatesh, Sarthak Sharma, Aurobrata Ghosh, László A. Jeni, Maneesh Singh
2020 J jnl
CoRR
Yichen Jiang, Shikha Bordia, Zheng Zhong, Charles Dognin, Maneesh Singh, Mohit Bansal
2020 J jnl
IEEE Trans. Inf. Theory
Dongmian Zou, Radu V. Balan, Maneesh Singh
2019 J jnl
CoRR
Vishnu Suresh Lokhande, Shaofei Wang, Maneesh Singh, Julian Yarkony
2019 A* conf
ICCV
Yufei Ye, Maneesh Singh, Abhinav Gupta, Shubham Tulsiani
2019 J jnl
CoRR
Yufei Ye, Maneesh Singh, Abhinav Gupta, Shubham Tulsiani
2019 J jnl
CoRR
Hsin-Ying Lee, Hung-Yu Tseng, Qi Mao, Jia-Bin Huang, Yu-Ding Lu, Maneesh Singh, Ming-Hsuan Yang
2019 J jnl
CoRR
Shaofei Wang, Vishnu Suresh Lokhande, Maneesh Singh, Konrad P. Körding, Julian Yarkony
2019 J jnl
CoRR
Margret Keuper, Maneesh Singh, Julian Yarkony
2019 conf
CVPR Workshops
Han-Kai Hsu, Wei-Chih Hung, Hung-Yu Tseng, Chun-Han Yao, Yi-Hsuan Tsai, Maneesh Singh, Ming-Hsuan Yang
2019 J jnl
CoRR
Han-Kai Hsu, Chun-Han Yao, Yi-Hsuan Tsai, Wei-Chih Hung, Hung-Yu Tseng, Maneesh Singh, Ming-Hsuan Yang
2019 conf
EMNLP/IJCNLP (1)
Ameya Prabhu, Charles Dognin, Maneesh Singh
2019 J jnl
CoRR
Ameya Prabhu, Charles Dognin, Maneesh Singh
2019 conf
CVPR Workshops
Aurobrata Ghosh, Zheng Zhong, Terrance E. Boult, Maneesh Singh
2019 J jnl
CoRR
Aurobrata Ghosh, Zheng Zhong, Terrance E. Boult, Maneesh Singh
2019 J jnl
CoRR
Aurobrata Ghosh, Zheng Zhong, Steve Cruz, Subbu Veeravasarapu, Terrance E. Boult, Maneesh Singh
2019 J jnl
CoRR
Prashnna K. Gyawali, Rudra Saha, Linwei Wang, V. S. R. Veeravasarapu, Maneesh Singh
2018 Misc conf
ICASSP
Aditay Tripathi, Aanchan Mohan, Saket Anand, Maneesh Singh
2018 J jnl
CoRR
Aditay Tripathi, Aanchan Mohan, Saket Anand, Maneesh Singh
2018 A* conf
NeurIPS
Mahyar Khayatkhoei, Maneesh Singh, Ahmed Elgammal
2018 J jnl
CoRR
Mahyar Khayatkhoei, Maneesh Singh, Ahmed Elgammal
2018 J jnl
CoRR
Ananya Harsh Jha, Saket Anand, Maneesh Singh, V. S. R. Veeravasarapu
2018 conf
ECCV (3)
Ananya Harsh Jha, Saket Anand, Maneesh Singh, V. S. R. Veeravasarapu
2018 conf
ECCV (1)
Hsin-Ying Lee, Hung-Yu Tseng, Jia-Bin Huang, Maneesh Singh, Ming-Hsuan Yang
2018 J jnl
CoRR
Dongmian Zou, Radu V. Balan, Maneesh Singh
2017 J jnl
CoRR
Radu V. Balan, Maneesh Singh, Dongmian Zou
2017 A* conf
ICCV
Hsin-Ying Lee, Jia-Bin Huang, Maneesh Singh, Ming-Hsuan Yang
2017 J jnl
CoRR
Hsin-Ying Lee, Jia-Bin Huang, Maneesh Singh, Ming-Hsuan Yang
2015 J jnl
BMC Medical Informatics Decis. Mak.
Sebastian Pölsterl, Maneesh Singh, Amin Katouzian, Nassir Navab, Adnan Kastrati, Lance Ladic, Ali Kamen
2012 conf
CVPR Workshops
Toufiq Parag, Claus Bahlmann, Vinay D. Shet, Maneesh Singh
2012 conf
Computer-Aided Diagnosis
Andrei Chekkoury, Parmeshwar Khurd, Jie Ni, Claus Bahlmann, Ali Kamen, Amar Patel, Leo J. Grady, Maneesh Singh, Martin Groher, Nassir Navab, Elizabeth A. Krupinski, Jeffrey Johnson, Anna R. Graham, Ronald S. Weinstein
2011 J jnl
Int. J. Comput. Vis.
Vinay D. Shet, Maneesh Singh, Claus Bahlmann, Visvanathan Ramesh, Jan Neumann, Larry S. Davis
2010 A* conf
CVPR
Vasu Parameswaran, Maneesh Singh, Visvanathan Ramesh
2009 conf
CVPR Workshops
Vinay D. Shet, Maneesh Singh, Claus Bahlmann, Visvanathan Ramesh
2009 J jnl
Pattern Recognit.
Wei Ren, Sameer Singh, Maneesh Singh, Y. S. Zhu
2008 A* conf
CVPR
Maneesh Singh, Vasu Parameswaran, Visvanathan Ramesh
2005 conf
MICCAI (2)
Kazunori Okada, Visvanathan Ramesh, Arun Krishnan, Maneesh Singh, Umut Akdemir
2004 conf
ICVGIP
Himanshu Arora, Maneesh Singh, Narendra Ahuja
2004 conf
CVPR Workshops
Maneesh Singh, Himanshu Arora, Narendra Ahuja
1999 conf
ICIP (1)
Maneesh Singh, Prakash Ishwar, Krishna Ratakonda, Narendra Ahuja
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