Cezary Zielinski

64 papers A* 2A 1Misc 3Journal 21Unranked 20
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Access
Maksym Figat, Cezary Zielinski
2024 J jnl
CoRR
Maksym Figat, Cezary Zielinski
2024 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska, Vytautas Bucinskas
2024 conf
RoMoCo
Cezary Zielinski
2023 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska, Vytautas Bucinskas
2023 conf
PCC (2)
Cezary Zielinski, Maksym Figat
2023 J jnl
IEEE Robotics Autom. Lett.
Maksym Figat, Cezary Zielinski
2022 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2022 J jnl
Robotics Auton. Syst.
Maksym Figat, Cezary Zielinski
2021 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2020 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2020 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2020 J jnl
IEEE Access
Maksym Figat, Cezary Zielinski
2020 conf
KKA
Cezary Zielinski
2019 J jnl
J. Intell. Robotic Syst.
Cezary Zielinski, Maksym Figat, René Hexel
2019 conf
RoMoCo
Dawid Seredynski, Tomasz Winiarski, Cezary Zielinski
2019 conf
AUTOMATION
Maksym Figat, Cezary Zielinski
2019 A* conf
ICRA
Maksym Figat, Cezary Zielinski
2019 J jnl
CoRR
Maksym Figat, Cezary Zielinski
2019 J jnl
J. Autom. Mob. Robotics Intell. Syst.
Cezary Zielinski, Krzysztof Tchon
2018 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2018 conf
AUTOMATION
Cezary Zielinski, Maksym Figat, René Hexel
2017 conf
KKA
Cezary Zielinski, Tomasz Winiarski, Tomasz Kornuta
2017 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2017 conf
RoMoCo
Maksym Figat, Cezary Zielinski, René Hexel
2017 J jnl
Cogn. Syst. Res.
Emmanouil G. Tsardoulias, Athanassios M. Kintsakis, Konstantinos Panayiotou, Aristeidis G. Thallas, Sofia E. Reppou, George Karagiannis, Miren Iturburu, Stratos Arampatzis, Cezary Zielinski, Vincent Prunet, Fotis E. Psomopoulos, Andreas L. Symeonidis, Pericles A. Mitkas
2017 J jnl
Robotics Auton. Syst.
Cezary Zielinski, Maciej Stefanczyk, Tomasz Kornuta, Maksym Figat, Wojciech Dudek, Wojciech Szynkiewicz, Wlodzimierz Kasprzak, Jan Figat, Marcin Szlenk, Tomasz Winiarski, Konrad Banachowicz, Teresa Zielinska, Emmanouil G. Tsardoulias, Andreas L. Symeonidis, Fotis E. Psomopoulos, Athanassios M. Kintsakis, Pericles A. Mitkas, Aristeidis G. Thallas, Sofia E. Reppou, George Karagiannis, Konstantinos Panayiotou, Vincent Prunet, Manuel Serrano, Jean-Pierre Merlet, Stratos Arampatzis, Alexandros Gkiokas, Lazaros Penteridis, Ilias Trochidis, David Daney, Miren Iturburu
2016 ed.
AUTOMATION
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2016 conf
AUTOMATION
Michal Walecki, Cezary Zielinski
2016 J jnl
Int. J. Soc. Robotics
Sofia Reppou, Emmanouil G. Tsardoulias, Athanassios M. Kintsakis, Andreas L. Symeonidis, Pericles A. Mitkas, Fotis E. Psomopoulos, George Karagiannis, Cezary Zielinski, Vincent Prunet, Jean-Pierre Merlet, Miren Iturburu, Alexandros Gkiokas
2016 conf
AUTOMATION
Cezary Zielinski, Maksym Figat
2015 Misc conf
MMAR
Maksym Figat, Tomasz Kornuta, Marcin Szlenk, Cezary Zielinski
2015 conf
RoMoCo
Dawid Seredynski, Tomasz Winiarski, Konrad Banachowicz, Cezary Zielinski
2015 ch.
Progress in Automation, Robotics and Measuring Techniques (2)
Emmanouil G. Tsardoulias, Cezary Zielinski, Wlodzimierz Kasprzak, Sofia Reppou, Andreas L. Symeonidis, Pericles A. Mitkas, George Karagiannis
2015 book
Progress in Automation, Robotics and Measuring Techniques
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2015 book
Progress in Automation, Robotics and Measuring Techniques (2)
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2015 ch.
Progress in Automation, Robotics and Measuring Techniques (2)
Marcin Szlenk, Cezary Zielinski, Maksym Figat, Tomasz Kornuta
2015 conf
RoMoCo
Cezary Zielinski, Wojciech Szynkiewicz, Maksym Figat, Marcin Szlenk, Tomasz Kornuta, Wlodzimierz Kasprzak, Maciej Stefanczyk, Teresa Zielinska, Jan Figat
2015 J jnl
J. Intell. Robotic Syst.
Tomasz Kornuta, Cezary Zielinski
2015 ch.
Progress in Automation, Robotics and Measuring Techniques (2)
Tomasz Kornuta, Tomasz Winiarski, Cezary Zielinski
2014 ch.
Recent Advances in Automation, Robotics and Measuring Techniques
Wlodzimierz Kasprzak, Tomasz Kornuta, Cezary Zielinski
2014 Misc conf
MMAR
Cezary Zielinski, Tomasz Kornuta, Tomasz Winiarski
2014 conf
IEEE Conf. on Intelligent Systems (2)
Cezary Zielinski, Tomasz Kornuta
2014 book
Recent Advances in Automation, Robotics and Measuring Techniques
Roman Szewczyk, Cezary Zielinski, Malgorzata Kaliczynska
2014 ch.
Recent Advances in Automation, Robotics and Measuring Techniques
Cezary Zielinski, Tomasz Kornuta
2013 J jnl
Ind. Robot
Cezary Zielinski, Wlodzimierz Kasprzak, Tomasz Kornuta, Wojciech Szynkiewicz, Piotr Trojanek, Michal Walecki, Tomasz Winiarski, Teresa Zielinska
2013 conf
RoMoCo
Piotr Trojanek, Tomasz Kornuta, Cezary Zielinski
2012 conf
SyRoCo
Cezary Zielinski, Tomasz Kornuta, Mateusz Boryn
2011 conf
ICAR
Tomasz Kornuta, Cezary Zielinski
2011 Misc conf
MMAR
Cezary Zielinski, Tomasz Kornuta
2010 J jnl
Int. J. Robotics Res.
Cezary Zielinski, Tomasz Winiarski
2010 J jnl
Robotics Auton. Syst.
Maciej Staniak, Cezary Zielinski
2009 J jnl
Adv. Robotics
Niak Wu Koh, Cezary Zielinski, Marcelo H. Ang
2008 A conf
IROS
Maciej Staniak, Tomasz Winiarski, Cezary Zielinski
2007 conf
RoMoCo
Cezary Zielinski, Tomasz Winiarski, Krzysztof Mianowski, Andrzej Rydzewski, Wojciech Szynkiewicz
2007 A* conf
ICRA
Niak Wu Koh, Cezary Zielinski, Marcelo H. Ang, Ser Yong Lim
2007 J jnl
Ind. Robot
Cezary Zielinski, Wojciech Szynkiewicz, Tomasz Winiarski, Maciej Staniak, Witold Czajewski, Tomasz Kornuta
2005 conf
RoMoCo
Cezary Zielinski, Wojciech Szynkiewicz, Tomasz Winiarski
2005 conf
RoMoCo
Tomasz Winiarski, Cezary Zielinski
2004 conf
RoMoCo
Cezary Zielinski
2003 J jnl
Ind. Robot
Cezary Zielinski, Krzysztof Mianowski, Kazimierz Nazarczuk, Wojciech Szynkiewicz
2001 J jnl
Adv. Robotics
Cezary Zielinski
1997 J jnl
Robotica
Cezary Zielinski
1992 J jnl
Robotica
Luís Gonzaga Trabasso, Cezary Zielinski
tests/integration/test_pe_extractor.py
← Index tests/integration/test_pe_extractor.py python
"""
Integration tests for the PEExtractor base class.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock

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


class TestPEExtractorInitialization:
    """Tests for PEExtractor initialization."""

    def test_pe_extractor_with_valid_pe(self, pe_binary_path, mock_logger):
        """Test PEExtractor initialization with valid PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            assert extractor.pe is not None
            assert extractor.filepath == pe_binary_path

    def test_pe_extractor_with_provided_pe_object(self, pe_binary_path, mock_logger, pe_object):
        """Test PEExtractor initialization with pre-existing PE object."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            # Should use the provided PE object, not create a new one
            assert extractor.pe is pe_object

    def test_pe_extractor_with_invalid_file(self, elf_binary_path, mock_logger):
        """Test PEExtractor initialization with non-PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            # Should return None for pe when file is not a valid PE
            assert extractor.pe is None
            # Logger should have recorded an error
            assert mock_logger.error.called


class TestPEExtractorMethods:
    """Tests for PEExtractor helper methods."""

    def test_check_dotnet_true(self, pe_binary_path, mock_logger):
        """Test _check_dotnet returns True for .NET PE."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            # The test PE file is a .NET binary
            if extractor.pe is not None:
                result = extractor._check_dotnet()
                # d8637bdbcfc9112fcb1f0167b398e771 is a .NET binary
                assert result is True

    def test_check_dotnet_false(self, elf_binary_path, mock_logger):
        """Test _check_dotnet returns False for non-PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            # Should return False when PE is None
            result = extractor._check_dotnet()
            assert result is False

    def test_is_signed_false(self, pe_binary_path, mock_logger):
        """Test _is_signed method."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            if extractor.pe is not None:
                result = extractor._is_signed()
                # Result depends on the actual binary
                assert isinstance(result, bool)

    def test_has_overlay(self, pe_binary_path, mock_logger):
        """Test _has_overlay method."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            if extractor.pe is not None:
                result = extractor._has_overlay()
                assert isinstance(result, bool)


class TestGeneratePEFileObject:
    """Tests for _generate_pefile_object method."""

    def test_generate_pefile_object_valid(self, pe_binary_path, mock_logger):
        """Test _generate_pefile_object with valid PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            # The PE object should be created successfully
            assert extractor.pe is not None

    def test_generate_pefile_object_invalid(self, temp_text_file, mock_logger):
        """Test _generate_pefile_object with invalid file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            # Should return None for invalid PE
            assert extractor.pe is None


class TestGenerateDotNetFileObject:
    """Tests for _generate_dotnetfile_object method."""

    def test_generate_dotnetfile_object_valid(self, pe_binary_path, mock_logger):
        """Test _generate_dotnetfile_object with .NET PE file."""
        from redb.extractors.pe_extractors.pe_dotnet import PEDotNetExtractor

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

            if extractor.pe is not None and extractor._check_dotnet():
                dotnet, error = extractor._generate_dotnetfile_object()
                # Should create dotnet object for .NET PE
                assert dotnet is not None
                assert error is None

    def test_generate_dotnetfile_object_invalid(self, elf_binary_path, mock_logger):
        """Test _generate_dotnetfile_object with non-.NET file."""
        from redb.extractors.pe_extractors.pe_dotnet import PEDotNetExtractor

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

            dotnet, error = extractor._generate_dotnetfile_object()
            # Should return error for non-.NET file
            assert dotnet is None
            assert error is not None


class TestPEExtractorTag:
    """Tests for tag method in PE extractors."""

    def test_pe_features_tag(self, pe_binary_path, mock_logger):
        """Test that PEFeaturesExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_FEATURES.value

    def test_pe_import_tag(self, pe_binary_path, mock_logger):
        """Test that PEImportExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_imports import PEImportExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEImportExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_IMPORT.value

    def test_pe_section_tag(self, pe_binary_path, mock_logger):
        """Test that PESectionExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_sections import PESectionExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PESectionExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_SECTION.value


class TestPEExtractorClickHouseTable:
    """Tests for get_clickhouse_table method in PE extractors."""

    def test_pe_features_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PEFeaturesExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_features"

    def test_pe_import_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PEImportExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_imports import PEImportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEImportExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_imports"

    def test_pe_section_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PESectionExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_sections import PESectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PESectionExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_sections"


class TestPEExtractorPrepareExportData:
    """Tests for prepare_export_data method in PE extractors."""

    def test_pe_features_prepare_export_elasticsearch(self, pe_binary_path, mock_logger):
        """Test prepare_export_data for Elasticsearch."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            if extractor.pe is not None:
                # First extract
                extractor.extract()
                result = extractor.prepare_export_data("ElasticsearchExporter")
                # Should return the pe_features dataclass
                assert result is extractor.pe_features

    def test_pe_features_prepare_export_clickhouse(self, pe_binary_path, mock_logger):
        """Test prepare_export_data for ClickHouse."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

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

            if extractor.pe is not None:
                # 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)