Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | time_keys-tests: almost-fully covering test suite for time keys |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
79433e406530610b78e7cf969642735e |
| User & Date: | nat 2015-01-15 22:48:35.039 |
Context
|
2015-01-16
| ||
| 22:10 | tools: new "timekey" too to provide a CLI interface to Natools.Time_Keys check-in: 25d22b98f4 user: nat tags: trunk | |
|
2015-01-15
| ||
| 22:48 | time_keys-tests: almost-fully covering test suite for time keys check-in: 79433e4065 user: nat tags: trunk | |
|
2015-01-14
| ||
| 20:55 | time_keys: new package that provides short printable chronological keys check-in: 0ca258c8c8 user: nat tags: trunk | |
Changes
Added tests/natools-time_keys-tests.adb.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 |
------------------------------------------------------------------------------
-- Copyright (c) 2015, 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 Ada.Calendar.Formatting;
with Natools.Time_IO.RFC_3339;
package body Natools.Time_Keys.Tests is
function Image (Date : Ada.Calendar.Time) return String;
procedure Roundtrip_Test
(Test : in out NT.Test;
Time : in Ada.Calendar.Time;
Expected_Key : in String);
------------------------------
-- Local Helper Subprograms --
------------------------------
function Image (Date : Ada.Calendar.Time) return String is
begin
return Time_IO.RFC_3339.Image
(Date => Date,
Subsecond_Digits => Duration'Aft);
end Image;
procedure Roundtrip_Test
(Test : in out NT.Test;
Time : in Ada.Calendar.Time;
Expected_Key : in String)
is
use type Ada.Calendar.Time;
Generated_Key : constant String := To_Key (Time, 2);
Recovered_Time : constant Ada.Calendar.Time := To_Time (Generated_Key);
begin
if Generated_Key /= Expected_Key then
Test.Fail ("Generated key """ & Generated_Key
& """, expected """ & Expected_Key & '"');
end if;
if Recovered_Time /= Time then
Test.Fail ("Roundtrip time: " & Image (Recovered_Time)
& ", original: " & Image (Time));
end if;
end Roundtrip_Test;
-------------------------
-- Complete Test Suite --
-------------------------
procedure All_Tests (Report : in out NT.Reporter'Class) is
begin
Roundtrips (Report);
end All_Tests;
----------------------
-- Individual Tests --
----------------------
procedure Roundtrips (Report : in out NT.Reporter'Class) is
Test : NT.Test := Report.Item ("Conversion Roundtrips");
begin
if Duration'Small <= 1.0 / 128.0 then
Roundtrip_Test
(Test,
Ada.Calendar.Formatting.Time_Of (2015, 1, 14, 15, 16, 17,
0.5 + 1.0 / 128.0),
"VV1EFGHWW");
end if;
Roundtrip_Test
(Test,
Ada.Calendar.Formatting.Time_Of (2015, 1, 2, 3, 4, 5, 0.5),
"VV12345W");
Roundtrip_Test
(Test,
Ada.Calendar.Formatting.Time_Of (2047, 1, 14, 8, 44, 36),
"V~1E8h_");
Roundtrip_Test
(Test,
Ada.Calendar.Formatting.Time_Of (2020, 10, 9, 0, 9, 0),
"V_A909");
Roundtrip_Test
(Test,
Ada.Calendar.Formatting.Time_Of (2303, 9, 30, 23, 0, 0),
"Z~9UN");
Roundtrip_Test
(Test,
Ada.Calendar.Formatting.Time_Of (2304, 12, 31, 0, 0, 0),
"_0CV");
exception
when Error : others => Test.Report_Exception (Error);
end Roundtrips;
end Natools.Time_Keys.Tests;
|
Added tests/natools-time_keys-tests.ads.
> > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | ------------------------------------------------------------------------------ -- Copyright (c) 2015, 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.Tests; package Natools.Time_Keys.Tests is package NT renames Natools.Tests; procedure All_Tests (Report : in out NT.Reporter'Class); procedure Roundtrips (Report : in out NT.Reporter'Class); end Natools.Time_Keys.Tests; |
Changes to tests/test_all.adb.
| ︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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;
procedure Test_All is
package Uneven_Chunked_Strings is new Natools.Chunked_Strings
(Default_Allocation_Unit => 7,
Default_Chunk_Size => 15);
| > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
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_Keys.Tests;
with Natools.Time_Statistics.Tests;
with Natools.Tests.Text_IO;
procedure Test_All is
package Uneven_Chunked_Strings is new Natools.Chunked_Strings
(Default_Allocation_Unit => 7,
Default_Chunk_Size => 15);
|
| ︙ | ︙ | |||
163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
Report.Section ("String_Slices.Slice_Sets");
Natools.String_Slice_Set_Tests.All_Tests (Report);
Report.End_Section;
Report.Section ("Time_IO");
Natools.Time_IO.Tests.All_Tests (Report);
Report.End_Section;
Report.Section ("Time_Statistics");
Natools.Time_Statistics.Tests.All_Tests (Report);
Report.End_Section;
Natools.Tests.Text_IO.Print_Results (Report.Total_Results);
| > > > > | 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
Report.Section ("String_Slices.Slice_Sets");
Natools.String_Slice_Set_Tests.All_Tests (Report);
Report.End_Section;
Report.Section ("Time_IO");
Natools.Time_IO.Tests.All_Tests (Report);
Report.End_Section;
Report.Section ("Time_Keys");
Natools.Time_Keys.Tests.All_Tests (Report);
Report.End_Section;
Report.Section ("Time_Statistics");
Natools.Time_Statistics.Tests.All_Tests (Report);
Report.End_Section;
Natools.Tests.Text_IO.Print_Results (Report.Total_Results);
|
| ︙ | ︙ |