Skip to content

Commit a6a484f

Browse files
committed
Add some minimal tests and fix a mistake
1 parent 17b018e commit a6a484f

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

manim/mobject/svg/text_mobject.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ def text2svg(self):
867867
fontdesc = pangocffi.FontDescription()
868868
fontdesc.set_size(pangocffi.units_from_double(size))
869869
if family:
870-
fontdesc.set_family("sans-serif")
870+
fontdesc.set_family(family)
871871
fontdesc.set_style(style)
872872
fontdesc.set_weight(weight)
873873
layout.set_font_description(fontdesc)

tests/test_pango.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
from manim import PangoText,START_X,START_Y,SVGMobject
2+
import os
3+
import cairocffi
4+
import pangocairocffi
5+
import pangocffi
6+
7+
def test_general_text_svgobject():
8+
"""Checks number of submobjects generated when directly called using ``SVGMobject``"""
9+
text = "hello"
10+
size=1
11+
folder = os.path.abspath(os.path.join("media","texts"))
12+
if not os.path.exists(folder):
13+
os.makedirs(folder)
14+
filename = os.path.join(folder,'hello.svg')
15+
a=PangoText(text,size=10)
16+
pangoManim = os.path.join(folder,a.text2hash()+'.svg')
17+
surface = cairocffi.SVGSurface(filename, 600, 400)
18+
context = cairocffi.Context(surface)
19+
context.move_to(START_X, START_Y)
20+
layout = pangocairocffi.create_layout(context)
21+
layout.set_width(pangocffi.units_from_double(600))
22+
fontdesc = pangocffi.FontDescription()
23+
fontdesc.set_size(pangocffi.units_from_double(size * 10))
24+
layout.set_font_description(fontdesc)
25+
layout.set_text(text)
26+
pangocairocffi.show_layout(context, layout)
27+
surface.finish()
28+
b = SVGMobject(filename)
29+
assert len(a.submobjects) == len(b.submobjects)
30+
31+
def test_render_text_svgobject():
32+
"""Checks number of submobjects generated when directly called using ``SVGMobject``"""
33+
text = "臂猿「黛比」帶著孩子"
34+
size=1
35+
folder = os.path.abspath(os.path.join("media","texts"))
36+
if not os.path.exists(folder):
37+
os.makedirs(folder)
38+
filename = os.path.join(folder,'hello1.svg')
39+
a=PangoText(text,size=10,font="amiri")
40+
pangoManim = os.path.join(folder,a.text2hash()+'.svg')
41+
surface = cairocffi.SVGSurface(filename, 600, 400)
42+
context = cairocffi.Context(surface)
43+
context.move_to(START_X, START_Y)
44+
layout = pangocairocffi.create_layout(context)
45+
layout.set_width(pangocffi.units_from_double(600))
46+
fontdesc = pangocffi.FontDescription()
47+
fontdesc.set_family("amiri")
48+
fontdesc.set_size(pangocffi.units_from_double(size * 10))
49+
layout.set_font_description(fontdesc)
50+
layout.set_text(text)
51+
pangocairocffi.show_layout(context, layout)
52+
surface.finish()
53+
b = SVGMobject(filename)
54+
assert len(a.submobjects) == len(b.submobjects)

0 commit comments

Comments
 (0)