annotate tests/fptest.c @ 2298:b5abfff07ca9

Add new DMGrowBuf helper functions dmGrowBufCopyOffsSize() and dmGrowBufConstCopyOffsSize().
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 04 Jul 2019 10:54:16 +0300
parents 186cf6a7d634
children 88be5cf55caf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1432
a9516570cc26 Improve build, so that we can build the tools and tests with minimal
Matti Hamalainen <ccr@tnsp.org>
parents: 1147
diff changeset
1 #include "dmtool.h"
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 #include "dmlib.h"
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 #include <stdio.h>
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 #define FP_DW_SIZE 8
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 #define FP_W0_SIZE 4
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7
1610
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
8 static int test_number = 0;
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
9
36
f3407a58e01e Change DMFixedPoint types and appropriate JSS functions back to using signed
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
10 void check(const char *str, DMFixedPoint v, Sint64 dw)
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 DMFixedPoint *q = (DMFixedPoint *) &dw;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13
809
eba3b87f3f84 Add some separate macros for 64/32 precision fixed point types.
Matti Hamalainen <ccr@tnsp.org>
parents: 653
diff changeset
14 printf("%-15s = ", str); FP_PRINTF64(v); printf("\n");
eba3b87f3f84 Add some separate macros for 64/32 precision fixed point types.
Matti Hamalainen <ccr@tnsp.org>
parents: 653
diff changeset
15 printf("should be = "); FP_PRINTF64((*q)); printf("\n");
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 if (v.dw != dw)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 printf("ERROR! A test value differs from expected!\n");
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22
1610
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
23
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
24 void header(const char *msg)
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
25 {
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
26 test_number++;
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
27 printf("\nTEST #%d: %s\n", test_number, msg);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
28 }
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
29
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30 int main(int argc, char *argv[])
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 int i;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33 DMFixedPoint a, b, delta;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34 char *s;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36 (void) argc;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37 (void) argv;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
38
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
39 // Check host characteristics
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 switch (SDL_BYTEORDER)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42 case SDL_BIG_ENDIAN: s = "big endian"; break;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43 case SDL_LIL_ENDIAN: s = "little endian"; break;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 default: s = "unknown?"; break;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45 }
2046
186cf6a7d634 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 1610
diff changeset
46
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 printf(
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 "SDL byte order = %s (%d)\n\n", s, SDL_BYTEORDER);
2046
186cf6a7d634 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 1610
diff changeset
49
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 printf(
1147
5e1d67f33dec Use DM_PRI* format specifiers here.
Matti Hamalainen <ccr@tnsp.org>
parents: 866
diff changeset
51 "sizeof(DMFixedPoint) = %" DM_PRId64 " bytes\n"
5e1d67f33dec Use DM_PRI* format specifiers here.
Matti Hamalainen <ccr@tnsp.org>
parents: 866
diff changeset
52 "sizeof(DMFixedPoint.dw) = %" DM_PRId64 " bytes (should be %d)\n"
5e1d67f33dec Use DM_PRI* format specifiers here.
Matti Hamalainen <ccr@tnsp.org>
parents: 866
diff changeset
53 "sizeof(DMFixedPoint.w[0]) = %" DM_PRId64 " bytes (should be %d)\n",
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 sizeof(a), sizeof(a.dw), FP_DW_SIZE,
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 sizeof(a.w[0]), FP_W0_SIZE);
2046
186cf6a7d634 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 1610
diff changeset
56
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 if (sizeof(a.dw) != FP_DW_SIZE || sizeof(a.w[0]) != FP_W0_SIZE)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59 printf("ERROR! Some type sizes DO NOT MATCH!\n");
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60 return -1;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 }
2046
186cf6a7d634 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 1610
diff changeset
62
1610
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
63 //-----------------------------------------------
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
64 header("set initial values");
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 FP_SETHL(a, 55, 0);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 check("a", a, 0x0000003700000000ULL);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68 FP_CONV(b, 178);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 check("b", b, 0x00000000000000b2ULL);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 FP_DIV_R(delta, a, b);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 check("delta", delta, 0x000000004f19e33cULL);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73
1610
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
74 //-----------------------------------------------
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
75 header("50 x (a + delta)");
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 for (i = 0; i < 50; i++)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78 FP_ADD(a, delta);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 check("a end", a, 0x00000046730e61b8ULL);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81
1610
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
82 //-----------------------------------------------
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
83 header("50 x (a - delta)");
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 for (i = 0; i < 50; i++)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 FP_SUB(a, delta);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88 check("a end", a, 0x0000003700000000ULL);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89
1610
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
90 //-----------------------------------------------
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
91 header("5 x (a * delta)");
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
92 for (i = 0; i < 5; i++)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94 FP_MUL(a, delta);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96 check("a end", a, 0xd644e40000000000ULL);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97
1610
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
98 //-----------------------------------------------
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
99 header("a / 2");
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
100 FP_CONV(delta, 2);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
101 FP_DIV(a, delta);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
102 check("a end", a, 0xeb22720000000000ULL);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
103
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
104 //-----------------------------------------------
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
105 header("a / 2");
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
106 FP_DIV(a, delta);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
107 check("a end", a, 0xf591390000000000ULL);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
108
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
109 //-----------------------------------------------
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
110 header("");
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
111 FP_SETHL(a, -200, 50);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
112 FP_CONV(b, 15);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
113 FP_DIV(a, b);
61246926756a Slight improvements to fptest.
Matti Hamalainen <ccr@tnsp.org>
parents: 1432
diff changeset
114 check("a end", a, 0xfffffff2aaaaaaaeULL);
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116 return 0;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117 }