Browse Source

Load Latin words from a resource file instead of hardcoding them (removes false positives from mutation testing)

Marcin Ziąbek 2 months ago
parent
commit
cf1f092df0
2 changed files with 1015 additions and 32 deletions
  1. 15 32
      Source/QuestPDF/Helpers/Placeholders.cs
  2. 1000 0
      Source/QuestPDF/Resources/LatinWords.txt

+ 15 - 32
Source/QuestPDF/Helpers/Placeholders.cs

@@ -1,5 +1,7 @@
 using System;
+using System.IO;
 using System.Linq;
+using System.Reflection;
 using QuestPDF.Infrastructure;
 using QuestPDF.Skia;
 
@@ -25,41 +27,22 @@ namespace QuestPDF.Helpers
             "occaecat cupidatat non proident, sunt in culpa qui officia deserunt " +
             "mollit anim id est laborum.";
 
-        private static readonly string[] LatinWords =
-        {
-            "exercitationem", "perferendis", "perspiciatis", "laborum", "eveniet",
-            "sunt", "iure", "nam", "nobis", "eum", "cum", "officiis", "excepturi",
-            "odio", "consectetur", "quasi", "aut", "quisquam", "vel", "eligendi",
-            "itaque", "non", "odit", "tempore", "quaerat", "dignissimos",
-            "facilis", "neque", "nihil", "expedita", "vitae", "vero", "ipsum",
-            "nisi", "animi", "cumque", "pariatur", "velit", "modi", "natus",
-            "iusto", "eaque", "sequi", "illo", "sed", "ex", "et", "voluptatibus",
-            "tempora", "veritatis", "ratione", "assumenda", "incidunt", "nostrum",
-            "placeat", "aliquid", "fuga", "provident", "praesentium", "rem",
-            "necessitatibus", "suscipit", "adipisci", "quidem", "possimus",
-            "voluptas", "debitis", "sint", "accusantium", "unde", "sapiente",
-            "voluptate", "qui", "aspernatur", "laudantium", "soluta", "amet",
-            "quo", "aliquam", "saepe", "culpa", "libero", "ipsa", "dicta",
-            "reiciendis", "nesciunt", "doloribus", "autem", "impedit", "minima",
-            "maiores", "repudiandae", "ipsam", "obcaecati", "ullam", "enim",
-            "totam", "delectus", "ducimus", "quis", "voluptates", "dolores",
-            "molestiae", "harum", "dolorem", "quia", "voluptatem", "molestias",
-            "magni", "distinctio", "omnis", "illum", "dolorum", "voluptatum", "ea",
-            "quas", "quam", "corporis", "quae", "blanditiis", "atque", "deserunt",
-            "laboriosam", "earum", "consequuntur", "hic", "cupiditate",
-            "quibusdam", "accusamus", "ut", "rerum", "error", "minus", "eius",
-            "ab", "ad", "nemo", "fugit", "officia", "at", "in", "id", "quos",
-            "reprehenderit", "numquam", "iste", "fugiat", "sit", "inventore",
-            "beatae", "repellendus", "magnam", "recusandae", "quod", "explicabo",
-            "doloremque", "aperiam", "consequatur", "asperiores", "commodi",
-            "optio", "dolor", "labore", "temporibus", "repellat", "veniam",
-            "architecto", "est", "esse", "mollitia", "nulla", "a", "similique",
-            "eos", "alias", "dolore", "tenetur", "deleniti", "porro", "facere",
-            "maxime", "corrupti"
-        };
+        private static readonly string[] LatinWords = LoadLatinWords();
         
         private static readonly string[] LongLatinWords = LatinWords.Where(x => x.Length > 8).ToArray();
 
+        private static string[] LoadLatinWords()
+        {
+            using var stream = Assembly
+                .GetExecutingAssembly()
+                .GetManifestResourceStream("QuestPDF.Resources.LatinWords.txt");
+        
+            using var streamReader = new StreamReader(stream);
+            var text = streamReader.ReadToEnd();
+
+            return text.Split('\n').ToArray();
+        }
+        
         #endregion
 
         #region Text

+ 1000 - 0
Source/QuestPDF/Resources/LatinWords.txt

@@ -0,0 +1,1000 @@
+ut
+sum
+eius
+quod
+ipse
+fuit
+nam
+in
+sunt
+cum
+illi
+esse
+at
+unum
+habent
+hoc
+de
+by
+calidum
+verbo
+sed
+quod
+aliqua
+est
+quod
+vos
+vel
+quod
+in
+de
+ut
+et
+a
+in
+nos
+potest
+ex
+alia
+erant
+quibus
+facite
+eorum
+tempore
+si
+voluntas
+quam
+Dixitque
+an
+quisque
+indica
+quod
+set
+tribus
+volo
+aer
+etiam
+etiam
+fabula
+parva
+finem
+posuit
+domum
+lego
+manibus
+portus
+magna
+eamque
+addunt
+etiam
+terra
+hic
+necesse
+magnum
+princeps
+talis
+sequitur
+actum
+quid
+quaeris
+homines
+mutatio
+abiit
+lucem
+quaedam
+off
+opus
+domus
+ipsum
+tentant
+nos
+rursus
+pecus
+punctum
+mater
+orbis
+prope
+ædificabis
+ipsum
+terra
+pater
+aliqua
+novum
+opus
+pars
+accipe
+adepto
+pro eo
+factum
+vivo
+ubi
+postquam
+rursus
+parum
+nisi
+per
+hominis
+anno
+factum
+ostende
+omnis
+bonum
+me
+dabit
+nostrum
+sub
+nomen
+ipsum
+per
+iustus
+forma
+sententia
+magna
+puto
+dicunt
+adiuva
+humilis
+line
+differunt
+vicissim
+causa
+tantum
+significant
+antequam
+movemur
+ius
+puer
+Vetus
+etiam
+idem
+quae
+omnes
+ibi
+cum
+ascendit
+usus
+tuus
+modo
+de
+multis
+tunc
+eorum
+scribo
+utinam
+sicut
+ita
+haec
+eius
+longis
+fac
+aliquid
+video
+eo
+duobus
+habet
+respice
+more
+die
+potuit
+vade
+venit
+Feceruntque
+numerus
+tuba canerent
+nulla
+maxime
+populus
+mea
+supra
+scitis
+aquam
+quam
+call
+prima
+qui
+ut
+descendit
+latere
+fuit
+nunc
+invenies
+caput
+stant
+ipse
+page
+ut
+patriae
+invenit
+dicendum
+scholae
+crescat
+studiorum
+etiam
+discant
+herba
+Cover
+cibum
+solis
+quatuor
+inter
+status
+custodi
+oculus
+numquam
+novissime
+dimitte
+cogitavit
+urbem
+lignum
+transire
+fundum
+difficile
+initium
+ut
+fabula
+Viderunt omnes
+tantum
+mare
+hauriret
+reliquit
+quondam
+currunt
+non
+cum
+turba
+proxime
+noctis
+ipsum
+vita
+pauci
+aquilonem
+liber
+ferte
+tulit
+scientia
+manducare
+locus
+amicitia
+coeperunt
+idea
+pisces
+montem
+subsisto
+quondam
+basi
+audite
+equo
+sectis
+certus
+vigilate
+colorem
+faciem
+lignum
+main
+aperi
+videtur
+simul
+postero
+album
+filii
+incipe
+obtinuit
+ambulate
+exemplum
+relevare
+cartam
+group
+semper
+musica
+eorum
+et
+caracterem
+saepe
+litteris
+usque
+mille passuum
+fluvio
+car
+pedes
+cura
+secundo
+sufficit
+patet
+puella
+more
+adulescens
+parata
+supra
+in perpetuum
+red
+album
+tametsi
+sentio
+Disputatio
+avem
+mox
+corpus
+canem
+familia
+dirige
+aut statum
+relinquo
+canticum
+metiretur
+ostium
+Vestibulum
+nigrum
+breves
+numerales
+class
+spiritus
+quaestio
+fieri
+completum
+navem
+area
+dimidiam
+petræ
+ut
+ignis
+austri
+forsit
+frustrum
+nuntiavit
+cognovit
+factum
+cum
+top
+omnis
+rex
+platea
+inch
+multiplicabo
+aliquid
+scilicet
+manete
+rotam
+pleni
+vi
+hyacintho
+obiectum
+decernere
+superficies
+abyssus
+lunam
+insulam
+pede
+ratio
+occupatus
+aliquam
+testimonium
+navicula
+commune
+aurum
+potest
+planum
+pro eo
+siccum
+admiramini
+rideat
+milia
+ago
+cucurrit
+reprehendo
+ludum
+figura
+aequat
+calidum
+requisierit
+adduxerunt
+calor
+nix
+piget
+adducet
+etiam
+distant
+imple
+orientem
+pingere
+lingua
+in
+unitas
+potestatem
+urbem
+Postremo
+quaedam
+fuge
+ceciderit
+ducit
+clamor
+obscuro
+apparatus
+note
+exspecta
+consilium
+figura
+stella
+box
+noun
+agro
+Reliqua
+recte
+potest
+libra
+factum
+pulchritudo
+coegi
+stetit
+continent
+ante
+docebit
+week
+ultima
+deditque
+viridem
+o
+acutus
+evolvere
+oceanus
+calidum
+absque
+minute
+confortare
+peculiarem
+animus
+retro
+patet
+caudae
+producere
+eo
+locus
+audivit
+optimum
+hora
+melius
+verum
+per
+centum
+quinque
+memores
+step
+mane
+tenent
+occasu
+terra
+interest
+attingere
+ieiunium
+verbo
+cantabo
+audite
+sex
+mensamque
+peregrinationes
+minor
+mane
+decem
+simplex
+plures
+vocali
+in
+bellum
+dormivitque
+contra
+exemplar
+tardus
+centrum
+amant
+aliquis
+pecuniam
+serviant
+appareant
+via
+tabula
+pluviae
+imperium
+regunt
+attrahendam
+frigus
+Observate
+vox
+navitas
+hunt
+probabile
+cubili
+frater
+ovum
+ride
+cell
+Credere
+forsan
+colligunt
+repentino
+Numerabitis
+quadratum
+ideo
+longitudinis
+repraesentant
+art
+subiectum
+regionem
+amplitudo
+variant
+habita
+dicere
+pondus
+generalis
+glaciem
+materia
+circulus
+par
+comprehendo
+divide
+syllabae
+sensi
+magnificum
+pila
+sed
+unda
+concrescunt
+cor
+sum
+praesens
+magna
+chorea
+engine
+locus
+brachium
+wide
+vela
+material
+fractionem
+saltus
+sedebitis
+generis
+fenestram
+store
+aestas
+erant
+somnum
+probant
+agitur
+leg
+exercitium
+murum
+captiones
+montem
+volunt
+caelum
+tabulam
+gaudium
+winter
+sat
+scriptum
+fera
+instrumentum
+custodivit
+vitro
+fœnum
+vitulus
+officium
+ore
+signum
+visit
+past
+molli
+fun
+splendidum
+Vestibulum
+tempestas
+mense
+million
+ferre
+peroratum
+beati
+spero
+flos
+induere
+mirum
+abiit
+commercia
+melodiam
+trinus
+officium
+accipiet
+row
+os
+exactam
+signum
+mortuus
+minimus
+angustia
+jubila
+nisi
+scripsit
+semen
+tone
+iungere
+suadeant
+mundi
+aspiret
+dominae
+navale
+surgere
+malum
+ictus
+olei
+sanguis
+tangerent
+crevit
+cent
+miscere
+bigas
+wire
+cost
+perierat
+brunneis
+induere
+hortum
+aequales
+misit
+elige
+cecidit
+apta
+influunt
+pulchrae
+ripam
+colligunt
+salvum
+imperium
+decimales
+aurem
+aliud
+prorsus
+fregit
+ita
+mediam
+occides
+filius
+stagnum
+momento
+statera
+magna
+ver
+observa
+puer
+rectas
+consonans
+gentem
+dictionary
+lac
+celeritate
+methodo
+organo
+redde
+saeculi
+section
+habitus
+nubes
+mirantique
+quietum
+lapis
+vegrandis
+ascenditur
+frigus
+consilium
+pauper
+multum
+experimento
+imo
+key
+ferrum
+una
+lignum
+flat
+viginti
+pelle
+risu
+rimula
+violet
+salire
+Praesent
+octo
+villa
+concurrunt
+radix
+emptum
+resuscitabo
+solve
+ferrum
+sive
+dis
+septem
+paragraph
+tertia
+numquid
+Posside
+capillum
+describere
+cocus
+pavimentum
+aut
+ex
+comburet
+tumulus
+salvum
+cat
+century
+considerate
+type
+legem
+aliquam
+litore
+rescriptum
+phrase
+silentium
+tall
+arenam
+solum
+volumen
+temperatus
+digitus
+industria
+value
+pugna
+mendacium
+percute
+excitant
+naturalis
+visum
+sensum
+capitale
+nolo
+cathedra
+periculum
+fructus
+dives
+densa
+miles
+aliquid
+operantur
+praxi
+separatum
+difficile
+medicus
+obsecro
+protegat
+meridies
+seges
+modern
+aliquid
+ictus
+discipulo
+anguli
+pars
+copia
+cuius
+locant
+orbis
+character
+insect
+captus
+tempus
+indica
+radio
+Locutusque
+atom
+hominis
+rerum
+effectus
+electrica
+sperare
+osse
+cogitis
+imaginari
+praestare
+conveniunt
+ita
+mitis
+mulier
+dux
+Suspicor
+necesse
+acutum
+alae
+partum
+proximus
+lava
+Biblia
+potius
+turba
+frumentum
+compare
+poem
+nervo
+tintinnabulum
+ex
+cibum
+fricabis
+tube
+celebre
+pupa
+fluvius
+timore
+visum
+tenuis
+triangulo
+planeta
+festinate
+princeps
+coloniam
+horologium
+mea
+tatem
+intrant
+major
+recentes
+quaerere
+mitto
+flavis
+gun
+sino
+print
+mortuus
+locum
+deserto
+sectam
+current
+vitae
+surrexit
+perveniunt
+magister
+semita
+parente
+litore
+divisione
+linteum
+substantia
+gratiam
+Pertinent
+post
+expendas
+chorda
+adipem
+gavisus
+original
+share
+statio
+Pater
+panem
+Testificor
+proprium
+bar
+offer
+segmentum
+servus
+anas
+instant
+ipsum
+gradum
+frequentare
+pullus
+carissimi
+hostem
+respondeo
+potum
+incididunt
+auxilium
+oratio
+natura
+range
+vapor
+motus
+semita
+liquidum
+stipes
+intelligantur
+quotus
+dentium
+testa
+cervicibus
+dolor
+sugar
+mortem
+bellum
+peritia
+mulieres
+tempore
+solutio
+magnes
+argentum
+gratias
+ramum
+par
+etiamne
+maxime
+fig
+timere
+ingenti
+soror
+ferrum
+disputant
+et deinceps
+simile
+dirige
+experientiam
+Octoginta
+pupillam
+emptum
+ductus
+picem
+tunica
+missa
+pecto
+cohors
+fune
+labente
+vincere
+somniatis
+ad vesperum
+condicionis
+pascuntur
+ferramentum
+totalis
+prima
+olfactus
+vallis
+neque
+duplex
+cathedra
+perseverant
+clausus
+cursus
+hat
+vende
+successu
+comitatu
+Auferatur
+eventus
+particularis
+multum
+natant
+term
+oppositi
+uxorem
+calceum
+umero
+expandit
+disponere
+castra
+confingunt
+bombicis
+natus
+statuere
+quart
+novem
+dolor
+sonus
+plana
+forte
+congregate
+taberna
+tractum
+mittite
+luceat
+proprietate
+column
+moleculo
+eligere
+iniuriam
+gray
+iterum
+requirunt
+lata
+praeparabit
+sal
+nasum
+plural
+iratus
+clamium
+continentem