Xiaofeng Yang

194 papers A* 5B 32Journal 66Unranked 91
YearRankTypeTitle / Venue / Authors
2026 J jnl
Biomed. Signal Process. Control.
Mojtaba Safari, Zach Eidex, Chih-Wei Chang, Richard L. J. Qiu, Xiaofeng Yang
2026 J jnl
CoRR
Alexandru Florea, Shansong Wang, Mingzhe Hu, Qiang Li, Zach Eidex, Luke del Balzo, Mojtaba Safari, Xiaofeng Yang
2026 J jnl
Medical Image Anal.
Shansong Wang, Mojtaba Safari, Qiang Li, Chih-Wei Chang, Richard L. J. Qiu, Justin Roper, David S. Yu, Xiaofeng Yang
2025 J jnl
CoRR
Mingzhe Hu, Yuan Gao, Yuheng Li, Ricahrd LJ Qiu, Chih-Wei Chang, Keyur D. Shah, Priyanka Kapoor, Beth Bradshaw, Yuan Shao, Justin Roper, Jill Remick, Zhen Tian, Xiaofeng Yang
2025 J jnl
CoRR
Mojtaba Safari, Shansong Wang, Zach Eidex, Richard L. J. Qiu, Chih-Wei Chang, David S. Yu, Xiaofeng Yang
2025 J jnl
CoRR
Mojtaba Safari, Zach Eidex, Chih-Wei Chang, Richard L. J. Qiu, Xiaofeng Yang
2025 J jnl
CoRR
Zach Eidex, Mojtaba Safari, Jie Ding, Richard L. J. Qiu, Justin Roper, David S. Yu, Hui-Kuo Shu, Zhen Tian, Hui Mao, Xiaofeng Yang
2025 J jnl
CoRR
Yuxiang Lai, Jike Zhong, Ming Li, Yuheng Li, Xiaofeng Yang
2025 J jnl
Artif. Intell. Rev.
Yinghui Wang, Haonan Xiao, Jing Wang, Lu Wang, Wen Li, Zhuoran Jiang, Ge Ren, Shaohua Zhi, Josh Qian, Jianrong Dai, Kuo Men, Lei Ren, Xiaofeng Yang, Tian Li, Jing Cai
2025 J jnl
CoRR
Tonghe Wang, Yining Feng, Xiaofeng Yang
2025 J jnl
CoRR
Mingzhe Hu, Zach Eidex, Shansong Wang, Mojtaba Safari, Qiang Li, Xiaofeng Yang
2025 J jnl
IEEE Trans. Medical Imaging
Shaoyan Pan, Junbo Peng, Yuan Gao, Shao-Yuan Lo, Tianyu Luan, Junyuan Li, Tonghe Wang, Chih-Wei Chang, Zhen Tian, Xiaofeng Yang
2025 J jnl
CoRR
Jike Zhong, Yuxiang Lai, Xiaofeng Yang, Konstantinos Psounis
2025 J jnl
CoRR
Shansong Wang, Mojtaba Safari, Mingzhe Hu, Qiang Li, Chih-Wei Chang, Richard L. J. Qiu, Xiaofeng Yang
2025 J jnl
CoRR
Mojtaba Safari, Shansong Wang, Vanessa Wildman, Mingzhe Hu, Zach Eidex, Chih-Wei Chang, Erik H. Middlebrooks, Richard L. J. Qiu, Pretesh Patel, Ashesh B. Jani, Hui Mao, Zhen Tian, Xiaofeng Yang
2025 J jnl
CoRR
Yifei Zhang, Jiashuo Zhang, Xiaofeng Yang, Liang Zhao
2025 J jnl
CoRR
Praveenbalaji Rajendran, Mojtaba Safari, Wenfeng He, Mingzhe Hu, Shansong Wang, Jun Zhou, Xiaofeng Yang
2025 J jnl
CoRR
Zach Eidex, Mojtaba Safari, Tonghe Wang, Vanessa Wildman, David S. Yu, Hui Mao, Erik H. Middlebrooks, Aparna Kesewala, Xiaofeng Yang
2025 A* conf
EMNLP
Huaqin Zhao, Jiaxi Li, Yi Pan, Shizhe Liang, Xiaofeng Yang, Fei Dou, Tianming Liu, Jin Lu
2025 J jnl
CoRR
Qiang Li, Shansong Wang, Mingzhe Hu, Mojtaba Safari, Zach Eidex, Xiaofeng Yang
2025 J jnl
CoRR
Yuan Gao, Shaoyan Pan, Mingzhe Hu, Huiqiao Xie, Jill Remick, Chih-Wei Chang, Justin Roper, Zhen Tian, Xiaofeng Yang
2025 J jnl
CoRR
Mojtaba Safari, Shansong Wang, Qiang Li, Zach Eidex, Richard L. J. Qiu, Chih-Wei Chang, Hui Mao, Xiaofeng Yang
2025 J jnl
CoRR
Yiran Song, Yikai Zhang, Shuang Zhou, Guojun Xiong, Xiaofeng Yang, Nian Wang, Fenglong Ma, Rui Zhang, Mingquan Lin
2025 J jnl
CoRR
Yuheng Li, Yizhou Wu, Yuxiang Lai, Mingzhe Hu, Xiaofeng Yang
2025 J jnl
CoRR
Yuheng Li, Yenho Chen, Yuxiang Lai, Jike Zhong, Vanessa Wildman, Xiaofeng Yang
2025 J jnl
CoRR
Yuxiang Lai, Jike Zhong, Vanessa Su, Xiaofeng Yang
2025 conf
MLHC
Malvern Madondo, Yuan Shao, Yingzi Liu, Jun Zhou, Xiaofeng Yang, Zhen Tian
2025 J jnl
CoRR
Malvern Madondo, Yuan Shao, Yingzi Liu, Jun Zhou, Xiaofeng Yang, Zhen Tian
2025 J jnl
Medical Image Anal.
Shaoyan Pan, Vanessa Su, Junbo Peng, Junyuan Li, Yuan Gao, Chih-Wei Chang, Tonghe Wang, Zhen Tian, Xiaofeng Yang
2025 J jnl
CoRR
Yuheng Li, Mingzhe Hu, Richard L. J. Qiu, Maria Thor, Andre Williams, Deborah Marshall, Xiaofeng Yang
2025 J jnl
CoRR
Mojtaba Safari, Zach Eidex, Richard L. J. Qiu, Matthew Goette, Tonghe Wang, Xiaofeng Yang
2025 J jnl
CoRR
Shansong Wang, Mojtaba Safari, Qiang Li, Chih-Wei Chang, Richard L. J. Qiu, Justin Roper, David S. Yu, Xiaofeng Yang
2025 J jnl
CoRR
Shansong Wang, Zhecheng Jin, Mingzhe Hu, Mojtaba Safari, Feng Zhao, Chih-Wei Chang, Richard L. J. Qiu, Justin Roper, David S. Yu, Xiaofeng Yang
2024 J jnl
CoRR
Mojtaba Safari, Zach Eidex, Shaoyan Pan, Richard L. J. Qiu, Xiaofeng Yang
2024 conf
ECCV (60)
Yuheng Li, Tianyu Luan, Yizhou Wu, Shaoyan Pan, Yenho Chen, Xiaofeng Yang
2024 A* conf
KDD
Qilong Zhao, Yifei Zhang, Mengdan Zhu, Siyi Gu, Yuyang Gao, Xiaofeng Yang, Liang Zhao
2024 J jnl
CoRR
Qilong Zhao, Yifei Zhang, Mengdan Zhu, Siyi Gu, Yuyang Gao, Xiaofeng Yang, Liang Zhao
2024 J jnl
CoRR
Zach Eidex, Mojtaba Safari, Jacob F. Wynne, Richard L. J. Qiu, Tonghe Wang, David Viar Hernandez, Hui-Kuo Shu, Hui Mao, Xiaofeng Yang
2024 J jnl
CoRR
Yang Lei, Luke A. Matkovic, Justin Roper, Tonghe Wang, Jun Zhou, Beth B. Ghavidel, Mark McDonald, Pretesh Patel, Xiaofeng Yang
2024 J jnl
CoRR
Huaqin Zhao, Jiaxi Li, Yi Pan, Shizhe Liang, Xiaofeng Yang, Wei Liu, Xiang Li, Fei Dou, Tianming Liu, Jin Lu
2024 J jnl
CoRR
Zach Eidex, Mojtaba Safari, Richard L. J. Qiu, David S. Yu, Hui-Kuo Shu, Hui Mao, Xiaofeng Yang
2024 A* conf
IJCAI
Yifei Zhang, Bo Pan, Siyi Gu, Guangji Bai, Meikang Qiu, Xiaofeng Yang, Liang Zhao
2023 conf
Computer-Aided Diagnosis
Mingzhe Hu, Jing Wang, Jacob F. Wynne, Tian Liu, Xiaofeng Yang
2023 J jnl
CoRR
Mingzhe Hu, Shaoyan Pan, Yuheng Li, Xiaofeng Yang
2023 J jnl
CoRR
Mingzhe Hu, Xiaofeng Yang
2023 J jnl
CoRR
Yuheng Li, Jacob F. Wynne, Jing Wang, Richard L. J. Qiu, Justin Roper, Shaoyan Pan, Ashesh B. Jani, Tian Liu, Pretesh R. Patel, Hui Mao, Xiaofeng Yang
2023 J jnl
Robotica
Qingyu Xiao, Xiaofeng Yang, Yue Chen
2023 J jnl
CoRR
Shaoyan Pan, Chih-Wei Chang, Junbo Peng, Jiahan Zhang, Richard L. J. Qiu, Tonghe Wang, Justin Roper, Tian Liu, Hui Mao, Xiaofeng Yang
2023 J jnl
CoRR
Shaoyan Pan, Shao-Yuan Lo, Min Huang, Chaoqiong Ma, Jacob F. Wynne, Tonghe Wang, Tian Liu, Xiaofeng Yang
2023 B conf
Image Processing
Shaoyan Pan, Shao-Yuan Lo, Min Huang, Chaoqiong Ma, Jacob F. Wynne, Tonghe Wang, Tian Liu, Xiaofeng Yang
2023 conf
Image-Guided Procedures
Luke Matkovic, Yang Lei, Yabo Fu, Tonghe Wang, Aparna H. Kesarwala, Marian Axente, Justin Roper, Kristin Higgins, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2023 A* conf
KDD
Siyi Gu, Yifei Zhang, Yuyang Gao, Xiaofeng Yang, Liang Zhao
2023 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Mingzhe Hu, Jing Wang, Chih-Wei Chang, Tian Liu, Xiaofeng Yang
2023 J jnl
CoRR
Shaoyan Pan, Elham Abouei, Junbo Peng, Joshua Qian, Jacob F. Wynne, Tonghe Wang, Chih-Wei Chang, Justin Roper, Jonathon A. Nye, Hui Mao, Xiaofeng Yang
2023 A* conf
ICCV
Yifei Zhang, Siyi Gu, Yuyang Gao, Bo Pan, Xiaofeng Yang, Liang Zhao
2023 conf
Image-Guided Procedures
Shaoyan Pan, Jacob F. Wynne, Mingzhe Hu, Tonghe Wang, Justin Roper, Pretesh Patel, Tian Liu, Xiaofeng Yang
2023 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yuheng Li, Jing Wang, Chih-Wei Chang, Pretsh Patel, Ashesh B. Jani, Hui Mao, Tian Liu, Xiaofeng Yang
2023 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Shaoyan Pan, Chaoqiong Ma, Chih-Wei Chang, Jacob F. Wynne, Justin Roper, Tian Liu, Xiaofeng Yang
2023 conf
Computer-Aided Diagnosis
Yuheng Li, Jing Wang, Mingzhe Hu, Pretesh Patel, Hui Mao, Tian Liu, Xiaofeng Yang
2023 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Chih-Wei Chang, Matthew Goette, Nadja Kadom, Yinan Wang, Jacob F. Wynne, Tonghe Wang, Tian Liu, Natia Esiashvili, Jun Zhou, Bree R. Eaton, Xiaofeng Yang
2023 conf
Computer-Aided Diagnosis
Jing Wang, Boran Zhou, Mylin A. Torres, Xiaofeng Yang, Tian Liu
2023 J jnl
CoRR
Mingzhe Hu, Yuheng Li, Xiaofeng Yang
2023 J jnl
CoRR
Shaoyan Pan, Elham Abouei, Jacob F. Wynne, Tonghe Wang, Richard L. J. Qiu, Yuheng Li, Chih-Wei Chang, Junbo Peng, Justin Roper, Pretesh Patel, David S. Yu, Hui Mao, Xiaofeng Yang
2023 J jnl
CoRR
Yifei Zhang, Siyi Gu, Bo Pan, Guangji Bai, Xiaofeng Yang, Liang Zhao
2022 B conf
Image Processing
Chih-Wei Chang, Yang Lei, Tonghe Wang, Jun Zhou, Liyong Lin, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Image-Guided Procedures
Chih-Wei Chang, Yang Lei, Serdar Charyyev, Shuai Leng, Tim Yoon, Jun Zhou, Xiaofeng Yang, Liyong Lin
2022 conf
Image-Guided Procedures
Xianjin Dai, Yang Lei, Tonghe Wang, Zhen Tian, Jun Zhou, Mark McDonald, David S. Yu, Beth B. Ghavidel, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Shadab Momin, Zhen Tian, Justin Roper, Jolinta Lin, Shannon Kahn, Hui-Kuo Shu, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Richard L. J. Qiu, Yang Lei, Joseph Shelton, Kristin Higgins, Jeffrey D. Bradley, Tian Liu, Aparna H. Kesarwala, Xiaofeng Yang
2022 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yabo Fu, Yang Lei, Tonghe Wang, Justin Roper, Marian Axente, Jeffrey D. Bradley, Tian Liu, Kristin Higgins, Xiaofeng Yang
2022 conf
Computer-Aided Diagnosis
Shaoyan Pan, Zhen Tian, Yang Lei, Tonghe Wang, Jun Zhou, Mark McDonald, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 J jnl
CoRR
Hongmei Zhang, Kai Wang, Yan Zhou, Shadab Momin, Xiaofeng Yang, Mostafa Fatemi, Michael F. Insana
2022 conf
Image-Guided Procedures
Yabo Fu, Yang Lei, Tonghe Wang, Marian Axente, Justin Roper, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Huiqiao Xie, Yang Lei, Tonghe Wang, Marian Axente, Justin Roper, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Computer-Aided Diagnosis
Yabo Fu, Yang Lei, Zhen Tian, Tonghe Wang, Xianjin Dai, Jun Zhou, Mark McDonald, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Tonghe Wang, Yang Lei, Eduard Schreibmann, Justin Roper, David M. Schuster, Jeffrey D. Bradley, Tian Liu, Ashesh B. Jani, Xiaofeng Yang
2022 B conf
Image Processing
Yang Lei, Zhen Tian, Richard L. J. Qiu, Tonghe Wang, Justin Roper, Kristin Higgins, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Image-Guided Procedures
Shadab Momin, Yang Lei, Jiahan Zhang, Tonghe Wang, Justin Roper, Jeffrey D. Bradley, Pretesh Patel, Tian Liu, Xiaofeng Yang
2022 J jnl
CoRR
Huiqiao Xie, Yang Lei, Yabo Fu, Tonghe Wang, Justin Roper, Jeffrey D. Bradley, Pretesh Patel, Tian Liu, Xiaofeng Yang
2022 conf
Digital and Computational Pathology
Yabo Fu, Yang Lei, David M. Schuster, Sagar A. Patel, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Image-Guided Procedures
Yang Lei, Zhen Tian, Tonghe Wang, Marian Axente, Justin Roper, Kristin Higgins, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Computer-Aided Diagnosis
Huiqiao Xie, Yang Lei, Tonghe Wang, Justin Roper, Jeffrey D. Bradley, Tian Liu, Hui Mao, Xiaofeng Yang
2022 B conf
Image Processing
Qian Wang, Huiqiao Xie, Tonghe Wang, Justin Roper, Xiangyang Tang, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 J jnl
CoRR
Yupei Zhang, Xianjin Dai, Zhen Tian, Yang Lei, Jacob F. Wynne, Pretesh Patel, Yue Chen, Tian Liu, Xiaofeng Yang
2022 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Yabo Fu, Justin Roper, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Shaoyan Pan, Yang Lei, Tonghe Wang, Jacob F. Wynne, Justin Roper, Ashesh B. Jani, Pretesh Patel, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2022 J jnl
CoRR
Haoyu Fang, Yi Fang, Xiaofeng Yang
2022 conf
Computer-Aided Diagnosis
Yang Lei, Tonghe Wang, Justin Roper, Sibo Tian, Pretesh Patel, Jeffrey D. Bradley, Ashesh B. Jani, Tian Liu, Xiaofeng Yang
2022 J jnl
CoRR
Mingzhe Hu, Jiahan Zhang, Luke Matkovic, Tian Liu, Xiaofeng Yang
2022 J jnl
J. Imaging
Jing Wang, Xiaofeng Yang, Boran Zhou, James J. Sohn, Jun Zhou, Jesse T. Jacob, Kristin Higgins, Jeffrey D. Bradley, Tian Liu
2022 conf
Image-Guided Procedures
Chih-Wei Chang, Yang Lei, Tonghe Wang, Liyong Lin, Jun Zhou, Jeffrey D. Bradley, Tian Liu, Xiaofeng Yang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Tonghe Wang, Yang Lei, Zhen Tian, Matt Giles, Jeffrey D. Bradley, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yabo Fu, Yang Lei, Tonghe Wang, Pretesh Patel, Ashesh B. Jani, Hui Mao, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Yabo Fu, Yang Lei, Tonghe Wang, Jun Zhou, Pretesh Patel, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 J jnl
CoRR
Mingquan Lin, Jacob F. Wynne, Yang Lei, Tonghe Wang, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 J jnl
Medical Image Anal.
Yabo Fu, Yang Lei, Tonghe Wang, Pretesh Patel, Ashesh B. Jani, Hui Mao, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Shadab Momin, Yang Lei, Tonghe Wang, Yabo Fu, Pretesh Patel, Ashesh B. Jani, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 B conf
Image Processing
Richard L. J. Qiu, Yang Lei, Aparna H. Kesarwala, Kristin Higgins, Jeffrey D. Bradley, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Tonghe Wang, Yang Lei, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 B conf
Image Processing
Yabo Fu, Yang Lei, Tonghe Wang, Sibo Tian, Pretesh Patel, Ashesh B. Jani, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Computer-Aided Diagnosis
Xianjin Dai, Yang Lei, Tonghe Wang, Jun Zhou, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 B conf
Image Processing
Yang Lei, Zhen Tian, Tonghe Wang, Justin Roper, Kristin Higgins, Jeffrey D. Bradley, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Computer-Aided Diagnosis
Shadab Momin, Yang Lei, Tonghe Wang, Yabo Fu, Pretesh Patel, Ashesh B. Jani, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 B conf
Image Processing
Huiqiao Xie, Yang Lei, Tonghe Wang, Yabo Fu, Xiangyang Tang, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Bing Ji, Tian Liu, Walter J. Curran, Hui Mao, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Xianjin Dai, Yang Lei, Yupei Zhang, Tonghe Wang, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Xianjin Dai, Yang Lei, Zhen Tian, Tonghe Wang, Tian Liu, Walter J. Curran, Xiaofeng Yang
2021 conf
Computer-Aided Diagnosis
Yabo Fu, Yang Lei, Tonghe Wang, Jun Zhou, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2021 conf
Computer-Aided Diagnosis
Mingquan Lin, Shadab Momin, Boran Zhou, Katherine Tang, Yang Lei, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 B conf
Image Processing
Tonghe Wang, Yang Lei, Sibo Tian, Tian Liu, Walter J. Curran, Kristin Higgins, Xiaofeng Yang
2021 conf
Computer-Aided Diagnosis
Tonghe Wang, Yang Lei, Olayinka A. Abiodun Ojo, Oladunni A. Akin-Akintayo, Akinyemi A. Akintayo, Walter J. Curran, Tian Liu, David M. Schuster, Xiaofeng Yang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Zhen Tian, Tonghe Wang, Justin Roper, Kristin Higgins, Jeffrey D. Bradley, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Yang Lei, Tonghe Wang, Sibo Tian, Yabo Fu, Pretesh Patel, Ashesh B. Jani, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 B conf
Image Processing
Tonghe Wang, Yang Lei, Mark McDonald, Jonathan J. Beitler, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 J jnl
IEEE Trans. Biomed. Eng.
Yan Ren, Huiqiao Xie, Wenting Long, Xiaofeng Yang, Xiangyang Tang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Jiwoong Jason Jeong, Yang Lei, Karen Xu, Tian Liu, Hyunsuk Shim, Walter J. Curran, Hui-Kuo Shu, Xiaofeng Yang
2021 J jnl
IEEE Trans. Biomed. Eng.
Huiqiao Xie, Yan Ren, Wenting Long, Xiaofeng Yang, Xiangyang Tang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Tonghe Wang, Yang Lei, Oladunni O. Akin-Akintayo, Olayinka A. Abiodun Ojo, Akinyemi A. Akintayo, Walter J. Curran, Tian Liu, David M. Schuster, Xiaofeng Yang
2021 B conf
Image Processing
Yang Lei, Yabo Fu, Tonghe Wang, Walter J. Curran, Tian Liu, Pretesh Patel, Xiaofeng Yang
2021 J jnl
Symmetry
Hongxia Deng, Dongsheng Luo, Zhangwei Chang, Haifang Li, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Shadab Momin, Yang Lei, Tonghe Wang, Yabo Fu, Pretesh Patel, Ashesh B. Jani, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Computer-Aided Diagnosis
Yupei Zhang, Yang Lei, Mingquan Lin, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Xianjin Dai, Yang Lei, James Janopaul-Naylor, Tonghe Wang, Justin Roper, Tian Liu, Walter J. Curran, Pretesh Patel, Xiaofeng Yang
2021 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Xianjin Dai, Yang Lei, Tonghe Wang, Jun Zhou, Justin Roper, Mark McDonald, Jonathan J. Beitler, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 B conf
Image Processing
Xianjin Dai, Yang Lei, James Janopaul-Naylor, Tonghe Wang, Justin Roper, Jun Zhou, Walter J. Curran, Tian Liu, Pretesh Patel, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Xianjin Dai, Yang Lei, Tonghe Wang, Jun Zhou, Walter J. Curran, Tian Liu, Xiaofeng Yang
2021 conf
Image-Guided Procedures
Yupei Zhang, Yang Lei, Xiuxiu He, Zhen Tian, Jiwoong Jason Jeong, Tonghe Wang, Qiulan Zeng, Ashesh B. Jani, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2020 conf
Computer-Aided Diagnosis
Xiuxiu He, Bangjun Guo, Yang Lei, Yingzi Liu, Tonghe Wang, Walter J. Curran, Longjiang Zhang, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Yabo Fu, Yang Lei, Tonghe Wang, Kristin Higgins, Jeffrey D. Bradley, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Tonghe Wang, Xue Dong, Kristin Higgins, Tian Liu, Walter J. Curran, Hui Mao, Jonathon A. Nye, Xiaofeng Yang
2020 conf
Computer-Aided Diagnosis
Yabo Fu, Yang Lei, Tonghe Wang, XiaoJun Jiang, Walter J. Curran, Tian Liu, Hui-Kuo Shu, Xiaofeng Yang
2020 conf
Computer-Aided Diagnosis
Yang Lei, Zhen Tian, Shannon Kahn, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Xiuxiu He, Bangjun Guo, Yang Lei, Tonghe Wang, Tian Liu, Walter J. Curran, Longjiang Zhang, Xiaofeng Yang
2020 conf
Computer-Aided Diagnosis
Bangjun Guo, Xiuxiu He, Tonghe Wang, Yang Lei, Walter J. Curran, Tian Liu, Longjiang Zhang, Xiaofeng Yang
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Jiwoong Jason Jeong, Yang Lei, Hui-Kuo Shu, Tian Liu, Liya Wang, Walter J. Curran, Hui Mao, Xiaofeng Yang
2020 conf
Computer-Aided Diagnosis
Xiuxiu He, Bangjun Guo, Tonghe Wang, Yang Lei, Tian Liu, Longjiang Zhang, Xiaofeng Yang
2020 B conf
Image Processing
Yabo Fu, Yang Lei, Yingzi Liu, Tonghe Wang, Walter J. Curran, Tian Liu, Pretesh Patel, Xiaofeng Yang
2020 J jnl
CoRR
Yang Lei, Yabo Fu, Tonghe Wang, Richard L. J. Qiu, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Yang Lei, Xue Dong, Tonghe Wang, Kristin Higgins, Tian Liu, Walter J. Curran, Hui Mao, Jonathan A. Nye, Xiaofeng Yang
2020 conf
CBD
Hongxia Deng, Zijian Feng, Ying Liu, Dongsheng Luo, Xiaofeng Yang, Haifang Li
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Xianjin Dai, Yang Lei, Yingzi Liu, Tonghe Wang, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Xiuxiu He, Bangjun Guo, Yang Lei, Joseph Harms, Tonghe Wang, Tian Liu, Longjiang Zhang, Xiaofeng Yang
2020 B conf
Image Processing
Yingzi Liu, Yang Lei, Tonghe Wang, Jun Zhou, Liyong Lin, Tian Liu, Pretesh Patel, Walter J. Curran, Lei Ren, Xiaofeng Yang
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Xue Dong, Tonghe Wang, Kristin Higgins, Tian Liu, Walter J. Curran, Jonathan A. Nye, Hui Mao, Xiaofeng Yang
2020 J jnl
CoRR
Tonghe Wang, Yang Lei, Yabo Fu, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 conf
Computer-Aided Diagnosis
Yabo Fu, Bangjun Guo, Yang Lei, Tonghe Wang, Tian Liu, Walter J. Curran, Longjiang Zhang, Xiaofeng Yang
2020 J jnl
IEEE Trans. Medical Imaging
Yupei Zhang, Xiuxiu He, Zhen Tian, Jiwoong Jason Jeong, Yang Lei, Tonghe Wang, Qiulan Zeng, Ashesh B. Jani, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Yang Lei, Yabo Fu, Hui Mao, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Yang Lei, Jun Zhou, Xue Dong, Tonghe Wang, Hui Mao, Mark McDonald, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Xue Dong, Sibo Tian, Tonghe Wang, Pretesh Patel, Walter J. Curran, Ashesh B. Jani, Tian Liu, Xiaofeng Yang
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Tonghe Wang, Matt Giles, Robert H. Press, Xianjin Dai, Ashesh B. Jani, Peter Rossi, Yang Lei, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Yabo Fu, Yang Lei, Jun Zhou, Tonghe Wang, Ashesh B. Jani, Pretesh Patel, Hui Mao, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 conf
Computer-Aided Diagnosis
Yang Lei, Joseph Harms, Xue Dong, Tonghe Wang, Xiangyang Tang, David S. Yu, Jonathan J. Beitler, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 J jnl
J. Medical Syst.
Xiaofeng Yang, Zhe Wang, Hongxia Deng, Haifang Li, Rong Yao, Peng Gao, Saddam naji abdu Nasher
2020 J jnl
IEEE Access
Hongmei Zhang, Lei Xu, Zhihui Liu, Shukuan Lu, Jichao Yin, Sibo Tian, Xiaofeng Yang, Mingxi Wan
2020 B conf
Image Processing
Xiuxiu He, Yang Lei, Yabo Fu, Hui Mao, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yabo Fu, Yang Lei, Jun Zhou, Tonghe Wang, David S. Yu, Jonathan J. Beitler, Walter J. Curran, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Yang Lei, Sibo Tian, Yabo Fu, Xue Dong, Tonghe Wang, Ashesh B. Jani, David M. Schuster, Walter J. Curran, Pretesh Patel, Tian Liu, Xiaofeng Yang
2020 B conf
Image Processing
Qiulan Zeng, Yabo Fu, Jiwoong Jason Jeong, Yang Lei, Tonghe Wang, Hui Mao, Ashesh B. Jani, Pretesh Patel, Walter J. Curran, Tian Liu, Xiaofeng Yang
2019 conf
AIRT@MICCAI
Yang Lei, Yabo Fu, Joseph Harms, Tonghe Wang, Walter J. Curran, Tian Liu, Kristin Higgins, Xiaofeng Yang
2019 conf
BigDataService
Haifang Li, Zhe Wang, Guimei Yin, Hongxia Deng, Xiaofeng Yang, Rong Yao, Peng Gao, Rui Cao
2019 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Tonghe Wang, Yang Lei, Haipeng Tang, Joseph Harms, Cheng Wang, Tian Liu, Walter J. Curran, Weihua Zhou, Dianfu Li, Xiaofeng Yang
2019 B conf
Image Processing
Bo Wang, Yang Lei, Tonghe Wang, Xue Dong, Sibo Tian, XiaoJun Jiang, Ashesh B. Jani, Tian Liu, Walter J. Curran, Pretesh Patel, Xiaofeng Yang
2019 conf
Computer-Aided Diagnosis
Bo Wang, Yang Lei, Jiwoong Jason Jeong, Tonghe Wang, Yingzi Liu, Sibo Tian, Pretesh Patel, XiaoJun Jiang, Ashesh B. Jani, Hui Mao, Walter J. Curran, Tian Liu, Xiaofeng Yang
2019 conf
Computer-Aided Diagnosis
Yang Lei, Yingzi Liu, Xue Dong, Sibo Tian, Tonghe Wang, XiaoJun Jiang, Kristin Higgins, Jonathan J. Beitler, David S. Yu, Tian Liu, Walter J. Curran, Yi Fang, Xiaofeng Yang
2019 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Yang Lei, Yingzi Liu, Tonghe Wang, Sibo Tian, Xue Dong, XiaoJun Jiang, Tian Liu, Hui Mao, Walter J. Curran, Hui-Kuo Shu, Xiaofeng Yang
2019 conf
AIRT@MICCAI
Yang Lei, Tonghe Wang, Joseph Harms, Yabo Fu, Xue Dong, Walter J. Curran, Tian Liu, Xiaofeng Yang
2019 J jnl
CoRR
Yabo Fu, Yang Lei, Tonghe Wang, Walter J. Curran, Tian Liu, Xiaofeng Yang
2019 conf
Computer-Aided Diagnosis
Tonghe Wang, Yang Lei, Ghazal Shafai-Erfani, XiaoJun Jiang, Xue Dong, Jun Zhou, Tian Liu, Walter J. Curran, Xiaofeng Yang, Hui-Kuo Shu
2019 B conf
Image Processing
Yang Lei, Tonghe Wang, Yingzi Liu, Kristin Higgins, Sibo Tian, Tian Liu, Hui Mao, Hyunsuk Shim, Walter J. Curran, Hui-Kuo Shu, Xiaofeng Yang
2019 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Jiwoong Jason Jeong, Bing Ji, Yang Lei, Liya Wang, Tian Liu, Arif Ali, Walter J. Curran, Hui Mao, Xiaofeng Yang
2019 conf
Computer-Aided Diagnosis
Ge Cui, Jiwoong Jason Jeong, Yang Lei, Tonghe Wang, Tian Liu, Walter J. Curran, Hui Mao, Xiaofeng Yang
2019 conf
PRCV (2)
Hongxia Deng, Jinxiu Guo, Xiaofeng Yang, Jinxiu Hou, Haoqi Liu, Haifang Li
2018 conf
Biomedical Applications in Molecular, Structural, and Functional Imaging
Clara M. Tam, Xiaofeng Yang, Sibo Tian, Xi Jiang, Jonathan J. Beitler, Shuo Li
2018 conf
EMBC
Yang Lei, Hui-Kuo Shu, Sibo Tian, Tonghe Wang, Tian Liu, Hui Mao, Hyunsuk Shim, Walter J. Curran, Xiaofeng Yang
2017 B conf
Image Processing
Xiaofeng Yang, Yang Lei, Hui-Kuo Shu, Peter Rossi, Hui Mao, Hyunsuk Shim, Walter J. Curran, Tian Liu
2016 B conf
Image Processing
Xiaofeng Yang, Peter Rossi, Ashesh B. Jani, Hui Mao, Walter J. Curran, Tian Liu
2016 conf
Image-Guided Procedures
Xiaofeng Yang, Ashesh B. Jani, Peter J. Rossi, Hui Mao, Walter J. Curran, Tian Liu
2016 conf
Image-Guided Procedures
Xiaofeng Yang, Ashesh B. Jani, Peter J. Rossi, Hui Mao, Walter J. Curran, Tian Liu
2016 J jnl
计算机科学
Xiaofeng Yang, Hongxia Deng, Haifang Li
2015 B conf
Image Processing
Xiaofeng Yang, Peter Rossi, Ashesh B. Jani, Hui Mao, Tomi Ogunleye, Walter J. Curran, Tian Liu
2015 conf
Image-Guided Procedures
Xiaofeng Yang, Peter Rossi, Hui Mao, Ashesh B. Jani, Tomi Ogunleye, Walter J. Curran, Tian Liu
2015 conf
Computer-Aided Diagnosis
Fang Xu, Qin-Wu Zhou, Peng Wu, Xing Chen, Xiaofeng Yang, Hong-jian Yan
2014 conf
Image-Guided Procedures
Xiaofeng Yang, Peter Rossi, Tomi Ogunleye, Ashesh B. Jani, Walter J. Curran, Tian Liu
2013 conf
Computer-Aided Diagnosis
Guanghui Cheng, Xiaofeng Yang, Ning Wu, Zhijian Xu, Hongfu Zhao, Yuefeng Wang, Tian Liu
2013 J jnl
J. Am. Medical Informatics Assoc.
Xiaofeng Yang, Baowei Fei
2012 conf
Image-Guided Procedures
Xiaofeng Yang, Baowei Fei
2012 B conf
Image Processing
Xiaofeng Yang, Pegah Ghafourian, Puneet Sharma, Khalil Salman, Diego R. Martín, Baowei Fei
2011 conf
Image-Guided Procedures
Xiaofeng Yang, Hamed Akbari, Luma V. Halig, Baowei Fei
2011 B conf
Image Processing
Hamed Akbari, Xiaofeng Yang, Luma V. Halig, Baowei Fei
2011 conf
Prostate Cancer Imaging
Baowei Fei, Viraj Master, Peter Nieh, Hamed Akbari, Xiaofeng Yang, Aaron Fenster, David M. Schuster
2011 conf
Image-Guided Procedures
Xiaofeng Yang, David M. Schuster, Viraj Master, Peter Nieh, Aaron Fenster, Baowei Fei
2011 B conf
Image Processing
Xiaofeng Yang, Ioannis Sechopoulos, Baowei Fei
2010 B conf
Image Processing
Xiaofeng Yang, Baowei Fei
tests/integration/test_elf_extractors.py
← Index tests/integration/test_elf_extractors.py python
"""
Integration tests for ELF-specific extractors.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock

pytestmark = [pytest.mark.integration, pytest.mark.elf]


# ============================================================================
# ELFFeaturesExtractor Tests
# ============================================================================

class TestELFFeaturesExtractor:
    """Tests for ELFFeaturesExtractor class."""

    def test_extract_valid_elf(self, elf_binary_path, mock_logger):
        """Test extracting features from valid ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.models.dataclasses import ELFFeatures

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, ELFFeatures)

    def test_extract_header_data(self, elf_binary_path, mock_logger):
        """Test ELF header data extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Check header fields
            assert isinstance(result.ei_class, int)
            assert isinstance(result.ei_data, int)
            assert isinstance(result.e_type, int)
            assert isinstance(result.e_machine, int)
            assert isinstance(result.e_entry, int)

    def test_extract_human_readable_strings(self, elf_binary_path, mock_logger):
        """Test human-readable string fields."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.ei_class_str in ['32-bit', '64-bit', 'unknown']
            assert result.ei_data_str in ['Little-endian', 'Big-endian', 'unknown']
            assert result.e_type_str is not None
            assert result.e_machine_str is not None

    def test_extract_security_properties(self, elf_binary_path, mock_logger):
        """Test security property extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Security flags should be 0 or 1
            assert result.is_pie in [0, 1]
            assert result.has_canary in [0, 1]
            assert result.has_nx in [0, 1]
            assert result.has_relro in [0, 1]
            assert result.has_fortify in [0, 1]

    def test_extract_counts(self, elf_binary_path, mock_logger):
        """Test section/segment/symbol counts."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.number_of_segments >= 0
            assert result.number_of_sections >= 0
            assert result.number_of_symbols >= 0
            assert result.number_of_dynamic_symbols >= 0
            assert result.number_of_relocations >= 0
            assert result.number_of_dependencies >= 0

    def test_extract_build_info(self, elf_binary_path, mock_logger):
        """Test build information extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Build ID may or may not be present
            if result.build_id is not None:
                assert isinstance(result.build_id, str)
            assert result.gnu_hash_present in [0, 1]
            assert result.has_debug_info in [0, 1]

    def test_extract_invalid_elf(self, pe_binary_path, mock_logger):
        """Test extraction with non-ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(pe_binary_path, mock_logger)

            result = extractor.extract()

            # Should return None for invalid ELF
            assert result is None


# ============================================================================
# ELFSectionExtractor Tests
# ============================================================================

class TestELFSectionExtractor:
    """Tests for ELFSectionExtractor class."""

    def test_extract_sections(self, elf_binary_path, mock_logger):
        """Test section extraction."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, list)
            assert len(result) > 0

    def test_section_properties(self, elf_binary_path, mock_logger):
        """Test section property extraction."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.models.dataclasses import ELFSection

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                section = result[0]
                assert isinstance(section, ELFSection)
                assert section.section_name is not None
                assert isinstance(section.section_type, int)
                assert isinstance(section.section_flags, int)
                assert section.section_entropy >= 0

    def test_section_hashes(self, elf_binary_path, mock_logger):
        """Test section hash computation."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                for section in result:
                    if section.section_sha256:
                        assert len(section.section_sha256) == 64
                    if section.section_md5:
                        assert len(section.section_md5) == 32


# ============================================================================
# ELFSegmentExtractor Tests
# ============================================================================

class TestELFSegmentExtractor:
    """Tests for ELFSegmentExtractor class."""

    def test_extract_segments(self, elf_binary_path, mock_logger):
        """Test segment extraction."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, list)

    def test_segment_properties(self, elf_binary_path, mock_logger):
        """Test segment property extraction."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor
        from redb.models.dataclasses import ELFSegment

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                segment = result[0]
                assert isinstance(segment, ELFSegment)
                assert isinstance(segment.segment_type, int)
                assert isinstance(segment.segment_flags, int)


# ============================================================================
# ELFSymbolExtractor Tests
# ============================================================================

class TestELFSymbolExtractor:
    """Tests for ELFSymbolExtractor class."""

    def test_extract_symbols(self, elf_binary_path, mock_logger):
        """Test symbol extraction."""
        from redb.extractors.elf_extractors.elf_symbols import ELFSymbolExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSymbolExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if stripped
            if result is not None:
                assert isinstance(result, list)

    def test_symbol_properties(self, elf_binary_path, mock_logger):
        """Test symbol property extraction."""
        from redb.extractors.elf_extractors.elf_symbols import ELFSymbolExtractor
        from redb.models.dataclasses import ELFSymbol

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSymbolExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                symbol = result[0]
                assert isinstance(symbol, ELFSymbol)
                assert symbol.symbol_name is not None
                assert isinstance(symbol.symbol_type, int)
                assert isinstance(symbol.symbol_bind, int)


# ============================================================================
# ELFImportExtractor Tests
# ============================================================================

class TestELFImportExtractor:
    """Tests for ELFImportExtractor class."""

    def test_extract_imports(self, elf_binary_path, mock_logger):
        """Test import extraction."""
        from redb.extractors.elf_extractors.elf_imports import ELFImportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFImportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no imports
            if result is not None:
                assert hasattr(result, 'elf_imports_total')

    def test_import_functions(self, elf_binary_path, mock_logger):
        """Test import function extraction."""
        from redb.extractors.elf_extractors.elf_imports import ELFImportExtractor
        from redb.models.dataclasses import ELFImport

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFImportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None:
                assert isinstance(result, ELFImport)
                assert isinstance(result.elf_imports_total, int)


# ============================================================================
# ELFExportExtractor Tests
# ============================================================================

class TestELFExportExtractor:
    """Tests for ELFExportExtractor class."""

    def test_extract_exports(self, elf_binary_path, mock_logger):
        """Test export extraction."""
        from redb.extractors.elf_extractors.elf_exports import ELFExportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFExportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no exports
            if result is not None:
                assert hasattr(result, 'elf_exports_total')

    def test_export_functions(self, elf_binary_path, mock_logger):
        """Test export function extraction."""
        from redb.extractors.elf_extractors.elf_exports import ELFExportExtractor
        from redb.models.dataclasses import ELFExport

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFExportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None:
                assert isinstance(result, ELFExport)


# ============================================================================
# ELFDependencyExtractor Tests
# ============================================================================

class TestELFDependencyExtractor:
    """Tests for ELFDependencyExtractor class."""

    def test_extract_dependencies(self, elf_binary_path, mock_logger):
        """Test dependency extraction."""
        from redb.extractors.elf_extractors.elf_dependencies import ELFDependencyExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFDependencyExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no dependencies
            if result is not None:
                assert isinstance(result, list)

    def test_dependency_properties(self, elf_binary_path, mock_logger):
        """Test dependency property extraction."""
        from redb.extractors.elf_extractors.elf_dependencies import ELFDependencyExtractor
        from redb.models.dataclasses import ELFDependency

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFDependencyExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                dep = result[0]
                assert isinstance(dep, ELFDependency)
                assert dep.dependency_name is not None


# ============================================================================
# ELFRelocationExtractor Tests
# ============================================================================

class TestELFRelocationExtractor:
    """Tests for ELFRelocationExtractor class."""

    def test_extract_relocations(self, elf_binary_path, mock_logger):
        """Test relocation extraction."""
        from redb.extractors.elf_extractors.elf_relocations import ELFRelocationExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFRelocationExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no relocations
            if result is not None:
                assert isinstance(result, list)

    def test_relocation_properties(self, elf_binary_path, mock_logger):
        """Test relocation property extraction."""
        from redb.extractors.elf_extractors.elf_relocations import ELFRelocationExtractor
        from redb.models.dataclasses import ELFRelocation

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFRelocationExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                reloc = result[0]
                assert isinstance(reloc, ELFRelocation)
                assert isinstance(reloc.relocation_offset, int)
                assert isinstance(reloc.relocation_type, int)


# ============================================================================
# ELFNotesExtractor Tests
# ============================================================================

class TestELFNotesExtractor:
    """Tests for ELFNotesExtractor class."""

    def test_extract_notes(self, elf_binary_path, mock_logger):
        """Test notes extraction."""
        from redb.extractors.elf_extractors.elf_notes import ELFNotesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFNotesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no notes
            if result is not None:
                assert isinstance(result, list)

    def test_note_properties(self, elf_binary_path, mock_logger):
        """Test note property extraction."""
        from redb.extractors.elf_extractors.elf_notes import ELFNotesExtractor
        from redb.models.dataclasses import ELFNote

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFNotesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                note = result[0]
                assert isinstance(note, ELFNote)
                assert note.note_name is not None
                assert isinstance(note.note_type, int)


# ============================================================================
# Integration Tests
# ============================================================================

class TestELFExtractorIntegration:
    """Integration tests for ELF extractors."""

    def test_all_extractors_valid_elf(self, elf_binary_path, mock_logger):
        """Test all ELF extractors with valid ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)
            segments_ext = ELFSegmentExtractor(elf_binary_path, mock_logger)

            features_result = features_ext.extract()
            sections_result = sections_ext.extract()
            segments_result = segments_ext.extract()

            # All should extract something
            assert features_result is not None
            assert sections_result is not None
            assert segments_result is not None

    def test_hash_consistency_across_extractors(self, elf_binary_path, mock_logger):
        """Test that hashes are consistent across all extractors."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)

            # Hashes should be the same
            assert features_ext.sha256 == sections_ext.sha256
            assert features_ext.md5 == sections_ext.md5
            assert features_ext.sha1 == sections_ext.sha1

    def test_clickhouse_tables_unique(self, elf_binary_path, mock_logger):
        """Test that each extractor has a unique ClickHouse table."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)
            segments_ext = ELFSegmentExtractor(elf_binary_path, mock_logger)

            tables = {
                features_ext.get_clickhouse_table(),
                sections_ext.get_clickhouse_table(),
                segments_ext.get_clickhouse_table(),
            }

            # All tables should be unique
            assert len(tables) == 3


# ============================================================================
# Advanced Binary Tests
# ============================================================================

class TestELFAdvancedBinary:
    """Tests using the hello_advanced binary."""

    def test_advanced_features_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test feature extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.number_of_sections > 0

    def test_advanced_sections_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test section extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert len(result) > 0

            # Check for common ELF sections
            section_names = [s.section_name for s in result]
            # Most ELF files have .text section
            assert any('.text' in name for name in section_names)

    def test_advanced_segments_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test segment extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert len(result) > 0


# ============================================================================
# Export Data Tests
# ============================================================================

class TestELFExtractorExportData:
    """Tests for export data preparation."""

    def test_features_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for features."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            assert result is not None
            data, column_names, column_type_names = result

            assert 'sha256' in column_names
            assert 'ei_class' in column_names
            assert 'e_machine' in column_names
            assert 'is_pie' in column_names

    def test_sections_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for sections."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            if result is not None:
                data, column_names, column_type_names = result
                assert 'section_name' in column_names
                assert 'section_entropy' in column_names

    def test_segments_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for segments."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            if result is not None:
                data, column_names, column_type_names = result
                assert 'segment_type' in column_names