mirror of
				https://github.com/bblanchon/ArduinoJson.git
				synced 2025-11-04 00:21:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			708 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			708 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// ArduinoJson - https://arduinojson.org
 | 
						|
// Copyright © 2014-2023, Benoit BLANCHON
 | 
						|
// MIT License
 | 
						|
 | 
						|
#include <ArduinoJson.h>
 | 
						|
#include <catch.hpp>
 | 
						|
 | 
						|
using namespace ArduinoJson::detail;
 | 
						|
 | 
						|
template <typename T>
 | 
						|
static void check(const char* input, T expected) {
 | 
						|
  T actual;
 | 
						|
  uint8_t* f = reinterpret_cast<uint8_t*>(&actual);
 | 
						|
  const uint8_t* d = reinterpret_cast<const uint8_t*>(input);
 | 
						|
  doubleToFloat(d, f);
 | 
						|
  fixEndianess(actual);
 | 
						|
  CHECK(actual == expected);
 | 
						|
}
 | 
						|
 | 
						|
TEST_CASE("doubleToFloat()") {
 | 
						|
  check("\x40\x09\x21\xCA\xC0\x83\x12\x6F", 3.1415f);
 | 
						|
  check("\x00\x00\x00\x00\x00\x00\x00\x00", 0.0f);
 | 
						|
  check("\x80\x00\x00\x00\x00\x00\x00\x00", -0.0f);
 | 
						|
  check("\xC0\x5E\xDC\xCC\xCC\xCC\xCC\xCD", -123.45f);
 | 
						|
}
 |