Kaiyu Qin

87 papers C 2Journal 75Unranked 10
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Veh. Technol.
Chenglin Han, Weihao Li, Mengji Shi, Meng Li, Boxian Lin, Kaiyu Qin
2026 J jnl
J. Frankl. Inst.
Chenglin Han, Weihao Li, Boxian Lin, Xian Qing, Mengji Shi, Kaiyu Qin
2026 J jnl
Commun. Nonlinear Sci. Numer. Simul.
Chenglin Han, Kaiyu Qin, Weihao Li, Boxian Lin, Mengji Shi
2026 J jnl
Commun. Nonlinear Sci. Numer. Simul.
Boxian Lin, Weihao Li, Long You, Jiangfeng Yue, Mengji Shi, Kaiyu Qin
2026 J jnl
Inf. Sci.
Chenglin Han, Mengji Shi, Weihao Li, Meng Li, Boxian Lin, Kaiyu Qin
2026 J jnl
IEEE Trans. Signal Inf. Process. over Networks
Weihao Li, Mengji Shi, Lei Shi, Boxian Lin, Kaiyu Qin
2025 J jnl
Appl. Intell.
Weihao Li, Shiyu Zhou, Mengji Shi, Jiangfeng Yue, Boxian Lin, Kaiyu Qin
2025 J jnl
IEEE Trans. Control. Netw. Syst.
Weihao Li, Lei Shi, Mengji Shi, Boxian Lin, Kaiyu Qin
2025 J jnl
CoRR
Deyu Song, Xiangyin Zhang, Zipei Yu, Kaiyu Qin
2025 J jnl
IEEE Access
Jiayi Zhou, Xiangyin Zhang, Kaiyu Qin, Feng Yang, Libo Wang
2025 J jnl
IEEE Trans. Cybern.
Weihao Li, Shuaiming Yan, Lei Shi, Jiangfeng Yue, Mengji Shi, Boxian Lin, Kaiyu Qin
2025 J jnl
Neurocomputing
Xian Qing, Weihao Li, Bowen Chen, Boxian Lin, Mengji Shi, Kaiyu Qin
2025 J jnl
Neural Networks
Weihao Li, Jiangfeng Yue, Mengji Shi, Boxian Lin, Kaiyu Qin
2025 J jnl
Neurocomputing
Long You, Kaiyu Qin, Jiangfeng Yue, Weihao Li, Boxian Lin, Mengji Shi
2025 J jnl
IEEE Trans. Consumer Electron.
Weihao Li, Mengji Shi, Chenglin Han, Boxian Lin, Kaiyu Qin
2025 J jnl
Appl. Intell.
Peiyu Zhai, Kaiyu Qin, Jiangfeng Yue, Boxian Lin, Weihao Li, Mengji Shi
2025 J jnl
IEEE Trans. Consumer Electron.
Weihao Li, Ruichi Ren, Mengji Shi, Boxian Lin, Kaiyu Qin
2025 J jnl
IEEE Trans. Artif. Intell.
Weihao Li, Lei Shi, Mengji Shi, Jiangfeng Yue, Boxian Lin, Kaiyu Qin
2025 J jnl
Appl. Intell.
Chenglin Han, Mengji Shi, Meng Li, Boxian Lin, Weihao Li, Kaiyu Qin
2025 J jnl
Symmetry
Bowen Chen, Kaiyu Qin, Zhiqiang Li, Mengji Shi
2024 J jnl
IEEE Trans. Netw. Sci. Eng.
Weihao Li, Lei Shi, Mengji Shi, Jiangfeng Yue, Boxian Lin, Kaiyu Qin
2024 J jnl
Remote. Sens.
Libo Wang, Xiangyin Zhang, Kaiyu Qin, Zhuwei Wang, Jiayi Zhou, Deyu Song
2024 conf
CDC
Jiangfeng Yue, Kaiyu Qin, Jinliang Shao, Mengji Shi, Weihao Li, Wei Xing Zheng
2024 conf
ASCC
Jiangfeng Yue, Boxian Lin, Mengji Shi, Shiji Tong, Weihao Li, Kaiyu Qin, Jingbo Wang
2024 J jnl
Neurocomputing
Chenglin Han, Kaiyu Qin, Boxian Lin, Mengji Shi, Zhiqiang Li, Qiang Liu
2024 J jnl
Appl. Math. Comput.
Chenglin Han, Kaiyu Qin, Mengji Shi, Yan Liu, Weihao Li, Boxian Lin
2023 conf
CDC
Weihao Li, Kaiyu Qin, Jinliang Shao, Lei Shi, Mengji Shi, Wei Xing Zheng
2023 J jnl
IEEE Trans. Netw. Sci. Eng.
Weihao Li, Mengji Shi, Lei Shi, Boxian Lin, Kaiyu Qin
2023 J jnl
Neurocomputing
Jun Liu, Nan Zhou, Kaiyu Qin, Badong Chen, Yonghong Wu, Kup-Sze Choi
2023 J jnl
IEEE CAA J. Autom. Sinica
Weihao Li, Kaiyu Qin, Mengji Shi, Jingliang Shao, Boxian Lin
2023 J jnl
Neurocomputing
Jun Liu, Guobin Yang, Nan Zhou, Kaiyu Qin, Badong Chen, Yonghong Wu, Kup-Sze Choi
2023 J jnl
IEEE Trans. Signal Inf. Process. over Networks
Weihao Li, Lei Shi, Mengji Shi, Jiangfeng Yue, Boxian Lin, Kaiyu Qin
2023 J jnl
IEEE Trans. Signal Inf. Process. over Networks
Weihao Li, Lei Shi, Mengji Shi, Boxian Lin, Kaiyu Qin
2022 C conf
IGARSS
Deyu Song, Lan Liu, Xiangyin Zhang, Kaiyu Qin, Libo Wang
2022 conf
CRC
Weihao Li, Mengji Shi, Jiangfeng Yue, Boxian Lin, Kaiyu Qin, Xinyu Zhang
2022 J jnl
Sensors
Zihao Wang, Sen Yang, Mengji Shi, Kaiyu Qin
2022 J jnl
IEEE Access
Xiaoxi Hu, Xuguang Wang, Kaiyu Qin, Mingyu Li
2022 conf
CRC
Shuguang Xin, Mengji Shi, Weihao Li, Jiangfeng Yue, Boxian Lin, Kaiyu Qin
2022 J jnl
Int. J. Model. Simul. Sci. Comput.
Rui Li, Kaiyu Qin
2021 conf
CAMAD
Kai Yang, Kaiyu Qin, Xiao Yan, Qain Wang
2021 J jnl
Unmanned Syst.
Zi-Hao Wang, Kaiyu Qin, Te Zhang, Bo Zhu
2021 J jnl
Mob. Networks Appl.
Kai Yang, Xiao Yan, Qian Wang, Dingde Jiang, Kaiyu Qin
2021 J jnl
IEEE Commun. Lett.
Kai Yang, Xiao Yan, Qian Wang, Hsiao-Chun Wu, Kaiyu Qin
2021 J jnl
Wirel. Networks
Kai Yang, Xiao Yan, Qian Wang, Kaiyu Qin
2021 J jnl
Neurocomputing
Weihao Li, Kaiyu Qin, Bowen Chen, Boxian Lin, Mengji Shi
2021 J jnl
IEEE Trans. Inf. Forensics Secur.
Jie Tang, Long Jiao, Kai Zeng, Hong Wen, Kaiyu Qin
2021 J jnl
IEEE Access
Xin Liu, Dagang Jiang, Zhimeng Hu, Qinyong Zeng, Kaiyu Qin
2021 J jnl
Wirel. Networks
Kai Yang, Xiao Yan, Qian Wang, Hsiao-Chun Wu, Kaiyu Qin
2020 J jnl
Sensors
Yufeng Ye, Xiangyin Zhang, Lanfeng Xie, Kaiyu Qin
2020 J jnl
IEEE Access
Tang Bo, Kaiyu Qin, Haibo Mei
2020 J jnl
IEEE Commun. Lett.
Changwei Chen, Kaiyu Qin, Tang Bo, Haibo Mei, Yong Cao
2020 J jnl
IEEE Trans. Instrum. Meas.
Yang Zhu, Bo Zhu, Hugh H. T. Liu, Kaiyu Qin
2020 J jnl
Inf.
Tang Bo, Kaiyu Qin, Changwei Chen, Yong Cao
2020 J jnl
Fuzzy Sets Syst.
Piotr Andrzej Felisiak, Kaiyu Qin, Gun Li
2020 J jnl
IEEE Access
Changwei Chen, Kaiyu Qin, Haibo Mei, Tang Bo, Yong Cao
2020 J jnl
IEEE Internet Things J.
Jie Tang, Hong Wen, Huanhuan Song, Tengyue Zhang, Kaiyu Qin
2020 J jnl
IEEE Trans. Veh. Technol.
Jie Tang, Hong Wen, Huanhuan Song, Kai Zeng, Kaiyu Qin
2019 J jnl
IEEE Commun. Lett.
Tang Bo, Kaiyu Qin, Xiangyin Zhang, Changwei Chen
2019 J jnl
Sensors
Tianhong Zhang, Sheng Liu, Weidong Xiang, Limei Xu, Kaiyu Qin, Xiao Yan
2019 conf
SimuTools
Kai Yang, Xiao Yan, Qian Wang, Kaiyu Qin, Dingde Jiang
2019 J jnl
J. Frankl. Inst.
Jun Liu, Ping Li, Lei Qi, Wei Chen, Kaiyu Qin
2019 J jnl
IEEE Access
Tang Bo, Kaiyu Qin, Haibo Mei, Changwei Chen
2019 J jnl
J. Comput. Networks Commun.
Tianhong Zhang, Limei Xu, Kaiyu Qin, Xiao Yan
2018 J jnl
Circuits Syst. Signal Process.
Tianhong Zhang, Limei Xu, Enpin Yang, Xiao Yan, Kaiyu Qin, Qian Wang, Amir Hussain
2018 conf
ICCA
Yang Zhu, Bo Zhu, Hugh Hong-Tao Liu, Kaiyu Qin
2018 J jnl
EURASIP J. Wirel. Commun. Netw.
Chenghai Wu, Kaiyu Qin, Penghui He, Houbiao Li
2018 J jnl
Trans. Inst. Meas. Control
Lei Chen, Kaiyu Qin, Jiangping Hu
2018 J jnl
Complex.
Jun Liu, Kaiyu Qin, Wei Chen, Ping Li
2018 J jnl
Complex.
Jun Liu, Wei Chen, Kaiyu Qin, Ping Li
2018 J jnl
Neurocomputing
Jun Liu, Kaiyu Qin, Ping Li, Wei Chen
2018 J jnl
IEICE Electron. Express
Changwei Chen, Kaiyu Qin, Tang Bo
2017 J jnl
Wirel. Pers. Commun.
Xiao Yan, Qian Wang, Xin Hao, Kaiyu Qin
2017 J jnl
IEICE Electron. Express
Enpin Yang, Xiao Yan, Kaiyu Qin
2017 J jnl
Circuits Syst. Signal Process.
Enpin Yang, Tianhong Zhang, Xiao Yan, Qian Wang, Kaiyu Qin
2017 J jnl
Cogn. Comput.
Zi-Yang Wang, Jian Luo, Kaiyu Qin, Hou-Biao Li, Gun Li
2016 C conf
ISCAS
Enpin Yang, Xiao Yan, Kaiyu Qin
2016 J jnl
Mob. Inf. Syst.
Mengji Shi, Kaiyu Qin
2016 J jnl
IEICE Electron. Express
Enpin Yang, Xiao Yan, Kaiyu Qin
2015 J jnl
Neurocomputing
Ping Li, Kaiyu Qin, Mengji Shi
2015 J jnl
IEEE Signal Process. Lett.
Qian Wang, Xiao Yan, Kaiyu Qin
2015 J jnl
计算机科学
Xianggang Zhang, Kaiyu Qin, Yuliang Shi
2014 J jnl
Signal Image Video Process.
Qiang Xiang, Kaiyu Qin
2013 J jnl
Circuits Syst. Signal Process.
Qiang Xiang, Kaiyu Qin, Qinzhen Huang
2012 J jnl
J. Frankl. Inst.
Peng Lin, Kaiyu Qin, Hongmei Zhao, Man Sun
2011 J jnl
Syst. Control. Lett.
Peng Lin, Kaiyu Qin, Zhongkui Li, Wei Ren
2006 conf
PARELEC
Qi Huang, Kaiyu Qin, Wenyong Wang
2006 conf
PARELEC
Qi Huang, Xiaoping Chen, Bingfeng Wang, Ronghai Cai, Kaiyu Qin
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