Ichiro Ide

251 papers A* 11A 7B 39C 9Misc 8Journal 59Unranked 103
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEICE Trans. Inf. Syst.
Nanami Takagi, Haruya Kyutoku, Keisuke Doman, Takahiro Komamizu, Ichiro Ide
2026 J jnl
CoRR
Wenqiu Tang, Zhen Wan, Takahiro Komamizu, Ichiro Ide
2026 J jnl
ACM Trans. Multim. Comput. Commun. Appl.
Trung Thanh Nguyen, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2025 conf
ACPR (2)
Kotaro Ikeda, Chihaya Matsuhira, Hirotaka Kato, Marc A. Kastner, Takatsugu Hirayama, Takahiro Komamizu, Ichiro Ide
2025 J jnl
Int. J. Mach. Learn. Cybern.
Bolin Zhang, Chao Yang, Bin Jiang, Takahiro Komamizu, Ichiro Ide
2025 ed.
MMM (1)
Ichiro Ide, Ioannis Kompatsiaris, Changsheng Xu, Keiji Yanai, Wei-Ta Chu, Naoko Nitta, Michael Riegler, Toshihiko Yamasaki
2025 ed.
MMM (2)
Ichiro Ide, Ioannis Kompatsiaris, Changsheng Xu, Keiji Yanai, Wei-Ta Chu, Naoko Nitta, Michael Riegler, Toshihiko Yamasaki
2025 ed.
MMM (3)
Ichiro Ide, Ioannis Kompatsiaris, Changsheng Xu, Keiji Yanai, Wei-Ta Chu, Naoko Nitta, Michael Riegler, Toshihiko Yamasaki
2025 ed.
MMM (4)
Ichiro Ide, Ioannis Kompatsiaris, Changsheng Xu, Keiji Yanai, Wei-Ta Chu, Naoko Nitta, Michael Riegler, Toshihiko Yamasaki
2025 ed.
MMM (5)
Ichiro Ide, Ioannis Kompatsiaris, Changsheng Xu, Keiji Yanai, Wei-Ta Chu, Naoko Nitta, Michael Riegler, Toshihiko Yamasaki
2025 B conf
FG
Trung Thanh Nguyen, Yasutomo Kawanishi, Vijay John, Takahiro Komamizu, Ichiro Ide
2025 J jnl
CoRR
Trung Thanh Nguyen, Yasutomo Kawanishi, Vijay John, Takahiro Komamizu, Ichiro Ide
2025 conf
ACPR (2)
Hitomi Kato, Hirotaka Kato, Takatsugu Hirayama, Takahiro Komamizu, Ichiro Ide
2025 conf
MMAsia
Junan Chen, Trung Thanh Nguyen, Takahiro Komamizu, Ichiro Ide
2025 J jnl
CoRR
Junan Chen, Trung Thanh Nguyen, Takahiro Komamizu, Ichiro Ide
2025 conf
MMM (4)
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Takatsugu Hirayama, Ichiro Ide
2025 J jnl
IEEE Access
Da Huo, Marc A. Kastner, Takatsugu Hirayama, Takahiro Komamizu, Yasutomo Kawanishi, Ichiro Ide
2025 J jnl
CoRR
Da Huo, Marc A. Kastner, TingWei Liu, Yasutomo Kawanishi, Takatsugu Hirayama, Takahiro Komamizu, Ichiro Ide
2025 conf
MMM (4)
Itthisak Phueaksri, Marc A. Kastner, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2025 J jnl
CoRR
Trung Thanh Nguyen, Yasutomo Kawanishi, Vijay John, Takahiro Komamizu, Ichiro Ide
2024 conf
MMAsia
Trung Thanh Nguyen, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2024 J jnl
CoRR
Trung Thanh Nguyen, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2024 J jnl
IEEE Access
Hiroki Tatemichi, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2024 J jnl
Multim. Tools Appl.
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Ichiro Ide, Takatsugu Hirayama, Yasutomo Kawanishi, Keisuke Doman, Daisuke Deguchi
2024 J jnl
Multim. Tools Appl.
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Ichiro Ide, Takatsugu Hirayama, Yasutomo Kawanishi, Keisuke Doman, Daisuke Deguchi
2024 J jnl
Knowl. Based Syst.
Bolin Zhang, Haruya Kyutoku, Keisuke Doman, Takahiro Komamizu, Ichiro Ide, Jiangbo Qian
2024 J jnl
IEEE Access
Itthisak Phueaksri, Marc A. Kastner, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2024 J jnl
IEEE Access
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Takatsugu Hirayama, Keisuke Doman, Yasutomo Kawanishi, Ichiro Ide
2024 A* conf
ACM Multimedia
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Takatsugu Hirayama, Ichiro Ide
2024 J jnl
CoRR
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Takatsugu Hirayama, Ichiro Ide
2024 conf
CVPR Workshops
Carlos Victorino Padeiro, Tse-Wei Chen, Takahiro Komamizu, Ichiro Ide
2024 B conf
FG
Trung Thanh Nguyen, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2024 J jnl
CoRR
Trung Thanh Nguyen, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2024 conf
DEXA (2)
Tatsuya Kato, Takahiro Komamizu, Ichiro Ide
2024 J jnl
CoRR
TingWei Liu, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2024 J jnl
IEEE Access
Trung Thanh Nguyen, Phi Le Nguyen, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2023 J jnl
IEEE Access
Itthisak Phueaksri, Marc A. Kastner, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2023 C conf
PACLIC
Akira Yoshida, Chihaya Matsuhira, Hirotaka Kato, Takatsugu Hirayama, Takahiro Komamizu, Ichiro Ide
2023 J jnl
CoRR
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Takatsugu Hirayama, Keisuke Doman, Yasutomo Kawanishi, Ichiro Ide
2023 Misc conf
MVA
Banri Kojima, Takahiro Komamizu, Yasutomo Kawanishi, Keisuke Doman, Ichiro Ide
2023 J jnl
Informatica (Slovenia)
Huynh Thi Thanh Binh, Ichiro Ide
2023 Misc conf
MVA
Yuki Kondo, Norimichi Ukita, Takayuki Yamaguchi, Hao-Yu Hou, Mu-Yi Shen, Chia-Chi Hsu, En-Ming Huang, Yu-Chen Huang, Yu-Cheng Xia, Chien-Yao Wang, Chun-Yi Lee, Da Huo, Marc A. Kastner, TingWei Liu, Yasutomo Kawanishi, Takatsugu Hirayama, Takahiro Komamizu, Ichiro Ide, Yosuke Shinya, Xinyao Liu, Guang Liang, Syusuke Yasui
2023 J jnl
CoRR
Yuki Kondo, Norimichi Ukita, Takayuki Yamaguchi, Hao-Yu Hou, Mu-Yi Shen, Chia-Chi Hsu, En-Ming Huang, Yu-Chen Huang, Yu-Cheng Xia, Chien-Yao Wang, Chun-Yi Lee, Da Huo, Marc A. Kastner, TingWei Liu, Yasutomo Kawanishi, Takatsugu Hirayama, Takahiro Komamizu, Ichiro Ide, Yosuke Shinya, Xinyao Liu, Guang Liang, Syusuke Yasui
2023 conf
MCGE@MM
Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Takatsugu Hirayama, Keisuke Doman, Ichiro Ide
2023 conf
MMAsia
Jialiang Shi, Takahiro Komamizu, Keisuke Doman, Haruya Kyutoku, Ichiro Ide
2023 J jnl
CoRR
Jialiang Shi, Takahiro Komamizu, Keisuke Doman, Haruya Kyutoku, Ichiro Ide
2023 Misc conf
MVA
Da Huo, Marc A. Kastner, TingWei Liu, Yasutomo Kawanishi, Takatsugu Hirayama, Takahiro Komamizu, Ichiro Ide
2023 Misc conf
MVA
Carlos Victorino Padeiro, Takahiro Komamizu, Ichiro Ide
2023 conf
MMM (1)
Itthisak Phueaksri, Marc A. Kastner, Yasutomo Kawanishi, Takahiro Komamizu, Ichiro Ide
2022 conf
PRICAI (1)
Trung Thanh Nguyen, Hoang Dang Nguyen, Thanh-Hung Nguyen, Huy Hieu Pham, Ichiro Ide, Phi Le Nguyen
2022 J jnl
CoRR
Trung Thanh Nguyen, Hoang Dang Nguyen, Thanh-Hung Nguyen, Huy Hieu Pham, Ichiro Ide, Phi Le Nguyen
2022 conf
MIPR
Da Huo, Marc A. Kastner, Takahiro Komamizu, Ichiro Ide
2022 B conf
AVSS
Yasutomo Kawanishi, Ichiro Ide, Baidong Chu, Chihaya Matsuhira, Marc A. Kastner, Takahiro Komamizu, Daisuke Deguchi
2022 B ed.
ICMR
Vincent Oria, Maria Luisa Sapino, Shin'ichi Satoh, Brigitte Kerhervé, Wen-Huang Cheng, Ichiro Ide, Vivek K. Singh
2022 conf
MIPR
Hirotaka Kato, Takatsugu Hirayama, Keisuke Doman, Ichiro Ide, Yasutomo Kawanishi, Takahiro Komamizu, Daisuke Deguchi, Hiroshi Murase
2022 J jnl
J. Heuristics
Ichiro Ide, Huynh Thi Thanh Binh
2021 conf
MIPR
Marc A. Kastner, Chihaya Matsuhira, Ichiro Ide, Shin'ichi Satoh
2021 J jnl
IEEE Access
Marc A. Kastner, Kazuki Umemura, Ichiro Ide, Yasutomo Kawanishi, Takatsugu Hirayama, Keisuke Doman, Daisuke Deguchi, Hiroshi Murase, Shin'ichi Satoh
2021 ed.
MMArt&ACM@ICMR
Min-Chun Hu, Ichiro Ide, Kensuke Tobitani
2021 B conf
ICMR
Min-Chun Hu, Ichiro Ide, Kensuke Tobitani
2021 conf
HCI (37)
Chihaya Matsuhira, Marc A. Kastner, Ichiro Ide, Yasutomo Kawanishi, Takatsugu Hirayama, Keisuke Doman, Daisuke Deguchi, Hiroshi Murase
2021 J jnl
Pattern Recognit. Lett.
Yuki Furitsu, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase, Hiroki Mukojima, Nozomi Nagamine
2021 conf
MMM (2)
Kazuki Umemura, Marc A. Kastner, Ichiro Ide, Yasutomo Kawanishi, Takatsugu Hirayama, Keisuke Doman, Daisuke Deguchi, Hiroshi Murase
2020 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Mahmud Dwi Sulistiyo, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Takatsugu Hirayama, Jiang Yu Zheng, Hiroshi Murase
2020 conf
MMM (2)
Marc A. Kastner, Ichiro Ide, Yasutomo Kawanishi, Takatsugu Hirayama, Daisuke Deguchi, Hiroshi Murase
2020 ed.
CEA@ICMR
Ichiro Ide, Yoko Yamakata, Atsushi Hashimoto
2020 B conf
ICMR
Ichiro Ide, Yoko Yamakata, Atsushi Hashimoto
2020 J jnl
Multim. Tools Appl.
Marc A. Kastner, Ichiro Ide, Frank Nack, Yasutomo Kawanishi, Takatsugu Hirayama, Daisuke Deguchi, Hiroshi Murase
2020 B conf
ICMR
Chihaya Matsuhira, Marc A. Kastner, Ichiro Ide, Yasutomo Kawanishi, Takatsugu Hirayama, Keisuke Doman, Daisuke Deguchi, Hiroshi Murase
2020 J jnl
Informatica (Slovenia)
Huynh Thi Thanh Binh, Ichiro Ide
2020 B conf
ICPR
Saki Iwata, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Tomoyoshi Aizawa
2020 B conf
ICMR
Wei-Ta Chu, Ichiro Ide, Naoko Nitta, Norimichi Tsumura, Toshihiko Yamasaki
2020 B conf
ICPR
Hiroki Tatemichi, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Ayako Amma, Hiroshi Murase
2020 conf
ITSC
Yamato Maekawa, Naoki Akai, Takatsugu Hirayama, Luis Yoichi Morales, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase
2020 conf
MMM (2)
Hirotaka Kato, Takatsugu Hirayama, Ichiro Ide, Keisuke Doman, Yasutomo Kawanishi, Daisuke Deguchi, Hiroshi Murase
2020 conf
IW-FCV
Onur Temuroglu, Yasutomo Kawanishi, Daisuke Deguchi, Takatsugu Hirayama, Ichiro Ide, Hiroshi Murase, Mayuu Iwasaki, Atsushi Tsukada
2020 ed.
MMArt&ACM@ICMR
Wei-Ta Chu, Ichiro Ide, Naoko Nitta, Norimichi Tsumura, Toshihiko Yamasaki
2020 conf
VISIGRAPP (5: VISAPP)
Naoki Nishida, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Jun Piao
2020 B conf
ICPR
Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2019 conf
ICCV Workshops
Yamato Maekawa, Naoki Akai, Takatsugu Hirayama, Luis Yoichi Morales, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase
2019 conf
CEA@ICMR
Tatsumi Hattori, Keisuke Doman, Ichiro Ide, Yoshito Mekada
2019 J jnl
Multim. Tools Appl.
Marc A. Kastner, Ichiro Ide, Yasutomo Kawanishi, Takatsugu Hirayama, Daisuke Deguchi, Hiroshi Murase
2019 J jnl
IEICE Trans. Inf. Syst.
Kazuma Takahashi, Tatsumi Hattori, Keisuke Doman, Yasutomo Kawanishi, Takatsugu Hirayama, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2019 B conf
AVSS
Naoki Nishida, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Jun Piao
2019 J jnl
IEICE Trans. Inf. Syst.
Ichiro Ide, Yoko Yamakata
2019 conf
VISIGRAPP (5: VISAPP)
Masashi Hontani, Haruya Kyutoku, David Wong, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase
2019 J jnl
IEEE Intell. Transp. Syst. Mag.
Andrey Alekseenko, Hien Q. Dang, Gaurav Bansal, Javier J. Sánchez Medina, Chiyomi Miyajima, Takatsugu Hirayama, Kazuya Takeda, Ichiro Ide
2019 conf
VISIGRAPP (5: VISAPP)
Nik Mohd Zarifie Hashim, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Ayako Amma, Norimasa Kobori
2019 conf
VISIGRAPP (5: VISAPP)
Taiki Yamamoto, Fumito Shinmura, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase
2019 ed.
CEA@ICMR
Ichiro Ide, Yoko Yamakata
2019 conf
ACPR (2)
Takuya Migishima, Haruya Kyutoku, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase
2019 conf
ACPR (1)
Yuki Furitsu, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase, Hiroki Mukojima, Nozomi Nagamine
2019 conf
BigMM
Yasutomo Kawanishi, Ichiro Ide, Lu Chen, Takatsugu Hirayama, Keisuke Doman, Daisuke Deguchi, Hiroshi Murase
2019 J jnl
Int. J. Semantic Comput.
Ye Zhang, Ryunosuke Tanishige, Ichiro Ide, Keisuke Doman, Yasutomo Kawanishi, Daisuke Deguchi, Hiroshi Murase
2018 conf
CEA@IJCAI
Tatsumi Hattori, Keisuke Doman, Ichiro Ide, Yoshito Mekada
2018 conf
ITSC
Takashi Maeda, Takatsugu Hirayama, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2018 conf
ITSC
Mahmud Dwi Sulistiyo, Yasutomo Kawanishi, Daisuke Deguchi, Takatsugu Hirayama, Ichiro Ide, J. Y. Zheng, Hiroshi Murase
2018 conf
ITSC
Haruya Kyutoku, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Kazuki Kato, Hiroshi Murase
2018 conf
ITSC
Fumito Shinmura, Yasutomo Kawanishi, Daisuke Deguchi, Takatsugu Hirayama, Ichiro Ide, Hiroshi Murase, Hironobu Fujiyoshi
2018 C conf
ISM
Akinori Sato, Takatsugu Hirayama, Keisuke Doman, Yasutomo Kawanishi, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2018 J jnl
Informatica (Slovenia)
Huynh Thi Thanh Binh, Ichiro Ide
2018 conf
ACCV Workshops
Yuki Kodama, Yasutomo Kawanishi, Takatsugu Hirayama, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hidehisa Nagano, Kunio Kashino
2018 J jnl
IEICE Trans. Inf. Syst.
Yuki Imaeda, Takatsugu Hirayama, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2018 ed.
CEA/MADiMa@IJCAI
Ichiro Ide, Yoko Yamakata
2018 ch.
Encyclopedia of Database Systems (2nd ed.)
Ichiro Ide
2018 C conf
VCIP
Yasutomo Kawanishi, Chisato Toriyama, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Tomoyoshi Aizawa, Masato Kawade
2017 B conf
AVSS
Takayuki Kawashima, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase, Daisuke Deguchi, Tomoyoshi Aizawa, Masato Kawade
2017 C conf
ISM
Ichiro Ide, Yasutomo Kawanishi, Kyoka Kunishiro, Frank Nack, Daisuke Deguchi, Hiroshi Murase
2017 conf
VISIGRAPP (5: VISAPP)
Yoshiki Tatebe, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase, Utsushi Sakai
2017 conf
VISIGRAPP (4: VISAPP)
Yuki Imaeda, Takatsugu Hirayama, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2017 conf
VISIGRAPP (5: VISAPP)
Hiroshi Ninomiya, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Norimasa Kobori, Yusuke Nakano
2017 conf
PCM (1)
Hiroki Takimoto, Magali Philippe, Yasutomo Kawanishi, Ichiro Ide, Takatsugu Hirayama, Keisuke Doman, Daisuke Deguchi, Hiroshi Murase
2017 conf
ITSC
Fumito Shinmura, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hironobu Fujiyoshi
2017 conf
CEA@IJCAI
Kazuma Takahashi, Keisuke Doman, Yasutomo Kawanishi, Takatsugu Hirayama, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2017 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Brahmastro Kresnaraman, Yasutomo Kawanishi, Daisuke Deguchi, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase
2017 B conf
Intelligent Vehicles Symposium
David Wong, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2017 ed.
CEA@IJCAI
Ichiro Ide, Yoko Yamakata
2017 A* conf
VR
Norimasa Kobori, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2017 J jnl
Image Vis. Comput.
David Wong, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase
2017 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
David Wong, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2017 C conf
ISM
Ichiro Ide, Ye Zhang, Ryunosuke Tanishige, Keisuke Doman, Yasutomo Kawanishi, Daisuke Deguchi, Hiroshi Murase
2017 conf
ICCV Workshops
Hirotaka Kato, Takatsugu Hirayama, Yasutomo Kawanishi, Keisuke Doman, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2017 conf
CVPR Workshops
Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2017 conf
VISIGRAPP (5: VISAPP)
Ukyo Tanikawa, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Ryo Kawai
2016 conf
BigMM
Kazuma Takahashi, Keisuke Doman, Yasutomo Kawanishi, Takatsugu Hirayama, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2016 B conf
ETRA
Hiroya Inoue, Takatsugu Hirayama, Keisuke Doman, Yasutomo Kawanishi, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2016 conf
VISIGRAPP (4: VISAPP)
Chisato Toriyama, Yasutomo Kawanishi, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Tomoyoshi Aizawa, Masato Kawade
2016 conf
VISIGRAPP (3: VISAPP)
Takuya Inoue, Tomokazu Takahashi, Takatsugu Hirayama, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Takayuki Kurozumi, Kunio Kashino
2016 B conf
ICPR
Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hironobu Fujiyoshi
2016 B conf
ICIP
Hiroki Mukojima, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase, Masato Ukai, Nozomi Nagamine, Ryuta Nakasone
2016 B conf
Intelligent Vehicles Symposium
Yuto Shimbo, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2016 conf
ACCV Workshops (1)
Fumito Shinmura, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hironobu Fujiyoshi
2016 J jnl
Sensors
Brahmastro Kresnaraman, Daisuke Deguchi, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase
2016 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Esmaeil Pourjam, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2015 conf
VISAPP (1)
Toru Kotsuka, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2015 conf
ACPR
Yuki Suzuki, Daisuke Deguchi, Yasutomo Kawanishi, Ichiro Ide, Hiroshi Murase
2015 conf
ITSC
Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hironobu Fujiyoshi
2015 conf
VISAPP (2)
Fumito Shinmura, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hironobu Fujiyoshi
2015 conf
CrowdMM@ACM Multimedia
Kosuke Kato, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2015 J jnl
Int. J. Semantic Comput.
Haruka Kumagai, Ichiro Ide, Hiroshi Murase, Keisuke Doman, Daisuke Deguchi
2015 B conf
Intelligent Vehicles Symposium
Fumito Shinmura, Yasutomo Kawanishi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hironobu Fujiyoshi
2015 conf
ICCV Workshops
David Wong, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2015 conf
ICIAP Workshops
Hiroki Matsunaga, Keisuke Doman, Takatsugu Hirayama, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2015 conf
ICME Workshops
Satoshi Yokoi, Keisuke Doman, Takatsugu Hirayama, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2014 conf
VISAPP (2)
Daichi Suzuo, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Hiroyuki Ishida, Yoshiko Kojima
2014 B conf
ICMR
Kosuke Kato, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2014 B conf
Intelligent Vehicles Symposium
Keisuke Doman, Daisuke Deguchi, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase, Utsushi Sakai
2014 A* conf
ACM Multimedia
Keisuke Doman, Taishi Tomita, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2014 conf
VISAPP (1)
Kento Nishibori, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2014 conf
ACCV Workshops (2)
Takashi Hosono, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Tomoyoshi Aizawa, Masato Kawade
2014 conf
TRECVID
Cai-Zhi Zhu, Yinqiang Zheng, Ichiro Ide, Shin'ichi Satoh, Kazuya Takeda
2014 conf
ITSC
Ryunosuke Tanishige, Daisuke Deguchi, Keisuke Doman, Yoshito Mekada, Ichiro Ide, Hiroshi Murase
2014 C conf
ISM
Haruka Kumagai, Keisuke Doman, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2014 B conf
Intelligent Vehicles Symposium
David Wong, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2014 B conf
ICPR
Yoshimune Tabuchi, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Takayuki Kurozumi, Kunio Kashino
2014 conf
ECCV Workshops (1)
David Wong, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2013 conf
CEA@ACM Multimedia
Yasuhiro Hayashi, Keisuke Doman, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2013 conf
ITSC
Yuji Kojima, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2013 J jnl
IEICE Trans. Inf. Syst.
Xi Li, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2013 conf
MMM (2)
Takashi Kobayashi, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2013 B conf
Intelligent Vehicles Symposium
Hidefumi Yoshida, Daichi Suzuo, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Takashi Machida, Yoshiko Kojima
2013 conf
MMM (2)
Ichiro Ide
2013 Misc conf
MVA
Esmaeil Pourjam, Ichiro Ide, Daisuke Deguchi, Hiroshi Murase
2012 conf
IIMSS
Ichiro Ide, Jiani Wang, Masafumi Noda, Tomokazu Takahashi, Daisuke Deguchi, Hiroshi Murase
2012 conf
EST
Ichiro Ide, Taku Kuhara, Daisuke Deguchi, Tomokazu Takahashi, Hiroshi Murase
2012 J jnl
IEICE Trans. Inf. Syst.
Ichiro Ide, Tomoyoshi Kinoshita, Tomokazu Takahashi, Hiroshi Mo, Norio Katayama, Shin'ichi Satoh, Hiroshi Murase
2012 B conf
ICPR
Masashi Wakayama, Daisuke Deguchi, Keisuke Doman, Ichiro Ide, Hiroshi Murase, Yukimasa Tamatsu
2012 conf
VISAPP (1)
Hidefumi Yoshida, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Kunihiro Goto, Yoshikatsu Kimura, Takashi Naito
2012 A* conf
ACM Multimedia
Mutsuo Sano, Ichiro Ide, Yoko Yamakata
2012 ed.
CEA@ACM Multimedia
Mutsuo Sano, Ichiro Ide
2012 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Daisuke Deguchi, Marco Feuerstein, Takayuki Kitasaka, Yasuhito Suenaga, Ichiro Ide, Hiroshi Murase, Kazuyoshi Imaizumi, Yoshinori Hasegawa, Kensaku Mori
2012 A conf
ICME
Tomonari Yoshida, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2012 A* conf
ACM Multimedia
Keisuke Doman, Cheng Ying Kuai, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2012 J jnl
Int. J. Semantic Comput.
Shogo Kumagai, Keisuke Doman, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2012 conf
ECCV Workshops (2)
Haruya Kyutoku, Daisuke Deguchi, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase
2012 conf
ACCV Workshops (2)
Xi Li, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2012 conf
ITSC
Ryuhei Sato, Keisuke Doman, Daisuke Deguchi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase, Yukimasa Tamatsu
2011 B conf
Intelligent Vehicles Symposium
Hiroyuki Uchiyama, Daisuke Deguchi, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2011 C conf
ISM
Shogo Kumagai, Keisuke Doman, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2011 B conf
Intelligent Vehicles Symposium
Keisuke Doman, Daisuke Deguchi, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase, Yukimasa Tamatsu
2011 B conf
Intelligent Vehicles Symposium
Daisuke Deguchi, Daisuke Shirasuna, Keisuke Doman, Ichiro Ide, Hiroshi Murase
2011 A conf
ICDAR
Yuji Kato, Daisuke Deguchi, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2011 Misc conf
MVA
Haruya Kyutoku, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase
2011 J jnl
IEEE J. Emerg. Sel. Topics Circuits Syst.
Tse-Wei Chen, Chih-Hao Sun, Hsiao-Hang Su, Shao-Yi Chien, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2011 B conf
Intelligent Vehicles Symposium
Masafumi Noda, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Yoshiko Kojima, Takashi Naito
2011 A* conf
ACM Multimedia
Kazuki Sawai, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2011 conf
MMM (2)
Keisuke Doman, Cheng Ying Kuai, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2011 A* conf
ACM Multimedia
Frank Nack, Ichiro Ide
2010 J jnl
Pattern Recognit.
Hiroyuki Ishida, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2010 J jnl
EURASIP J. Image Video Process.
Yasunori Kamiya, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2010 B conf
ICPR
Ichiro Ide, Yuji Shamoto, Daisuke Deguchi, Tomokazu Takahashi, Hiroshi Murase
2010 B conf
Intelligent Vehicles Symposium
Keisuke Doman, Daisuke Deguchi, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase, Yukimasa Tamatsu
2010 conf
ACCV Workshops (1)
Yuki Kono, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2010 conf
ACCV Workshops (2)
Daisuke Deguchi, Keisuke Doman, Ichiro Ide, Hiroshi Murase
2010 C conf
ISM
Ichiro Ide, Yuka Shidochi, Yuichi Nakamura, Daisuke Deguchi, Tomokazu Takahashi, Hiroshi Murase
2010 B conf
MMM
Xiaomeng Wu, Ichiro Ide, Shin'ichi Satoh
2010 B conf
ICPR
Tomokazu Takahashi, Yuki Kono, Ichiro Ide, Hiroshi Murase
2010 B conf
ICPR
Hiroyuki Uchiyama, Daisuke Deguchi, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2010 conf
ACCV Workshops (2)
Masafumi Noda, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase, Yoshiko Kojima, Takashi Naito
2009 B conf
MMM
Yasunori Kamiya, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2009 A conf
ICME
Ichiro Ide, Shugo Suzuki, Tomokazu Takahashi, Hiroshi Murase
2009 conf
CEA@ACM Multimedia
Yuka Shidochi, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2009 J jnl
IEICE Trans. Inf. Syst.
Lina, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2009 C conf
ISM
Tomoki Okuoka, Tomokazu Takahashi, Daisuke Deguchi, Ichiro Ide, Hiroshi Murase
2009 conf
LS-MMRM@ACM Multimedia
Xiaomeng Wu, Ichiro Ide, Shin'ichi Satoh
2009 A conf
ICDAR
Ataru Ohkura, Daisuke Deguchi, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2009 conf
PCM
Xiaomeng Wu, Ichiro Ide, Shin'ichi Satoh
2009 A* conf
ACM Multimedia
Mutsuo Sano, Ichiro Ide, Kenzaburo Miyawaki
2009 ed.
CEA@ACM Multimedia
Michihiko Minoh, Mutsuo Sano, Ichiro Ide
2009 Misc conf
MVA
Masafumi Noda, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase, Yoshiko Kojima, Takashi Naito
2009 ch.
Encyclopedia of Database Systems
Ichiro Ide
2008 B conf
Document Analysis Systems
Hiroyuki Ishida, Ichiro Ide, Hiroshi Murase, Tomokazu Takahashi
2008 B conf
ICPR
Hiroyuki Ishida, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2008 J jnl
IEICE Trans. Inf. Syst.
Lina, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2008 B conf
MMM
Akira Ogawa, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2008 B conf
ICPR
Tomokazu Takahashi, Lina, Ichiro Ide, Yoshito Mekada, Hiroshi Murase
2008 J jnl
Pattern Recognit.
Hiroyuki Ishida, Tomokazu Takahashi, Ichiro Ide, Yoshito Mekada, Hiroshi Murase
2007 Misc conf
MVA
Lina, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2007 J jnl
IEICE Trans. Inf. Syst.
Hiroyuki Ishida, Tomokazu Takahashi, Ichiro Ide, Yoshito Mekada, Hiroshi Murase
2007 A conf
ICME
Ichiro Ide, Kazuhiro Noda, Tomokazu Takahashi, Hiroshi Murase
2007 conf
ACCV (2)
Tomokazu Takahashi, Lina, Ichiro Ide, Yoshito Mekada, Hiroshi Murase
2007 A* conf
ACM Multimedia
Ichiro Ide, Tomoyoshi Kinoshita, Tomokazu Takahashi, Shin'ichi Satoh, Hiroshi Murase
2006 conf
Multimedia Information Retrieval
Ichiro Ide, Naoki Sekioka, Tomokazu Takahashi, Hiroshi Murase
2006 conf
ICPR (4)
Junji Sato, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase
2006 A conf
ICME
Ichiro Ide, Hiroshi Mo, Norio Katayama, Shin'ichi Satoh
2006 conf
ICPR (1)
Hiroyuki Ishida, Tomokazu Takahashi, Ichiro Ide, Yoshito Mekada, Hiroshi Murase
2006 conf
ICPR (1)
Tomokazu Takahashi, Osanori Matsugano, Ichiro Ide, Yoshito Mekada, Hiroshi Murase
2006 conf
ICICIC (2)
Hiroyuki Kurihata, Tomokazu Takahashi, Yoshito Mekada, Ichiro Ide, Hiroshi Murase, Yukimasa Tamatsu, Takayuki Miyahara
2006 conf
ACCV (2)
Yoshito Mekada, Yuki Wakida, Yuichiro Hayashi, Ichiro Ide, Hiroshi Murase
2006 conf
ICICIC (2)
Kenji Mori, Terutoshi Kato, Tomokazu Takahashi, Ichiro Ide, Hiroshi Murase, Takayuki Miyahara, Yukimasa Tamatsu
2005 J jnl
Syst. Comput. Jpn.
Koichi Miura, Motomu Takano, Reiko Hamada, Ichiro Ide, Shuichi Sakai, Hidehiko Tanaka
2005 conf
MICCAI (2)
Kensaku Mori, Sinya Ema, Takayuki Kitasaka, Yoshito Mekada, Ichiro Ide, Hiroshi Murase, Yasuhito Suenaga, Hirotsugu Takabatake, Masaki Mori, Hiroshi Natori
2005 A* conf
ACM Multimedia
Reiko Hamada, Jun Okabe, Ichiro Ide, Shin'ichi Satoh, Shuichi Sakai, Hidehiko Tanaka
2004 conf
PCM (1)
Hiroshi Mo, Fuminori Yamagishi, Ichiro Ide, Norio Katayama, Shin'ichi Satoh, Masao Sakauchi
2004 conf
PCM (2)
Norio Katayama, Hiroshi Mo, Ichiro Ide, Shin'ichi Satoh
2004 conf
PCM (2)
Reiko Hamada, Koichi Miura, Ichiro Ide, Shin'ichi Satoh, Shuichi Sakai, Hidehiko Tanaka
2004 conf
PCM (1)
Shinsuke Yanadume, Yoshito Mekada, Ichiro Ide, Hiroshi Murase
2004 conf
CIVR
Ichiro Ide, Hiroshi Mo, Norio Katayama, Shin'ichi Satoh
2003 conf
CIVR
Koichi Miura, Reiko Hamada, Ichiro Ide, Shuichi Sakai, Hidehiko Tanaka
2003 J jnl
Syst. Comput. Jpn.
Ichiro Ide, Reiko Hamada, Shuichi Sakai, Hidehiko Tanaka
2003 conf
Multimedia Information Retrieval
Ichiro Ide, Hiroshi Mo, Norio Katayama
2003 A conf
ICME
Ichiro Ide, Hiroshi Mo, Norio Katayama, Shin'ichi Satoh
2002 conf
ICME (1)
Okihisa Utsumi, Koichi Miura, Ichiro Ide, Shuichi Sakai, Hidehiko Tanaka
2001 conf
ACM Multimedia Workshops
Ichiro Ide, Reiko Hamada, Shuichi Sakai, Hidehiko Tanaka
2001 J jnl
Syst. Comput. Jpn.
Ichiro Ide, Koji Yamamoto, Reiko Hamada, Hidehiko Tanaka
2000 conf
ACM Multimedia Workshops
Reiko Hamada, Ichiro Ide, Shuichi Sakai
2000 conf
ACM Multimedia Workshops
Ichiro Ide, Reiko Hamada, Shuichi Sakai, Hidehiko Tanaka
2000 conf
IRAL
Reiko Hamada, Ichiro Ide, Shuichi Sakai, Hidehiko Tanaka
1999 A* conf
ACM Multimedia (2)
Reiko Hamada, Ichiro Ide, Shuichi Sakai, Hidehiko Tanaka
1999 conf
Intelligent Information Integration
Ichiro Ide, Reiko Hamada, Shuichi Sakai, Hidehiko Tanaka
1998 conf
AMCP
Ichiro Ide, Koji Yamamoto, Hidehiko Tanaka
tests/integration/test_elf_extractor.py
← Index tests/integration/test_elf_extractor.py python
"""
Integration tests for the ELFExtractor base class.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock

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


class TestELFExtractorInitialization:
    """Tests for ELFExtractor initialization."""

    def test_elf_extractor_with_valid_elf(self, elf_binary_path, mock_logger):
        """Test ELFExtractor initialization with valid ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            assert extractor.filepath == elf_binary_path
            assert extractor._is_elf_file() is True

    def test_elf_extractor_with_invalid_file(self, pe_binary_path, mock_logger):
        """Test ELFExtractor initialization 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)

            # Should not be a valid ELF
            assert extractor._is_elf_file() is False

    def test_elf_extractor_with_text_file(self, temp_text_file, mock_logger):
        """Test ELFExtractor initialization with text file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            # Should not be a valid ELF
            assert extractor._is_elf_file() is False


class TestELFExtractorMethods:
    """Tests for ELFExtractor helper methods."""

    def test_is_elf_file_true(self, elf_binary_path, mock_logger):
        """Test _is_elf_file returns True for valid ELF."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            assert extractor._is_elf_file() is True

    def test_is_elf_file_cached(self, elf_binary_path, mock_logger):
        """Test _is_elf_file result is cached."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            # First call
            result1 = extractor._is_elf_file()
            # Second call should use cached value
            result2 = extractor._is_elf_file()

            assert result1 == result2
            # Cache should be set
            assert extractor._elf_file_valid is not None

    def test_is_64bit(self, elf_binary_path, mock_logger):
        """Test _is_64bit method."""
        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._is_64bit()
            # Result depends on the test binary
            assert isinstance(result, bool)

    def test_is_stripped(self, elf_binary_path, mock_logger):
        """Test _is_stripped method."""
        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._is_stripped()
            assert isinstance(result, bool)

    def test_has_debug_info(self, elf_binary_path, mock_logger):
        """Test _has_debug_info method."""
        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._has_debug_info()
            assert isinstance(result, bool)

    def test_get_architecture(self, elf_binary_path, mock_logger):
        """Test _get_architecture method."""
        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._get_architecture()
            # Should return a string (architecture name)
            assert isinstance(result, str)
            assert result != ""

    def test_get_endianness(self, elf_binary_path, mock_logger):
        """Test _get_endianness method."""
        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._get_endianness()
            # Should be one of: "little", "big", or "unknown"
            assert result in ["little", "big", "unknown"]

    def test_get_file_type(self, elf_binary_path, mock_logger):
        """Test _get_file_type method."""
        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._get_file_type()
            # Should return a file type string
            assert isinstance(result, str)
            # Common values: "executable", "shared_object", "relocatable", etc.
            expected_types = ["none", "relocatable", "executable", "shared_object", "core_dump", "unknown"]
            assert result in expected_types or result.startswith("ET_")

    def test_is_pie(self, elf_binary_path, mock_logger):
        """Test _is_pie method."""
        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._is_pie()
            assert isinstance(result, bool)

    def test_has_stack_protection(self, elf_binary_path, mock_logger):
        """Test _has_stack_protection method."""
        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._has_stack_protection()
            assert isinstance(result, bool)

    def test_has_nx_bit(self, elf_binary_path, mock_logger):
        """Test _has_nx_bit method."""
        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._has_nx_bit()
            assert isinstance(result, bool)

    def test_has_relro(self, elf_binary_path, mock_logger):
        """Test _has_relro method."""
        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._has_relro()
            assert isinstance(result, bool)

    def test_get_build_id(self, elf_binary_path, mock_logger):
        """Test _get_build_id method."""
        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._get_build_id()
            # Could be None if no build ID, or a hex string
            assert result is None or isinstance(result, str)

    def test_count_sections(self, elf_binary_path, mock_logger):
        """Test _count_sections method."""
        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._count_sections()
            assert isinstance(result, int)
            assert result >= 0

    def test_count_segments(self, elf_binary_path, mock_logger):
        """Test _count_segments method."""
        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._count_segments()
            assert isinstance(result, int)
            assert result >= 0

    def test_count_symbols(self, elf_binary_path, mock_logger):
        """Test _count_symbols method."""
        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._count_symbols()
            assert isinstance(result, int)
            assert result >= 0

    def test_get_dependencies(self, elf_binary_path, mock_logger):
        """Test _get_dependencies method."""
        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._get_dependencies()
            assert isinstance(result, list)


class TestWithELFFile:
    """Tests for the _with_elf_file context manager method."""

    def test_with_elf_file_success(self, elf_binary_path, mock_logger):
        """Test _with_elf_file executes operation successfully."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            # Define a simple operation
            def get_header(elf):
                return elf.header is not None

            result = extractor._with_elf_file(get_header)
            assert result is True

    def test_with_elf_file_error_handling(self, temp_text_file, mock_logger):
        """Test _with_elf_file handles errors gracefully."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            # Define an operation that would fail
            def get_header(elf):
                return elf.header

            result = extractor._with_elf_file(get_header)
            # Should return None on error
            assert result is None


class TestELFExtractorTag:
    """Tests for tag method in ELF extractors."""

    def test_elf_features_tag(self, elf_binary_path, mock_logger):
        """Test that ELFFeaturesExtractor returns correct tag."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            tag = extractor.tag()
            # Should return the tag string
            assert isinstance(tag, str)
            assert "elf" in tag.lower() or "features" in tag.lower()


class TestELFExtractorClickHouseTable:
    """Tests for get_clickhouse_table method in ELF extractors."""

    def test_elf_features_clickhouse_table(self, elf_binary_path, mock_logger):
        """Test that ELFFeaturesExtractor returns correct ClickHouse table name."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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


class TestELFExtractorExtract:
    """Tests for extract method in ELF extractors."""

    def test_elf_features_extract(self, elf_binary_path, mock_logger):
        """Test ELFFeaturesExtractor.extract() returns valid data."""
        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)

            # Check some expected fields
            assert isinstance(result.ei_class, int)
            assert isinstance(result.ei_data, int)
            assert isinstance(result.e_entry, int)
            assert isinstance(result.number_of_sections, int)
            assert isinstance(result.number_of_segments, int)

    def test_elf_features_extract_invalid_file(self, pe_binary_path, mock_logger):
        """Test ELFFeaturesExtractor.extract() handles invalid ELF."""
        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


class TestELFExtractorPrepareExportData:
    """Tests for prepare_export_data method in ELF extractors."""

    def test_elf_features_prepare_export_elasticsearch(self, elf_binary_path, mock_logger):
        """Test prepare_export_data for Elasticsearch."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            # First extract
            extractor.extract()
            result = extractor.prepare_export_data("ElasticsearchExporter")
            # Should return the elf_features dataclass
            assert result is extractor.elf_features

    def test_elf_features_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test prepare_export_data for ClickHouse."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

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

            # First extract
            extractor.extract()
            result = extractor.prepare_export_data("ClickHouseExporter")

            # Should return tuple of (data, column_names, column_type_names)
            assert isinstance(result, tuple)
            assert len(result) == 3
            data, column_names, column_type_names = result
            assert isinstance(data, list)
            assert isinstance(column_names, list)
            assert isinstance(column_type_names, list)
            # Column names and types should match in length
            assert len(column_names) == len(column_type_names)


class TestELFExtractorAdvanced:
    """Advanced tests for ELF extraction using hello_advanced binary."""

    def test_elf_advanced_features(self, elf_advanced_binary_path, mock_logger):
        """Test ELFFeaturesExtractor with more complex 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

            # Check that we can extract meaningful data
            assert result.number_of_sections > 0
            assert result.number_of_segments > 0

    def test_elf_advanced_architecture(self, elf_advanced_binary_path, mock_logger):
        """Test architecture detection for 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)

            arch = extractor._get_architecture()
            # Should detect a valid architecture
            assert arch != "unknown"
            assert arch != ""