1
#include <gtest\gtest.h>
7
void GenerateTestUnsigned64x32()
9
std::ofstream file("div64x32uTests.h", std::ios::out);
11
for(int i=0; i<testCount; i++)
13
uint64_t u = (uint64_t)rand() ^ ((uint64_t)rand() << 16) ^ ((uint64_t)rand() << 32);
14
uint32_t v = (uint32_t)rand() ^ ((uint32_t)rand() << 16);
15
uint32_t q = (uint32_t)(u / v);
16
file << "EXPECT_EQ(" << q << "ul, div64x32u(" << u << "ull, " << v << "ul, 0) );" << std::endl;
20
TEST(Div, Test64x32unsigned)
22
//GenerateTestUnsigned64x32();
23
#include "div64x32uTests.h"
26
void GenerateTestSigned64x32()
28
std::ofstream file("div64x32sTests.h", std::ios::out);
30
for(int i=0; i<testCount; i++)
32
int64_t u = (int64_t)rand() ^ ((int64_t)rand() << 16) ^ ((int64_t)rand() << 32);
33
int32_t v = (int32_t)rand() ^ ((int32_t)rand() << 16);
38
int32_t q = (int32_t)(u / v);
39
file << "EXPECT_EQ(" << q << "l, div64x32s(" << u << "ll, " << v << "l, 0) );" << std::endl;
43
TEST(Div, Test64x32signed)
45
//GenerateTestSigned64x32();
46
#include "div64x32sTests.h"
51
using namespace Mcucpp;
52
for(uint32_t i = 0; i < 256; i++)
54
divmod10_t<uint8_t> res8 = divmodu10((uint8_t)i);
55
EXPECT_EQ(i/10, res8.quot);
56
EXPECT_EQ(i%10, res8.rem);
59
for(uint32_t i = 0; i < 0x00010000; i++)
61
divmod10_t<uint16_t> res16 = divmodu10((uint16_t)i);
62
EXPECT_EQ(i/10, res16.quot);
63
EXPECT_EQ(i%10, res16.rem);
66
divmodu10((unsigned)100);
67
divmodu10((unsigned long)100);
68
divmodu10((unsigned short)100);
69
divmodu10((unsigned long long)100);