blob: cfc2e6ecd6ab7d22d72dd70000b7d65acbb22c75 [file] [log] [blame]
Laurence Lundblade68a13352018-09-23 02:19:54 -07001/*==============================================================================
Laurence Lundblade83dbf5c2024-01-07 19:17:52 -07002 float_tests.h -- tests for floats and conversion to/from half-precision
Laurence Lundblade781fd822018-10-01 09:37:52 -07003
Laurence Lundblade83dbf5c2024-01-07 19:17:52 -07004 Copyright (c) 2018-2024, Laurence Lundblade. All rights reserved.
Laurence Lundblade035bd782019-01-21 17:01:31 -08005
Laurence Lundbladea3fd49f2019-01-21 10:16:22 -08006 SPDX-License-Identifier: BSD-3-Clause
Laurence Lundblade035bd782019-01-21 17:01:31 -08007
Laurence Lundbladee8f58162024-08-22 10:30:08 -07008 See BSD-3-Clause license in file named "LICENSE"
Laurence Lundblade3aee3a32018-12-17 16:17:45 -08009
Laurence Lundbladea3fd49f2019-01-21 10:16:22 -080010 Created on 9/19/18
Laurence Lundbladeee851742020-01-08 08:37:05 -080011 =============================================================================*/
Laurence Lundblade68a13352018-09-23 02:19:54 -070012
Laurence Lundblade2d85ce42018-10-12 14:12:47 +080013#ifndef float_tests_h
14#define float_tests_h
15
Laurence Lundbladec5fef682020-01-25 11:38:45 -080016#include <stdint.h>
Laurence Lundblade68a13352018-09-23 02:19:54 -070017
Laurence Lundbladeb275cdc2020-07-12 12:34:38 -070018#ifndef QCBOR_DISABLE_PREFERRED_FLOAT
Laurence Lundblade9682a532020-06-06 18:33:04 -070019
Laurence Lundblade83dbf5c2024-01-07 19:17:52 -070020/* This tests a large number half-precision values
21 * in the conversion to/from half/double against
22 * the sample code in the CBOR RFC. */
Laurence Lundbladec5fef682020-01-25 11:38:45 -080023int32_t HalfPrecisionAgainstRFCCodeTest(void);
Laurence Lundbladed711fb22018-09-26 14:35:22 -070024
Laurence Lundbladeb275cdc2020-07-12 12:34:38 -070025#endif /* QCBOR_DISABLE_PREFERRED_FLOAT */
Laurence Lundblade9682a532020-06-06 18:33:04 -070026
Laurence Lundblade83dbf5c2024-01-07 19:17:52 -070027
Laurence Lundblade585127a2020-07-15 03:25:24 -070028/*
Laurence Lundblade83dbf5c2024-01-07 19:17:52 -070029 * This tests floating point encoding, decoding
30 * and conversion for lots of different values.
31 * It covers Preferred Serialization processing
32 * of floating point. It's focus is on the numbers
33 * not the encode/decode functions.
34 */
35int32_t FloatValuesTests(void);
36
37
38/*
39 * This calls each and every method for encoding
40 * floating-point numbers.
Laurence Lundblade585127a2020-07-15 03:25:24 -070041 */
42int32_t GeneralFloatEncodeTests(void);
Laurence Lundblade68a13352018-09-23 02:19:54 -070043
Laurence Lundblade83dbf5c2024-01-07 19:17:52 -070044
Laurence Lundblade02fcf312020-07-17 02:49:46 -070045/*
Laurence Lundblade83dbf5c2024-01-07 19:17:52 -070046 * Tests float decoding, including error codes in scenarios
47 * where various float features are disabled. This also
48 * tests decoding using spiffy decode methods.
Laurence Lundblade02fcf312020-07-17 02:49:46 -070049 */
50int32_t GeneralFloatDecodeTests(void);
51
52
Laurence Lundblade2d85ce42018-10-12 14:12:47 +080053#endif /* float_tests_h */