idea195-genomeloom-verifiab.../tests/test_signature.py

28 lines
891 B
Python

from genomeloom.signature import generate_behavioral_signature, signature_summary
def test_signature_determinism():
seq = ["open", "read", "close", "open", "write", "close"]
imports = ["wasi::fd_read", "wasi::fd_write"]
s1 = generate_behavioral_signature(seq, imports)
s2 = generate_behavioral_signature(seq, imports)
assert s1 == s2
def test_signature_changes_on_sequence():
seq1 = ["open", "read", "close"]
seq2 = ["open", "write", "close"]
imports = []
s1 = generate_behavioral_signature(seq1, imports)
s2 = generate_behavioral_signature(seq2, imports)
assert s1 != s2
def test_signature_summary_structure():
seq = ["socket", "connect", "send", "recv", "close"]
imports = ["net"]
summary = signature_summary(seq, imports)
assert "ngrams" in summary
assert "imports" in summary
assert summary["imports"] == ["net"]