28 lines
891 B
Python
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"]
|