MCPcopy
hub / github.com/tdewolff/canvas / TestPathMarkersAligned

Function TestPathMarkersAligned

path_test.go:526–564  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

524}
525
526func TestPathMarkersAligned(t *testing.T) {
527 start := MustParseSVGPath("L1 0L0 1z")
528 mid := MustParseSVGPath("M-1 0A1 1 0 0 0 1 0z")
529 end := MustParseSVGPath("L-1 0L0 1z")
530 var tts = []struct {
531 p string
532 rs []string
533 }{
534 {"M10 0", []string{"M10 0L11 0L10 1z"}},
535 {"M10 0L20 10", []string{"M10 0L10.707 0.707L9.293 0.707z", "M20 10L19.293 9.293L19.293 10.707z"}},
536 {"L10 0L20 10", []string{"L1 0L0 1z", "M9.076 -0.383A1 1 0 0 0 10.924 0.383z", "M20 10L19.293 9.293L19.293 10.707z"}},
537 {"L10 0L20 10z", []string{"L0.230 -0.973L0.973 0.230z", "M9.076 -0.383A1 1 0 0 0 10.924 0.383z", "M20.585 9.189A1 1 0 0 0 19.415 10.811z", "L-0.230 0.973L0.973 0.230z"}},
538 {"M10 0L20 10M30 0L40 10", []string{"M10 0L10.707 0.707L9.293 0.707z", "M19.293 9.293A1 1 0 0 0 20.707 10.707z", "M29.293 -0.707A1 1 0 0 0 30.707 0.707z", "M40 10L39.293 9.293L39.293 10.707z"}},
539 {"Q0 10 10 10Q20 10 20 0", []string{"L0 1L-1 0z", "M9 10A1 1 0 0 0 11 10z", "M20 0L20 1L21 0z"}},
540 {"C0 6.66667 3.33333 10 10 10C16.66667 10 20 6.66667 20 0", []string{"L0 1L-1 0z", "M9 10A1 1 0 0 0 11 10z", "M20 0L20 1L21 0z"}},
541 {"A10 10 0 0 0 10 10A10 10 0 0 0 20 0", []string{"L0 1L-1 0z", "M9 10A1 1 0 0 0 11 10z", "M20 0L20 1L21 0z"}},
542 }
543 origEpsilon := Epsilon
544 for _, tt := range tts {
545 t.Run(tt.p, func(t *testing.T) {
546 Epsilon = origEpsilon
547 p := MustParseSVGPath(tt.p)
548 ps := p.Markers(start, mid, end, true)
549 Epsilon = 1e-3
550 if len(ps) != len(tt.rs) {
551 origs := []string{}
552 for _, p := range ps {
553 origs = append(origs, p.String())
554 }
555 test.T(t, strings.Join(origs, "\n"), strings.Join(tt.rs, "\n"))
556 } else {
557 for i, p := range ps {
558 test.T(t, p, MustParseSVGPath(tt.rs[i]))
559 }
560 }
561 })
562 }
563 Epsilon = origEpsilon
564}
565
566func TestPathSplit(t *testing.T) {
567 var tts = []struct {

Callers

nothing calls this directly

Calls 6

MustParseSVGPathFunction · 0.85
MarkersMethod · 0.80
TMethod · 0.80
JoinMethod · 0.65
RunMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected