///|
fn trace(labels : Array[String]) -> @lens.CaseTrace raise {
let events = []
for i, label in labels {
events.push(
@lens.LogEvent::new(
"e\{i}",
"reference",
label,
i.to_int64() * 10L,
i.to_int64() * 10L + 1L,
),
)
}
@lens.CaseTrace::new("reference", events)
}
///|
fn parallel() -> @lens.BpmnModel raise {
@lens.BpmnModel::new(
[
{ id: "start", kind: Start, activity: None, },
{ id: "split", kind: Parallel, activity: None, },
{ id: "a", kind: Task, activity: Some("A"), },
{ id: "b", kind: Task, activity: Some("B"), },
{ id: "join", kind: Parallel, activity: None, },
{ id: "end", kind: End, activity: None, },
],
[
{ id: "f0", source: "start", target: "split", },
{ id: "f1", source: "split", target: "a", },
{ id: "f2", source: "split", target: "b", },
{ id: "f3", source: "a", target: "join", },
{ id: "f4", source: "b", target: "join", },
{ id: "f5", source: "join", target: "end", },
],
)
}
///|
fn probe(
name : String,
net : @lens.PetriNet,
maximum_length : Int32,
) -> Unit raise {
let observations : Array[Json] = []
for length in 0..<(maximum_length + 1) {
let mut count = 1
for _ in 0..