Magdalena D. Bugajska

36 papers A* 8A 1B 6Journal 11Unranked 9
YearRankTypeTitle / Venue / Authors
2020 B conf
ICSR
Ben Wright, Magdalena D. Bugajska, William Adams, Ed Lawson, J. Malcolm McCurry, J. Gregory Trafton
2018 conf
AMC
Daniel M. Lofaro, Colin Ward, Magdalena D. Bugajska, Donald Sofge
2018 conf
UR
Keitaro Nishimura, Magdalena D. Bugajska, Jean Chagas Vaz, Paul Y. Oh, Donald Sofge, Daniel M. Lofaro
2017 B conf
RO-MAN
Priya Narayanan, Magdalena D. Bugajska, Wallace Lawson, J. Gregory Trafton
2010 J jnl
IEEE Trans. Syst. Man Cybern. Part B
Nicholas L. Cassimatis, Perrin G. Bignoli, Magdalena D. Bugajska, Scott Dugas, Unmesh Kurup, Arthi Murugesan, Paul Bello
2010 conf
CVPR Workshops
Benjamin R. Fransen, Wallace E. Lawson, Magdalena D. Bugajska
2009 J jnl
Int. J. Soc. Robotics
William G. Kennedy, Magdalena D. Bugajska, Anthony M. Harrison, J. Gregory Trafton
2009 A* conf
HRI
Sarah Kriz, Gregory Anderson, Magdalena D. Bugajska, J. Gregory Trafton
2008 conf
AGI
Nicholas L. Cassimatis, Arthi Murugesan, Magdalena D. Bugajska
2008 A* conf
AAAI
William G. Kennedy, Magdalena D. Bugajska, William Adams, Alan C. Schultz, J. Gregory Trafton
2008 A* conf
HRI
J. Gregory Trafton, Magdalena D. Bugajska, Benjamin R. Fransen, Raj M. Ratwani
2007 A* conf
AAAI
Nicholas L. Cassimatis, Magdalena D. Bugajska, Scott Dugas, Arthi Murugesan, Paul Bello
2007 J jnl
CoRR
Donald Sofge, Mitchell A. Potter, Magdalena D. Bugajska, Alan C. Schultz
2007 A* conf
AAAI
William G. Kennedy, Magdalena D. Bugajska, Matthew Marge, William Adams, Benjamin R. Fransen, Dennis Perzanowski, Alan C. Schultz, J. Gregory Trafton
2006 B conf
SMC
Terrence Fong, Jean Scholtz, Julie A. Shah, Lorenzo Flückiger, Clayton Kunz, David Lees, John Schreiner, Michael D. Siegel, Laura M. Hiatt, Illah R. Nourbakhsh, Reid G. Simmons, Robert O. Ambrose, Robert R. Burridge, Brian Antonishek, Magdalena D. Bugajska, Alan C. Schultz, J. Gregory Trafton
2006 A* conf
HRI
J. Gregory Trafton, Alan C. Schultz, Dennis Perzanowski, Magdalena D. Bugajska, William Adams, Nicholas L. Cassimatis, Derek P. Brock
2006 J jnl
AI Mag.
Paul E. Rybski, Sheila Tejada, Douglas Blank, Ashley W. Stroupe, Magdalena D. Bugajska, Lloyd G. Greenwald
2006 A* conf
HRI
Terrence Fong, Clayton Kunz, Laura M. Hiatt, Magdalena D. Bugajska
2005 J jnl
Int. J. Humanoid Robotics
Donald Sofge, Magdalena D. Bugajska, J. Gregory Trafton, Dennis Perzanowski, Scott Thomas, Marjorie Skubic, Samuel Blisard, Nicholas L. Cassimatis, Derek P. Brock, William Adams, Alan C. Schultz
2005 J jnl
IEEE Trans. Syst. Man Cybern. Part A
J. Gregory Trafton, Nicholas L. Cassimatis, Magdalena D. Bugajska, Derek P. Brock, Farilee Mintz, Alan C. Schultz
2005 B conf
RO-MAN
J. Gregory Trafton, Alan C. Schultz, Magdalena D. Bugajska, Farilee Mintz
2005 A* conf
AAAI
Magdalena D. Bugajska, William Adams, Scott Thomas, J. Gregory Trafton, Alan C. Schultz
2005 J jnl
AI Mag.
William D. Smart, Sheila Tejada, Bruce A. Maxwell, Ashley W. Stroupe, Jennifer Casper, Adam Jacoff, Holly A. Yanco, Magdalena D. Bugajska
2004 conf
Humanoids
William Bluethmann, Robert O. Ambrose, Myron A. Diftler, Eric Huber, Andrew H. Fagg, Michael T. Rosenstein, Robert Platt Jr., Roderic A. Grupen, Cynthia Breazeal, Andrew G. Brooks, Andrea Lockerd, Richard Alan Peters II, Odest Chadwicke Jenkins, Maja J. Mataric, Magdalena D. Bugajska
2004 J jnl
Robotics Auton. Syst.
Nicholas L. Cassimatis, J. Gregory Trafton, Magdalena D. Bugajska, Alan C. Schultz
2004 J jnl
IEEE Trans. Syst. Man Cybern. Part C
Marjorie Skubic, Dennis Perzanowski, Samuel Blisard, Alan C. Schultz, William Adams, Magdalena D. Bugajska, Derek P. Brock
2003 ed.
AAAI Mobile Robot Competition
William D. Smart, Bill Smart, Magdalena D. Bugajska
2003 B conf
IEEE Congress on Evolutionary Computation
Magdalena D. Bugajska, Alan C. Schultz
2003 B conf
SMC
Dennis Perzanowski, Derek P. Brock, William Adams, Magdalena D. Bugajska, Alan C. Schultz, J. Gregory Trafton, Samuel Blisard, Marjorie Skubic
2003 conf
AAAI Mobile Robot Competition
Reid G. Simmons, Allison Bruce, Dani Goldberg, Adam Goode, Michael Montemerlo, Nicholas Roy, Brennan Sellner, Chris Urmson, Alan C. Schultz, William Adams, Magdalena D. Bugajska, Matt MacMahon, Jessica Mink, Dennis Perzanowski, Stephanie Rosenthal, Scott Thomas, Ian Horswill, Robert Zubek, David Kortenkamp, Bryn Wolfe, Tod Milam, Bruce A. Maxwell
2003 J jnl
AI Mag.
Reid G. Simmons, Dani Goldberg, Adam Goode, Michael Montemerlo, Nicholas Roy, Brennan Sellner, Chris Urmson, Alan C. Schultz, Myriam Abramson, William Adams, Amin Atrash, Magdalena D. Bugajska, Michael J. Coblenz, Matt MacMahon, Dennis Perzanowski, Ian Horswill, Robert Zubek, David Kortenkamp, Bryn Wolfe, Tod Milam, Bruce A. Maxwell
2002 A conf
IROS
Magdalena D. Bugajska, Alan C. Schultz, J. Gregory Trafton, Matthew Taylor, Farilee Mintz
2002 conf
Evolvable Hardware
Magdalena D. Bugajska, Alan C. Schultz
2002 conf
AAAI Mobile Robot Competition
Reid G. Simmons, Dani Goldberg, Adam Goode, Michael Montemerlo, Nicholas Roy, Brennan Sellner, Chris Urmson, Alan C. Schultz, Myriam Abramson, William Adams, Amin Atrash, Magdalena D. Bugajska, Michael J. Coblenz, Matt MacMahon, Dennis Perzanowski, Ian Horswill, Robert Zubek, David Kortenkamp, Bryn Wolfe, Tod Milam, Bruce A. Maxwell
2001 J jnl
IEEE Intell. Syst.
Dennis Perzanowski, Alan C. Schultz, William Adams, Elaine Marsh, Magdalena D. Bugajska
1999 conf
Agents
Robin R. Murphy, Michelle Ausmus, Magdalena D. Bugajska, Tanya Ellis, Tonia Johnson, Nia Kelley, Jodi Kiefer, Lisa Pollock
tests/unit/test_decompile_utils.py
← Index tests/unit/test_decompile_utils.py python
"""Unit tests for decompiler utility modules:
- bninja/utils/hashes.py
- bninja/utils/json_encoder.py
- bninja/analysis/low_level_normalization.py
"""
import hashlib
import json
import pytest


# ============================================================================
# 1a. hashes.py
# ============================================================================

from redb.extractors.decompiler.bninja.utils.hashes import (
    calculate_md5,
    calculate_sha256,
    calculate_tlsh,
)


class TestCalculateMD5:
    def test_calculate_md5_known_value(self):
        expected = hashlib.md5(b"test").hexdigest()
        assert calculate_md5("test") == expected

    def test_calculate_md5_empty(self):
        expected = hashlib.md5(b"").hexdigest()
        assert calculate_md5("") == expected


class TestCalculateSHA256:
    def test_calculate_sha256_known_value(self):
        expected = hashlib.sha256(b"hello world").hexdigest()
        assert calculate_sha256("hello world") == expected

    def test_calculate_sha256_empty_string(self):
        result = calculate_sha256("")
        assert len(result) == 64
        assert all(c in "0123456789abcdef" for c in result)


class TestCalculateTLSH:
    def test_calculate_tlsh_long_data(self):
        # TLSH requires >= 50 bytes
        data = "A" * 100
        result = calculate_tlsh(data)
        assert result is not None
        assert isinstance(result, str)

    def test_calculate_tlsh_short_data(self):
        data = "A" * 10
        result = calculate_tlsh(data)
        assert result is None

    def test_calculate_tlsh_deterministic(self):
        data = "x" * 200
        assert calculate_tlsh(data) == calculate_tlsh(data)



# ============================================================================
# 1b. json_encoder.py
# ============================================================================

from redb.extractors.decompiler.bninja.utils.json_encoder import BinaryNinjaEncoder


class TestBinaryNinjaEncoder:
    def test_encode_value_confidence_object(self):
        obj = type("VC", (), {"value": 42, "confidence": 255})()
        result = json.dumps(obj, cls=BinaryNinjaEncoder)
        assert json.loads(result) == 42

    def test_encode_str_fallback(self):
        obj = type("Obj", (), {"__str__": lambda self: "custom_repr"})()
        result = json.dumps(obj, cls=BinaryNinjaEncoder)
        assert json.loads(result) == "custom_repr"

    def test_encode_normal_types(self):
        data = {"a": 1, "b": [2, 3], "c": "hello"}
        result = json.dumps(data, cls=BinaryNinjaEncoder)
        assert json.loads(result) == data

    def test_encode_set_via_str(self):
        # Python sets have __str__, so BinaryNinjaEncoder converts them
        # to their string repr instead of raising TypeError.
        result = json.dumps(set([1, 2, 3]), cls=BinaryNinjaEncoder)
        parsed = json.loads(result)
        assert isinstance(parsed, str)
        assert "1" in parsed


# ============================================================================
# 1c. low_level_normalization.py
# ============================================================================

from redb.extractors.decompiler.bninja.analysis.low_level_normalization import (
    LowLevelNormalization,
)


class MockIL:
    """Mock IL node for normalization tests."""
    def __init__(self, operation, operands=None):
        self.operation = operation
        self.operands = operands or []


class TestLowLevelNormalization:
    def setup_method(self):
        self.normalizer = LowLevelNormalization()

    def test_normalize_single_instruction(self):
        node = MockIL(operation=5)
        result = self.normalizer.normalize_instruction_all_levels(node)
        assert result == [5]

    def test_normalize_nested_operands(self):
        child1 = MockIL(operation=10)
        child2 = MockIL(operation=20)
        root = MockIL(operation=1, operands=[child1, child2])
        result = self.normalizer.normalize_instruction_all_levels(root)
        assert result == [1, 10, 20]

    def test_normalize_empty_operands(self):
        node = MockIL(operation=42, operands=[])
        result = self.normalizer.normalize_instruction_all_levels(node)
        assert result == [42]

    def test_normalize_list_operands(self):
        # Simulates phi-node style list operands
        inner = MockIL(operation=99)
        node = MockIL(operation=7, operands=[[inner]])
        result = self.normalizer.normalize_instruction_all_levels(node)
        assert result == [7, 99]

    def test_normalize_none_input(self):
        result = self.normalizer.normalize_instruction_all_levels(None)
        assert result == []