@@ -364,3 +364,59 @@ def test_mathtext_to_png(tmpdir):
364
364
mt = mathtext .MathTextParser ('bitmap' )
365
365
mt .to_png (str (tmpdir .join ('example.png' )), '$x^2$' )
366
366
mt .to_png (io .BytesIO (), '$x^2$' )
367
+
368
+
369
+ def test_mathtext_fontset ():
370
+ #This is my first time doing this kinds of tests, so I am not sure if I am
371
+ #doing it the right way, here's my plan for this testing:
372
+ #
373
+ #1) Create two figures, one without my implementation
374
+ # (should produce 2 texts with the same font)
375
+ # and one with (should create two texts with different fonts)
376
+ #2) Save the figures on Disk
377
+ #3) Load the figures and compare them, if they are equal, the test fails
378
+ #4) Delete the figures
379
+ #
380
+ # I am making the test a bit slower but avoiding the burden of adding
381
+ # more figures to the repo. On my computer at least, the time for this
382
+ # test was of the order of a few seconds.
383
+
384
+ plt .rcParams ["mathtext.fontset" ] = "dejavusans"
385
+
386
+ #figure 1 setup
387
+ #this figure IS NOT using the 'fontset' argument, therefore,
388
+ #the font should be equal to the font set in rcParams["mathtext.fontset"]
389
+ f1 , ax1 = plt .subplots (figsize = (12 ,10 ))
390
+ ax1 .plot (range (11 ),color = "0.9" )
391
+ ax1 .text (0.2 ,9 ,r"$\mathit{This\ text\ should\ have\ a\ one\ font} $" ,
392
+ size = 18 )
393
+
394
+ ax1 .text (0.2 ,8 ,r"$\mathit{This\ text\ should\ have\ another} $" ,
395
+ size = 18 )
396
+
397
+ #figure 2 setup
398
+ #this figure IS using the 'fontset' parameter and must have two texts
399
+ #with distinct fonts in the final image
400
+ f2 , ax2 = plt .subplots (figsize = (12 ,10 ))
401
+ ax2 .plot (range (11 ),color = "0.9" )
402
+ ax2 .text (0.2 ,9 ,r"$\mathit{This\ text\ should\ have\ a\ one\ font} $" ,
403
+ size = 18 , fontset = 'dejavusans' )
404
+
405
+ ax2 .text (0.2 ,8 ,r"$\mathit{This\ text\ should\ have\ another} $" ,
406
+ size = 18 , fontset = 'dejavuserif' )
407
+
408
+ f1 .savefig ('mathtext_fontset_image1.png' )
409
+ f2 .savefig ('mathtext_fontset_image2.png' )
410
+
411
+ figureLoaded1 = io .FileIO ('mathtext_fontset_image1.png' ).readall ()
412
+ figureLoaded2 = io .FileIO ('mathtext_fontset_image2.png' ).readall ()
413
+
414
+ figuresEqual = figureLoaded1 == figureLoaded2
415
+
416
+ os .remove ('mathtext_fontset_image1.png' )
417
+ os .remove ('mathtext_fontset_image2.png' )
418
+
419
+ #if the parameter fontset is not working, the figures will be equal and the
420
+ #test will fail
421
+ assert not figuresEqual
422
+
0 commit comments