From 80c03cc1c1d7adff57e8f45b1d4c113e22f411e6 Mon Sep 17 00:00:00 2001 From: Maxim Date: Tue, 24 Dec 2024 12:00:38 +0500 Subject: [PATCH] Added TagCloudGeneratorTest with Samples --- TagCloudClient/Program.cs | 5 +-- ...teTagCloud_ShouldGenerateFile.approved.png | Bin 0 -> 35948 bytes TagCloudTests/Samples/sample.csv | 25 +++++++++++ TagCloudTests/Samples/sample.docx | Bin 0 -> 13565 bytes TagCloudTests/Samples/sample.txt | 25 +++++++++++ TagCloudTests/TagCloudGeneratorTest.cs | 41 ++++++++++++++++++ 6 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 TagCloudTests/Samples/Snapshots/TagCloudGeneratorTest.TagCloudGenerator_GenerateTagCloud_ShouldGenerateFile.approved.png create mode 100644 TagCloudTests/Samples/sample.csv create mode 100644 TagCloudTests/Samples/sample.docx create mode 100644 TagCloudTests/Samples/sample.txt create mode 100644 TagCloudTests/TagCloudGeneratorTest.cs diff --git a/TagCloudClient/Program.cs b/TagCloudClient/Program.cs index 9b287133..aeae3a3a 100644 --- a/TagCloudClient/Program.cs +++ b/TagCloudClient/Program.cs @@ -67,9 +67,8 @@ private static void RegisterWordsFilters(ContainerBuilder builder, Options setti builder.RegisterType().As(); builder.RegisterType().As(); } - - -private static void RegisterLayouter(ContainerBuilder builder, Options settings) + + private static void RegisterLayouter(ContainerBuilder builder, Options settings) { builder.RegisterType().As(); } diff --git a/TagCloudTests/Samples/Snapshots/TagCloudGeneratorTest.TagCloudGenerator_GenerateTagCloud_ShouldGenerateFile.approved.png b/TagCloudTests/Samples/Snapshots/TagCloudGeneratorTest.TagCloudGenerator_GenerateTagCloud_ShouldGenerateFile.approved.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef980c639e56fadf062ab1ae01f1b38e6cb5701 GIT binary patch literal 35948 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 z z7zsLd6oM`g0pM`<{Rjq?n2?3r>X)joC9CGNIaXF9zHO6kbFr<{b$N%XW-$2q*m3ZH zhskMjl28j0m0p*Y2J$+TdrymTGAas)g6d5IxL`3cV5A&^EW_$*^JN>%r4)+=;r{bo zc|hyu;I|ttdW?2RlRz>9pqt<^)J)dK#GGyEqRSf__>uCv1x|?N<;seoP&Z4<&>=M|E^I>`&03sF zwh+<-+KpjsTCJ^YjQ!|gY{%Y1H{Zd@P!IR%Mb0CP>8!}Q1u)vvq2i(8!_e=-Oh^Wb zYjFr*ADN1~!5GT-E`~{Z)|qEP6&Ia{D#iLmMFHGAQ~9h6LtQj%;P+h&<_=#B>?=e5 zN5^ai7^lY~k;isf3`8R~v&Ui==fpp8FqCU)lR%xmov_m3X?(KbaGQ!@iP!h|MYBl{ zMl;uriP=>w2RG+sBO-YJ*Q(Zg)~9+ieMc%tgpw&?nW3Q}#@*e$@C@Dv3>Hxrzc5h^ zw23h$WqL-3{_dSi{q#H+1@xMWs^|)Xbs;2eilZDjS1L}p`jWc3X?up(UqCqCTN~6` zVxe#Wf^5~pwPVQYr8*~s2iNqUP(3xseqrmRuTI(+`>Gl-nJ&6wR~Q&di6in+JsoRK z-=#=th@IP?hr!4KHC<;|TZ?>L84N_?h@IY)B?pek-%pPawK&Hc%BjN-4xnUTV)X<1 zRD)2``B7~T`t)vrZSt_5;(h|oXh0J^)t*ceu%Fk(ElK>WQ|jbQ#~=cso=XleJXN%n z5el6+7A5xOy?P)dRNNKgl~Zz%~9)y=*@Bc8FLS z(VmH<->%|U%kjB3{~?G1Vw^)l`o_`;HR$I@3hgR(R0ak%p@;+eONx)5b!N*E_hZPs z%QgkjQ*;Id)NCZ%flimsEp!A5GmTNC;IKC1e0i5;@S@kq_ThNi?CY+dH-N?%d-?ee$rj{O^z)6r0(u7?_YTOt^yBmo=E>S<}4cigj z`^~7`8A4Ld9kfhEW85yqmt15^vX!ld;oE{q-Mk8I`Xbpdr*wZGn1`x$u`d+-LFzq` z|0_+=$*ZXFG2ZWO4^F|jeq3-oGm-)VW}E;(I}9KKOD)V|UvR>4OSZ3jOs5BT-m3hiYKD}7@Pne7R{+8I~&nWf|UgLbwyU#fy=-K+2w_CTr zd-pEo@T<~z=kxr*B?PhT)g)5{n;GF0?b}SP(-eTz=vN=bze!NN?c8ag_nDy!WLQmx zACu`^FP6|fh_y8y7!q0;%Y2Pf0K0!3xkn4V7$-}_=P-XFHFr4)AvX*x9B@j6e5+o~ z;D)KgqwH=dWvh~`k@W-v62B+kWVJM|K@Mpkw8kr9M-#o>qx4_X#s4<1{BmF;8c%5d zl6HR?o<{NDd>Nj9^2Pqo3dLfP^{)~VlH5aPdr$r=C-eX8gME3J&vAk;Q}_k2mJs{@ z17Lm8>o0mOmgX;f_lqk0kEz1^;>`FS@W3QoZV`CK_zp&4RKKm;Q#;t literal 0 HcmV?d00001 diff --git a/TagCloudTests/Samples/sample.csv b/TagCloudTests/Samples/sample.csv new file mode 100644 index 00000000..38dd42cb --- /dev/null +++ b/TagCloudTests/Samples/sample.csv @@ -0,0 +1,25 @@ +flap +vulgar +branch +creator +creator +creator +lettuce +lettuce +lettuce +psychedelic +alike +alike +nutritious +foolish +innate +innate +innate +innate +innate +naive +pushy +hapless +fuel +dependent +dependent diff --git a/TagCloudTests/Samples/sample.docx b/TagCloudTests/Samples/sample.docx new file mode 100644 index 0000000000000000000000000000000000000000..94698f5388ca3b4c70c8d46131553c247bd1184a GIT binary patch literal 13565 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 literal 0 HcmV?d00001 diff --git a/TagCloudTests/Samples/sample.txt b/TagCloudTests/Samples/sample.txt new file mode 100644 index 00000000..d6434806 --- /dev/null +++ b/TagCloudTests/Samples/sample.txt @@ -0,0 +1,25 @@ +flap +vulgar +branch +creator +creator +creator +lettuce +lettuce +lettuce +psychedelic +alike +alike +nutritious +foolish +innate +innate +innate +innate +innate +naive +pushy +hapless +fuel +dependent +dependent \ No newline at end of file diff --git a/TagCloudTests/TagCloudGeneratorTest.cs b/TagCloudTests/TagCloudGeneratorTest.cs new file mode 100644 index 00000000..f7c06aba --- /dev/null +++ b/TagCloudTests/TagCloudGeneratorTest.cs @@ -0,0 +1,41 @@ +using System.Text; +using ApprovalTests; +using ApprovalTests.Reporters; +using FluentAssertions; +using SkiaSharp; +using TagCloud; +using TagCloud.CloudLayouter; +using TagCloud.Visualization; +using TagCloud.WordsFilter; +using TagCloud.WordsReader; + +namespace TagCloudTests; + +[TestFixture] +[UseReporter(typeof(RiderReporter))] +[ApprovalTests.Namers.UseApprovalSubdirectory("Samples/Snapshots")] +public class TagCloudGeneratorTest +{ + [Test] + public void TagCloudGenerator_GenerateTagCloud_ShouldGenerateFile() + { + var generator = InitGenerator(); + + var savePath = generator.GenerateTagCloud(); + + File.Exists(savePath).Should().BeTrue(); + Approvals.VerifyFile(savePath); + } + + private static TagCloudGenerator InitGenerator() + { + var fileReader = new FileReader("../../../Samples/sample.txt", Encoding.UTF8); + var imageSaver = new TagCloudSaver("test", "png"); + var layouter = new CircularCloudLayouter(new SKPoint(1920 / 2f, 1080 / 2f)); + var imageGenerator = new TagCloudBitmapGenerator(new SKSizeI(1920, 1080), SKTypeface.FromFamilyName("Arial"), + SKColors.Black, SKColors.Azure, layouter); + List filters = [new LowercaseFilter(), new BoringWordsFilter()]; + + return new TagCloudGenerator(fileReader, imageSaver, imageGenerator, filters); + } +} \ No newline at end of file