Compare commits

2 Commits

Author SHA1 Message Date
53adb58525 exposed lifeline-style in _evt
All checks were successful
CI / tests (push) Successful in 26s
fixes #22
2026-01-21 13:48:03 +01:00
771bfdc0ea added tests for lifelines 2026-01-21 13:42:50 +01:00
23 changed files with 264 additions and 3 deletions

View File

@@ -1,7 +1,8 @@
/// Manually adds an event to the given participant
/// - participant (str): The participant concerned by the event
/// - event (str): The event type (see @@EVENTS for ccepted values)
#let _evt(participant, event) = {}
/// - lifeline-style (auto, dict): See @@_seq()
#let _evt(participant, event, lifeline-style: auto) = {}
/// Creates a sequence / message between two participants
/// - p1 (str): Start participant

Binary file not shown.

View File

@@ -42,13 +42,13 @@
),)
}
#let _evt(participant, event) = {
#let _evt(participant, event, lifeline-style: auto) = {
return ((
type: "evt",
draw: evt-render,
participant: participant,
event: event,
lifeline-style: auto
lifeline-style: lifeline-style
),)
}

View File

@@ -0,0 +1,4 @@
# generated by tytanic, do not edit
diff/**
out/**

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -0,0 +1,32 @@
#set page(width: auto, height: auto)
#import "/src/lib.typ": *
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
// Left to right
_seq("a", "b", create-dst: true)
_seq("a", "b", enable-dst: true)
_seq("a", "b", enable-dst: true)
_gap()
_seq("a", "b", destroy-dst: true)
_gap()
_seq("a", "b", destroy-dst: true)
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
// Right to left
_seq("b", "a", create-dst: true)
_seq("b", "a", enable-dst: true)
_seq("b", "a", enable-dst: true)
_gap()
_seq("b", "a", destroy-dst: true)
_gap()
_seq("b", "a", destroy-dst: true)
})

View File

@@ -0,0 +1,4 @@
# generated by tytanic, do not edit
diff/**
out/**

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@@ -0,0 +1,110 @@
#set page(width: auto, height: auto)
#import "/src/lib.typ": *
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
// Left to right
_seq("a", "b")
_seq("a", "b", enable-dst: true)
_seq("a", "b")
_seq("a", "b", enable-dst: true)
_seq("a", "b")
_seq("a", "b", disable-dst: true)
_seq("a", "b")
_seq("a", "b", disable-dst: true)
_seq("a", "b")
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
// Right to left
_seq("b", "a")
_seq("b", "a", enable-dst: true)
_seq("b", "a")
_seq("b", "a", enable-dst: true)
_seq("b", "a")
_seq("b", "a", disable-dst: true)
_seq("b", "a")
_seq("b", "a", disable-dst: true)
_seq("b", "a")
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
// Self right
_seq("a", "a")
_seq("a", "a", enable-dst: true)
_seq("a", "a")
_seq("a", "a", enable-dst: true)
_seq("a", "a")
_seq("a", "a", disable-dst: true)
_seq("a", "a")
_seq("a", "a", disable-dst: true)
_seq("a", "a")
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
let _seq = _seq.with(flip: true)
// Self left
_seq("b", "b")
_seq("b", "b", enable-dst: true)
_seq("b", "b")
_seq("b", "b", enable-dst: true)
_seq("b", "b")
_seq("b", "b", disable-dst: true)
_seq("b", "b")
_seq("b", "b", disable-dst: true)
_seq("b", "b")
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
// Disable src (rtl)
_seq("a", "b")
_seq("a", "b", enable-dst: true)
_seq("a", "b")
_seq("a", "b", enable-dst: true)
_seq("a", "b")
_seq("b", "a", disable-src: true)
_seq("a", "b")
_seq("b", "a", disable-src: true)
_seq("a", "b")
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
// Disable src (ltr)
_seq("b", "a")
_seq("b", "a", enable-dst: true)
_seq("b", "a")
_seq("b", "a", enable-dst: true)
_seq("b", "a")
_seq("a", "b", disable-src: true)
_seq("b", "a")
_seq("a", "b", disable-src: true)
_seq("b", "a")
})

4
tests/lifeline/event/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# generated by tytanic, do not edit
diff/**
out/**

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,75 @@
#set page(width: auto, height: auto)
#import "/src/lib.typ": *
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
_evt("a", "enable")
_gap()
_seq("a", "b")
_evt("a", "disable")
_gap()
_evt("a", "enable")
_evt("b", "enable")
_seq("a", "b")
_evt("a", "enable")
_evt("b", "enable")
_gap()
_seq("a", "b")
_evt("a", "disable")
_evt("b", "disable")
_gap()
_evt("a", "disable")
_evt("b", "disable")
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
_par("c", display-name: "Charlie")
_seq("a", "b")
_gap()
_seq("a", "b", enable-dst: true)
_evt("c", "create")
_seq("c", "a")
_evt("b", "destroy")
})
#pagebreak()
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
_seq("a", "b")
_evt("b", "enable")
_seq("a", "b")
_evt("b", "enable", lifeline-style: (fill: red))
_gap()
_seq("b", "a")
_evt("b", "disable")
_seq("a", "b")
_evt("b", "enable", lifeline-style: (
stroke: (
paint: green,
dash: "dashed",
thickness: 2pt
)
))
_gap()
_seq("b", "a")
_evt("b", "disable")
_seq("b", "a")
_evt("b", "disable")
_seq("a", "b")
_evt("b", "enable", lifeline-style: (
radius: 4pt
))
_gap()
_seq("b", "a")
_evt("b", "disable")
})

4
tests/lifeline/style/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# generated by tytanic, do not edit
diff/**
out/**

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,27 @@
#set page(width: auto, height: auto)
#import "/src/lib.typ": *
#diagram({
_par("a", display-name: "Alice")
_par("b", display-name: "Bob")
_seq("a", "b", enable-dst: true)
_seq("a", "b", enable-dst: true, lifeline-style: (fill: red))
_gap()
_seq("b", "a", disable-src: true)
_seq("a", "b", enable-dst: true, lifeline-style: (
stroke: (
paint: green,
dash: "dashed",
thickness: 2pt
)
))
_gap()
_seq("b", "a", disable-src: true)
_seq("b", "a", disable-src: true)
_seq("a", "b", enable-dst: true, lifeline-style: (
radius: 4pt
))
_gap()
_seq("b", "a", disable-src: true)
})