Index: tests/natools-smaz-tests.adb ================================================================== --- tests/natools-smaz-tests.adb +++ tests/natools-smaz-tests.adb @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ --- Copyright (c) 2015-2016, Natacha Porté -- +-- Copyright (c) 2015-2017, 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. -- -- -- @@ -16,10 +16,12 @@ with Ada.Strings.Unbounded; with Natools.Smaz.Original; package body Natools.Smaz.Tests is + + function Dict_Without_VLV return Dictionary; function Image (S : Ada.Streams.Stream_Element_Array) return String; procedure Roundtrip_Test (Test : in out NT.Test; @@ -29,10 +31,18 @@ ------------------------------ -- Local Helper Subprograms -- ------------------------------ + + function Dict_Without_VLV return Dictionary is + begin + return Dict : Dictionary := Original.Dictionary do + Dict.Variable_Length_Verbatim := False; + end return; + end Dict_Without_VLV; + function Image (S : Ada.Streams.Stream_Element_Array) return String is use Ada.Strings.Unbounded; Result : Unbounded_String; begin @@ -129,10 +139,11 @@ ------------------------- procedure All_Tests (Report : in out NT.Reporter'Class) is begin Sample_Strings (Report); + Sample_Strings_Without_VLV (Report); end All_Tests; ---------------------- @@ -179,6 +190,51 @@ (255, 6, 58, 32, 58, 32, 58, 32, 58)); exception when Error : others => Test.Report_Exception (Error); end Sample_Strings; + + procedure Sample_Strings_Without_VLV (Report : in out NT.Reporter'Class) is + Test : NT.Test + := Report.Item ("Roundtrip on sample strings without VLV"); + Dict : constant Dictionary := Dict_Without_VLV; + begin + Roundtrip_Test (Test, Dict, + "This is a small string", + (255, 84, 76, 56, 172, 62, 173, 152, 62, 195, 70)); + Roundtrip_Test (Test, Dict, + "foobar", + (220, 6, 90, 79)); + Roundtrip_Test (Test, Dict, + "the end", + (1, 171, 61)); + Roundtrip_Test (Test, Dict, + "not-a-g00d-Exampl333", + (132, 204, 4, 204, 59, 254, 48, 48, 24, 204, 255, 69, 250, 4, 45, + 60, 22, 254, 51, 51, 255, 51)); + Roundtrip_Test (Test, Dict, + "Smaz is a simple compression library", + (255, 83, 173, 219, 56, 172, 62, 226, 60, 87, 161, 45, 60, 33, 166, + 107, 205, 8, 90, 130, 12, 83)); + Roundtrip_Test (Test, Dict, + "Nothing is more difficult, and therefore more precious, " + & "than to be able to decide", + (255, 78, 223, 102, 99, 116, 45, 42, 11, 129, 44, 44, 131, 38, 22, 3, + 148, 63, 210, 68, 11, 45, 42, 11, 60, 33, 28, 144, 164, 36, 203, + 143, 96, 92, 25, 90, 87, 82, 165, 215, 237, 2)); + Roundtrip_Test (Test, Dict, + "this is an example of what works very well with smaz", + (155, 56, 172, 41, 2, 250, 4, 45, 60, 87, 32, 159, 135, 65, 42, 255, + 107, 23, 231, 71, 145, 152, 243, 227, 10, 173, 219)); + Roundtrip_Test (Test, Dict, + "1000 numbers 2000 will 10 20 30 compress very little", + (254, 49, 48, 254, 48, 48, 236, 38, 45, 92, 221, 0, 254, 50, 48, + 254, 48, 48, 243, 152, 0, 254, 49, 48, 0, 254, 50, 48, 0, 254, 51, + 48, 161, 45, 60, 33, 166, 0, 231, 71, 151, 3, 3, 87)); + Roundtrip_Test (Test, Dict, + ": : : :", + (254, 58, 32, 254, 58, 32, 254, 58, 32, 255, 58)); + exception + when Error : others => Test.Report_Exception (Error); + end Sample_Strings_Without_VLV; + end Natools.Smaz.Tests; Index: tests/natools-smaz-tests.ads ================================================================== --- tests/natools-smaz-tests.ads +++ tests/natools-smaz-tests.ads @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ --- Copyright (c) 2016, Natacha Porté -- +-- Copyright (c) 2016-2017, 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. -- -- -- @@ -21,7 +21,8 @@ package NT renames Natools.Tests; procedure All_Tests (Report : in out NT.Reporter'Class); procedure Sample_Strings (Report : in out NT.Reporter'Class); + procedure Sample_Strings_Without_VLV (Report : in out NT.Reporter'Class); end Natools.Smaz.Tests;