Overview
Comment: | s_expressions-templates-tests: new test suite for S-expression template systems |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
f11c7d17668f269e1daafdd3dbb0c29f |
User & Date: | nat on 2014-09-16 19:05:34 |
Other Links: | manifest | tags |
Context
2014-09-17
| ||
21:07 | s_expressions-templates-generic_discrete_render: new generic procedure for rendering values of discrete types check-in: 592c7cfd1a user: nat tags: trunk | |
2014-09-16
| ||
19:05 | s_expressions-templates-tests: new test suite for S-expression template systems check-in: f11c7d1766 user: nat tags: trunk | |
2014-09-15
| ||
20:04 | s_expressions-atom_ref_constructors: new package containing helper constructors of atom references check-in: 146c8207c4 user: nat tags: trunk | |
Changes
Added tests/natools-s_expressions-templates-tests-integers.adb version [b5f16abfc4].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with Natools.S_Expressions.Parsers; with Natools.S_Expressions.Test_Tools; with Natools.S_Expressions.Templates.Integers; with Natools.Static_Maps.S_Expressions.Templates.Integers.T; package body Natools.S_Expressions.Templates.Tests.Integers is procedure Test_Render (Test : in out NT.Test; Template : in String; Value : in Integer; Expected : in String); -- Run Template with Value and compare the result with Expected ------------------------------ -- Local Helper Subprograms -- ------------------------------ procedure Test_Render (Test : in out NT.Test; Template : in String; Value : in Integer; Expected : in String) is Input : aliased Test_Tools.Memory_Stream; Output : Test_Tools.Memory_Stream; Parser : Parsers.Stream_Parser (Input'Access); begin Input.Set_Data (To_Atom (Template)); Parser.Next; Output.Set_Expected (To_Atom (Expected)); Templates.Integers.Render (Output, Parser, Value); Output.Check_Stream (Test); end Test_Render; ------------------------- -- Complete Test Suite -- ------------------------- procedure All_Tests (Report : in out NT.Reporter'Class) is begin Alignment (Report); Default_Format (Report); Explicit_Sign (Report); Hexadecimal (Report); Overflow (Report); Parse_Errors (Report); Static_Hash_Map (Report); end All_Tests; ----------------------- -- Inidividual Tests -- ----------------------- procedure Alignment (Report : in out NT.Reporter'Class) is Test : NT.Test := Report.Item ("Debug instantiation"); begin Test_Render (Test, "(width 5)", 0, " 0"); Test_Render (Test, "(width 5)(padding _)(align center)", 10, "_10__"); Test_Render (Test, "(width 5 10)(left-align)", 7, "7 "); Test_Render (Test, "(min-width 5)(right-align)", 2, " 2"); Test_Render (Test, "(width 5)(padding > <)(centered)", 4, ">>4<<"); Test_Render (Test, "(width 5)(left-padding ""["")(right-padding ""]"")(centered)", 126, "[126]"); Test_Render (Test, "(width 3)(centered)", 16, "16 "); Test_Render (Test, "(width 3)(centered)", 456, "456"); Test_Render (Test, "(width 3)(align left)", 567, "567"); Test_Render (Test, "(width 3)(align right)", 678, "678"); exception when Error : others => Test.Report_Exception (Error); end Alignment; procedure Default_Format (Report : in out NT.Reporter'Class) is Test : NT.Test := Report.Item ("Debug instantiation"); begin Test_Render (Test, "", 42, "42"); exception when Error : others => Test.Report_Exception (Error); end Default_Format; procedure Explicit_Sign (Report : in out NT.Reporter'Class) is Test : NT.Test := Report.Item ("Explicit sign specification"); begin Test_Render (Test, "(sign +)", 42, "+42"); Test_Render (Test, "(sign + _)", 42, "+42"); Test_Render (Test, "(sign + _)", -42, "_42"); exception when Error : others => Test.Report_Exception (Error); end Explicit_Sign; procedure Hexadecimal (Report : in out NT.Reporter'Class) is Test : NT.Test := Report.Item ("Hexadecimal representation"); Hex_Spec : constant String := "(base 0 1 2 3 4 5 6 7 8 9 A B C D E F)"; begin Test_Render (Test, Hex_Spec, 8, "8"); Test_Render (Test, Hex_Spec, 16#BEE#, "BEE"); exception when Error : others => Test.Report_Exception (Error); end Hexadecimal; procedure Overflow (Report : in out NT.Reporter'Class) is Test : NT.Test := Report.Item ("Width overflow"); begin Test_Render (Test, "(width 3)", 10_000, ""); Test_Render (Test, "(max-width 4)", 10_000, ""); Test_Render (Test, "(max-width 3 ""[...]"")", 10_000, "[...]"); Test_Render (Test, "(width 2 3 ...)", 10_000, "..."); exception when Error : others => Test.Report_Exception (Error); end Overflow; procedure Parse_Errors (Report : in out NT.Reporter'Class) is Test : NT.Test := Report.Item ("Parse errors in template"); begin Test_Render (Test, "(invalid-command)", 1, "1"); Test_Render (Test, "(align)", 2, "2"); Test_Render (Test, "(align invalid)", 3, "3"); Test_Render (Test, "(padding)", 4, "4"); Test_Render (Test, "(left-padding)", 5, "5"); Test_Render (Test, "(right-padding)", 6, "6"); Test_Render (Test, "(signs)", 7, "7"); Test_Render (Test, "(width)", 8, "8"); Test_Render (Test, "(max-width)", 9, "9"); Test_Render (Test, "(min-width)", 10, "10"); exception when Error : others => Test.Report_Exception (Error); end Parse_Errors; procedure Static_Hash_Map (Report : in out NT.Reporter'Class) is Test : NT.Test := Report.Item ("Parse errors in template"); begin if not Natools.Static_Maps.S_Expressions.Templates.Integers.T then Test.Fail; end if; exception when Error : others => Test.Report_Exception (Error); end Static_Hash_Map; end Natools.S_Expressions.Templates.Tests.Integers; |
Added tests/natools-s_expressions-templates-tests-integers.ads version [9cefb81332].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Natools.S_Expressions.Templates.Tests.Integers provides a test suite for -- -- integer S-expression template system. -- ------------------------------------------------------------------------------ package Natools.S_Expressions.Templates.Tests.Integers is pragma Preelaborate; procedure All_Tests (Report : in out NT.Reporter'Class); procedure Alignment (Report : in out NT.Reporter'Class); procedure Default_Format (Report : in out NT.Reporter'Class); procedure Explicit_Sign (Report : in out NT.Reporter'Class); procedure Hexadecimal (Report : in out NT.Reporter'Class); procedure Overflow (Report : in out NT.Reporter'Class); procedure Parse_Errors (Report : in out NT.Reporter'Class); procedure Static_Hash_Map (Report : in out NT.Reporter'Class); end Natools.S_Expressions.Templates.Tests.Integers; |
Added tests/natools-s_expressions-templates-tests.adb version [f2f7ff5595].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with Natools.S_Expressions.Templates.Tests.Integers; package body Natools.S_Expressions.Templates.Tests is ------------------------- -- Complete Test Suite -- ------------------------- procedure All_Tests (Report : in out NT.Reporter'Class) is begin Test_Integers (Report); end All_Tests; -------------------------------------- -- Inidividual Children Test Suites -- -------------------------------------- procedure Test_Integers (Report : in out NT.Reporter'Class) is begin Report.Section ("Integer templates"); Natools.S_Expressions.Templates.Tests.Integers.All_Tests (Report); Report.End_Section; end Test_Integers; end Natools.S_Expressions.Templates.Tests; |
Added tests/natools-s_expressions-templates-tests.ads version [a481e23742].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ------------------------------------------------------------------------------ -- Copyright (c) 2014, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Natools.S_Expressions.Templates.Tests gathers all test suites for the -- -- S-expression template systems. -- ------------------------------------------------------------------------------ with Natools.Tests; package Natools.S_Expressions.Templates.Tests is pragma Preelaborate; package NT renames Natools.Tests; procedure All_Tests (Report : in out NT.Reporter'Class); procedure Test_Integers (Report : in out NT.Reporter'Class); end Natools.S_Expressions.Templates.Tests; |
Modified tests/test_all.adb from [2ff1b1f46f] to [5e27d70bfa].
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 42 43 44 45 46 | with Natools.S_Expressions.File_RW_Tests; with Natools.S_Expressions.Interpreter_Tests; with Natools.S_Expressions.Lockable.Tests; with Natools.S_Expressions.Parsers.Tests; with Natools.S_Expressions.Printers.Tests; with Natools.S_Expressions.Printers.Pretty.Tests; with Natools.S_Expressions.Printers.Pretty.Config.Tests; with Natools.Static_Hash_Maps.S_Expressions.Tests; with Natools.String_Slice_Set_Tests; with Natools.String_Slice_Tests; with Natools.Time_IO.Tests; with Natools.Time_Statistics.Tests; with Natools.Tests.Text_IO; | > | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | with Natools.S_Expressions.File_RW_Tests; with Natools.S_Expressions.Interpreter_Tests; with Natools.S_Expressions.Lockable.Tests; with Natools.S_Expressions.Parsers.Tests; with Natools.S_Expressions.Printers.Tests; with Natools.S_Expressions.Printers.Pretty.Tests; with Natools.S_Expressions.Printers.Pretty.Config.Tests; with Natools.S_Expressions.Templates.Tests; with Natools.Static_Hash_Maps.S_Expressions.Tests; with Natools.String_Slice_Set_Tests; with Natools.String_Slice_Tests; with Natools.Time_IO.Tests; with Natools.Time_Statistics.Tests; with Natools.Tests.Text_IO; |
︙ | ︙ | |||
137 138 139 140 141 142 143 144 145 146 147 148 149 150 | Report.Section ("S_Expressions.Printers.Pretty"); Natools.S_Expressions.Printers.Pretty.Tests.All_Tests (Report); Report.End_Section; Report.Section ("S_Expressions.Printers.Pretty.Config"); Natools.S_Expressions.Printers.Pretty.Config.Tests.All_Tests (Report); Report.End_Section; Report.Section ("Static_Hash_Maps.S_Expressions"); Natools.Static_Hash_Maps.S_Expressions.Tests.All_Tests (Report); Report.End_Section; Report.Section ("String_Slices"); Natools.String_Slice_Tests.All_Tests (Report); | > > > > | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | Report.Section ("S_Expressions.Printers.Pretty"); Natools.S_Expressions.Printers.Pretty.Tests.All_Tests (Report); Report.End_Section; Report.Section ("S_Expressions.Printers.Pretty.Config"); Natools.S_Expressions.Printers.Pretty.Config.Tests.All_Tests (Report); Report.End_Section; Report.Section ("S_Expressions.Templates"); Natools.S_Expressions.Templates.Tests.All_Tests (Report); Report.End_Section; Report.Section ("Static_Hash_Maps.S_Expressions"); Natools.Static_Hash_Maps.S_Expressions.Tests.All_Tests (Report); Report.End_Section; Report.Section ("String_Slices"); Natools.String_Slice_Tests.All_Tests (Report); |
︙ | ︙ |