https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a6b84082e6a8e07e6c89e…
commit a6b84082e6a8e07e6c89eb62952463fbc4a3f8c9
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Mon Apr 22 13:48:57 2019 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Mon Apr 22 13:48:57 2019 +0900
[GDI32_APITEST] Rewrite DPtoLP testcase (#1509)
Sorry, I had to rewrite gdi32!DPtoLP testcase. ROSTESTS-319
---
modules/rostests/apitests/gdi32/DPtoLP.c | 779 +++++++++++++++++++------------
1 file changed, 486 insertions(+), 293 deletions(-)
diff --git a/modules/rostests/apitests/gdi32/DPtoLP.c
b/modules/rostests/apitests/gdi32/DPtoLP.c
index 48a841407c..88e18fb38d 100644
--- a/modules/rostests/apitests/gdi32/DPtoLP.c
+++ b/modules/rostests/apitests/gdi32/DPtoLP.c
@@ -9,319 +9,512 @@
#include "precomp.h"
#define INVALID_POINTER ((PVOID)(ULONG_PTR)0xdeadbeefdeadbeefULL)
+#define IGNORE 0xFACECAFE
+#define CALC_VALUE_1 0xBADACE01
+#define CALC_VALUE_2 0xFEEDF00D
+#define CALC_VALUE_3 0xDEADCAD1
+#define DISPLAY_SIZE 0xDEADBEEF
+#define NEGA_DISPLAY_SIZE 0xBEEFDEAD
+
+typedef struct PRESET
+{
+ LONG xWnd;
+ LONG yWnd;
+ LONG cxWnd;
+ LONG cyWnd;
+
+ LONG xView;
+ LONG yView;
+ LONG cxView;
+ LONG cyView;
+} PRESET;
+
+typedef struct TEST_ENTRY
+{
+ INT lineno;
+ BOOL ret;
+ DWORD error;
+
+ BOOL bWndExt;
+ INT nMapMode;
+
+ PRESET preset;
+
+ LONG xWndOut;
+ LONG yWndOut;
+ LONG cxWndOut;
+ LONG cyWndOut;
+
+ LONG xViewOut;
+ LONG yViewOut;
+ LONG cxViewOut;
+ LONG cyViewOut;
+
+ POINT ptSrc;
+ POINT ptDest;
+} TEST_ENTRY;
+
+#define PRESET0 { 0, 0, 0, 0, 0, 0, 0, 0 }
+#define PRESET1 { 0, 0, 1, 1, 0, 0, 1, 1 }
+#define PRESET2 { 75, 0, 1, 1, 0, 0, 10, 10 }
+#define PRESET3 { 0, 180, 1, 1, 120, 0, 1, 1 }
+#define PRESET4 { 0, 0, 200, 1, 50, 0, 1, 1 }
+#define PRESET5 { 0, 0, 1, 200, 0, 0, -100, 1 }
+#define PRESET6 { 50, 0, 1, 200, 10, 0, 100, 200 }
+
+static const TEST_ENTRY s_entries[] =
+{
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET0, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET2, 75, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { 175, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET3, 0, 180, 1, 1, 120, 0, 1, 1, {
100, 150 }, { -20, 330 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET4, 0, 0, 1, 1, 50, 0, 1, 1, { 100,
150 }, { 50, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET5, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET6, 50, 0, 1, 1, 10, 0, 1, 1, {
100, 150 }, { 140, 150 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, FALSE, MM_ANISOTROPIC, PRESET0, 0, 0, IGNORE, IGNORE,
0, 0, IGNORE, IGNORE, { 100, 150 }, { IGNORE, IGNORE } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1,
{ 100, 150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET2, 75, 0, 1, 1, 0, 0, 10,
10, { 100, 150 }, { 85, 15 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET3, 0, 180, 1, 1, 120, 0, 1,
1, { 100, 150 }, { -20, 330 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET4, 0, 0, 200, 1, 50, 0, 1,
1, { 100, 150 }, { 10000, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET5, 0, 0, 1, 200, 0, 0,
-100, 1, { 100, 150 }, { -1, 30000 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET6, 50, 0, 1, 200, 10, 0,
100, 200, { 100, 150 }, { 51, 150 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, FALSE, MM_ISOTROPIC, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, IGNORE, IGNORE, { 100, 150 }, { IGNORE, IGNORE } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1, {
100, 150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET2, 75, 0, 1, 1, 0, 0, 10, 10,
{ 100, 150 }, { 85, 15 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET3, 0, 180, 1, 1, 120, 0, 1,
1, { 100, 150 }, { -20, 330 } },
+ { __LINE__, FALSE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET4, 0, 0, 200, 1, 50, 0, 1,
0, { 100, 150 }, { 100, 150 } },
+ { __LINE__, FALSE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET5, 0, 0, 1, 200, 0, 0, 0, 1,
{ 100, 150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET6, 50, 0, 1, 200, 10, 0, 1,
200, { 100, 150 }, { 140, 150 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET1, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET5, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET1, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET5, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET2, 75, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET3, 0, 180, IGNORE, IGNORE, 120,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET4, 0, 0, IGNORE, IGNORE, 50, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET6, 50, 0, IGNORE, IGNORE, 10, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_1 , CALC_VALUE_1 } },
+};
+static const size_t s_entries_count = _countof(s_entries);
+
+static const TEST_ENTRY s_shifted_entries[] =
+{
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET0, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET2, 75, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET3, 0, 180, 1, 1, 120, 0, 1, 1, {
100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET4, 0, 0, 1, 1, 50, 0, 1, 1, { 100,
150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET5, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET6, 50, 0, 1, 1, 10, 0, 1, 1, {
100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, FALSE, MM_ANISOTROPIC, PRESET0, 0, 0, IGNORE, IGNORE,
0, 0, IGNORE, IGNORE, { 100, 150 }, { IGNORE, IGNORE } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1,
{ 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET2, 75, 0, 1, 1, 0, 0, 10,
10, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET3, 0, 180, 1, 1, 120, 0, 1,
1, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET4, 0, 0, 200, 1, 50, 0, 1,
1, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET5, 0, 0, 1, 200, 0, 0,
-100, 1, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET6, 50, 0, 1, 200, 10, 0,
100, 200, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, FALSE, MM_ISOTROPIC, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, IGNORE, IGNORE, { 100, 150 }, { IGNORE, IGNORE } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1, {
100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET2, 75, 0, 1, 1, 0, 0, 10, 10,
{ 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET3, 0, 180, 1, 1, 120, 0, 1,
1, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, FALSE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET4, 0, 0, 200, 1, 50, 0, 1,
0, { 100, 150 }, { 100, 150 } },
+ { __LINE__, FALSE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET5, 0, 0, 1, 200, 0, 0, 0, 1,
{ 100, 150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET6, 50, 0, 1, 200, 10, 0, 1,
200, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET1, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET5, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET1, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET5, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET2, 75, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET3, 0, 180, IGNORE, IGNORE, 120,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET4, 0, 0, IGNORE, IGNORE, 50, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET6, 50, 0, IGNORE, IGNORE, 10, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_2, CALC_VALUE_2 } },
+};
+static const size_t s_shifted_entries_count = _countof(s_shifted_entries);
+
+static const TEST_ENTRY s_transformed_entries[] =
+{
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET0, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET2, 75, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET3, 0, 180, 1, 1, 120, 0, 1, 1, {
100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET4, 0, 0, 1, 1, 50, 0, 1, 1, { 100,
150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET5, 0, 0, 1, 1, 0, 0, 1, 1, { 100,
150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TEXT, PRESET6, 50, 0, 1, 1, 10, 0, 1, 1, {
100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, FALSE, MM_ANISOTROPIC, PRESET0, 0, 0, IGNORE, IGNORE,
0, 0, IGNORE, IGNORE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1,
{ 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET2, 75, 0, 1, 1, 0, 0, 10,
10, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET3, 0, 180, 1, 1, 120, 0, 1,
1, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET4, 0, 0, 200, 1, 50, 0, 1,
1, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET5, 0, 0, 1, 200, 0, 0,
-100, 1, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ANISOTROPIC, PRESET6, 50, 0, 1, 200, 10, 0,
100, 200, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, FALSE, MM_ISOTROPIC, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, IGNORE, IGNORE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET1, 0, 0, 1, 1, 0, 0, 1, 1, {
100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET2, 75, 0, 1, 1, 0, 0, 10, 10,
{ 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET3, 0, 180, 1, 1, 120, 0, 1,
1, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, FALSE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET4, 0, 0, 200, 1, 50, 0, 1,
0, { 100, 150 }, { 100, 150 } },
+ { __LINE__, FALSE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET5, 0, 0, 1, 200, 0, 0, 0, 1,
{ 100, 150 }, { 100, 150 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_ISOTROPIC, PRESET6, 50, 0, 1, 200, 10, 0, 1,
200, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOMETRIC, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIMETRIC, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET1, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET5, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_LOENGLISH, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET0, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET1, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET2, 75, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET3, 0, 180, IGNORE, IGNORE,
120, 0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET4, 0, 0, IGNORE, IGNORE, 50,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET5, 0, 0, IGNORE, IGNORE, 0,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_HIENGLISH, PRESET6, 50, 0, IGNORE, IGNORE, 10,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET0, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET1, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET2, 75, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET3, 0, 180, IGNORE, IGNORE, 120,
0, DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET4, 0, 0, IGNORE, IGNORE, 50, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET5, 0, 0, IGNORE, IGNORE, 0, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+ { __LINE__, TRUE, 0xDEADBEEF, TRUE, MM_TWIPS, PRESET6, 50, 0, IGNORE, IGNORE, 10, 0,
DISPLAY_SIZE, NEGA_DISPLAY_SIZE, { 100, 150 }, { CALC_VALUE_3, CALC_VALUE_3 } },
+};
+static const size_t s_transformed_entries_count = _countof(s_transformed_entries);
+
+static void SetXForm1(XFORM *pxform)
+{
+ pxform->eM11 = 1;
+ pxform->eM12 = 0;
+ pxform->eM21 = 0;
+ pxform->eM22 = 1;
+ pxform->eDx = 314;
+ pxform->eDy = -99;
+}
+
+static void SetXForm2(XFORM *pxform)
+{
+ pxform->eM11 = 2;
+ pxform->eM12 = 0;
+ pxform->eM21 = 0;
+ pxform->eM22 = 3;
+ pxform->eDx = 0;
+ pxform->eDy = 0;
+}
-void Test_DPtoLP_Params()
+static BOOL InverseXForm(XFORM *pxform)
{
- HDC hdc;
+ XFORM xform = *pxform;
+ FLOAT delta = xform.eM11 * xform.eM22 - xform.eM12 * xform.eM21;
+ if (delta == 0)
+ return FALSE;
+
+ pxform->eM11 = xform.eM22 / delta;
+ pxform->eM12 = -xform.eM12 / delta;
+ pxform->eM21 = -xform.eM21 / delta;
+ pxform->eM22 = xform.eM11 / delta;
+ pxform->eDx = (-xform.eM22 * xform.eDx + xform.eM12 * xform.eDy);
+ pxform->eDy = (xform.eM21 * xform.eDx - xform.eM11 * xform.eDy);
+ return TRUE;
+}
+
+static void DoTestEntry(HDC hDC, const TEST_ENTRY *entry)
+{
+ POINT pt, ptWnd, ptView;
+ SIZE siz, sizWnd, sizView;
+ INT ret;
+
+ SetMapMode(hDC, entry->nMapMode);
+
+ ret = SetWindowOrgEx(hDC, entry->preset.xWnd, entry->preset.yWnd, NULL);
+ ok(ret == TRUE, "Line %d: SetWindowOrgEx failed\n", entry->lineno);
+
+ ret = SetWindowExtEx(hDC, entry->preset.cxWnd, entry->preset.cyWnd, NULL);
+ ok(ret == entry->bWndExt, "Line %d: SetWindowExtEx() expected %d, was
%d\n", entry->lineno, entry->bWndExt, ret);
+
+ ret = SetViewportOrgEx(hDC, entry->preset.xView, entry->preset.yView, NULL);
+ ok(ret == TRUE, "Line %d: SetViewportOrgEx failed\n", entry->lineno);
+
+ ret = SetViewportExtEx(hDC, entry->preset.cxView, entry->preset.cyView, NULL);
+ ok(ret == TRUE, "Line %d: SetViewportExtEx failed\n", entry->lineno);
+
+ ok(GetWindowOrgEx(hDC, &pt) == TRUE, "Line %d: GetWindowOrgEx
failed\n", entry->lineno);
+ ptWnd = pt;
+ ok(GetWindowExtEx(hDC, &siz) == TRUE, "Line %d: GetWindowExtEx
failed\n", entry->lineno);
+ sizWnd = siz;
+
+ ok(pt.x == entry->xWndOut && pt.y == entry->yWndOut,
+ "Line %d: Window org expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, entry->xWndOut, entry->yWndOut, pt.x, pt.y);
+
+ if (entry->cxWndOut == DISPLAY_SIZE || entry->cxWndOut == NEGA_DISPLAY_SIZE)
+ {
+ LONG cx = GetDeviceCaps(hDC, HORZRES);
+ LONG cy = GetDeviceCaps(hDC, VERTRES);
+ if (entry->cxWndOut == NEGA_DISPLAY_SIZE)
+ cx = -cx;
+ if (entry->cyWndOut == NEGA_DISPLAY_SIZE)
+ cy = -cy;
+ ok(siz.cx == cx && siz.cy == cy,
+ "Line %d: Window ext expected display size (%ld, %ld), was (%ld,
%ld)\n",
+ entry->lineno, cx, cy, siz.cx, siz.cy);
+ }
+ else if (entry->cxWndOut != IGNORE)
+ {
+ ok(siz.cx == entry->cxWndOut && siz.cy == entry->cyWndOut,
+ "Line %d: Window ext expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, entry->cxWndOut, entry->cyWndOut, siz.cx, siz.cy);
+ }
+
+ ok(GetViewportOrgEx(hDC, &pt) == TRUE, "Line %d: GetViewportOrgEx
failed\n", entry->lineno);
+ ptView = pt;
+ ok(GetViewportExtEx(hDC, &siz) == TRUE, "Line %d: GetViewportExtEx
failed\n", entry->lineno);
+ sizView = siz;
+
+ ok(pt.x == entry->xViewOut && pt.y == entry->yViewOut,
+ "Line %d: Viewport org expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, entry->xViewOut , entry->yViewOut, pt.x, pt.y);
+
+ if (entry->cxViewOut == DISPLAY_SIZE || entry->cxViewOut == NEGA_DISPLAY_SIZE)
+ {
+ LONG cx = GetDeviceCaps(hDC, HORZRES);
+ LONG cy = GetDeviceCaps(hDC, VERTRES);
+ if (entry->cxViewOut == NEGA_DISPLAY_SIZE)
+ cx = -cx;
+ if (entry->cyViewOut == NEGA_DISPLAY_SIZE)
+ cy = -cy;
+ ok(siz.cx == cx && siz.cy == cy,
+ "Line %d: Viewport ext expected display size (%ld, %ld), was (%ld,
%ld)\n",
+ entry->lineno, cx, cy, siz.cx, siz.cy);
+ }
+ else if (entry->cxViewOut != IGNORE)
+ {
+ ok(siz.cx == entry->cxViewOut && siz.cy == entry->cyViewOut,
+ "Line %d: Viewport ext expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, entry->cxViewOut, entry->cyViewOut, siz.cx, siz.cy);
+ }
+
+ pt = entry->ptSrc;
+
+ SetLastError(0xDEADBEEF);
+ ret = DPtoLP(hDC, &pt, 1);
+ ok(ret == entry->ret, "Line %d: DPtoLP() expected %d, was %d\n",
entry->lineno, entry->ret, ret);
+
+ ok(GetLastError() == entry->error, "Line %d: GetLastError() expected %ld, was
%ld\n",
+ entry->lineno, entry->error, GetLastError());
+
+ if (entry->ptDest.x == CALC_VALUE_1)
+ {
+ LONG x = MulDiv(entry->ptSrc.x - ptView.x, sizWnd.cx, sizView.cx) + ptWnd.x;
+ LONG y = MulDiv(entry->ptSrc.y - ptView.y, sizWnd.cy, sizView.cy) + ptWnd.y;
+ // TODO: make more accurate
+ ok(labs(pt.x - x) <= 1 && labs(pt.y - y) <= 1,
+ "Line %d: Dest expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, x, y, pt.x, pt.y);
+ }
+ else if (entry->ptDest.x == CALC_VALUE_2)
+ {
+ XFORM xform;
+ LONG x, y;
+ SetXForm1(&xform);
+ if (InverseXForm(&xform))
+ {
+ x = MulDiv(entry->ptSrc.x - ptView.x, sizWnd.cx, sizView.cx) + ptWnd.x;
+ y = MulDiv(entry->ptSrc.y - ptView.y, sizWnd.cy, sizView.cy) + ptWnd.y;
+ x = (LONG)((xform.eM11 * x + xform.eM12 * y) + xform.eDx);
+ y = (LONG)((xform.eM21 * x + xform.eM22 * y) + xform.eDy);
+ // TODO: make more accurate
+ ok(labs(pt.x - x) <= 1 && labs(pt.y - y) <= 1,
+ "Line %d: Dest expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, x, y, pt.x, pt.y);
+ }
+ }
+ else if (entry->ptDest.x == CALC_VALUE_3)
+ {
+ XFORM xform;
+ LONG x, y;
+ SetXForm2(&xform);
+ if (InverseXForm(&xform))
+ {
+ x = MulDiv(entry->ptSrc.x - ptView.x, sizWnd.cx, sizView.cx) + ptWnd.x;
+ y = MulDiv(entry->ptSrc.y - ptView.y, sizWnd.cy, sizView.cy) + ptWnd.y;
+ x = (LONG)((xform.eM11 * x + xform.eM12 * y) + xform.eDx);
+ y = (LONG)((xform.eM21 * x + xform.eM22 * y) + xform.eDy);
+ // TODO: make more accurate
+ ok(labs(pt.x - x) <= 2 && labs(pt.y - y) <= 2,
+ "Line %d: Dest expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, x, y, pt.x, pt.y);
+ }
+ }
+ else if (entry->ptDest.x != IGNORE)
+ {
+ ok(pt.x == entry->ptDest.x && pt.y == entry->ptDest.y,
+ "Line %d: Dest expected (%ld, %ld), was (%ld, %ld)\n",
+ entry->lineno, entry->ptDest.x, entry->ptDest.y, pt.x, pt.y);
+ }
+}
+
+START_TEST(DPtoLP)
+{
+ size_t i;
POINT apt[2];
+ XFORM xform;
- apt[0].x = 0;
- apt[0].y = 0;
- apt[1].x = -1000;
- apt[1].y = 1000;
+ HDC hDC = CreateCompatibleDC(NULL);
+ ok(hDC != NULL, "hDC is NULL\n");
- SetLastError(ERROR_SUCCESS);
+ SetLastError(0xDEADBEEF);
ok_int(DPtoLP(NULL, NULL, 0), 1);
- ok_err(ERROR_SUCCESS);
+ ok_err(0xDEADBEEF);
ok_int(DPtoLP(NULL, NULL, -1), 1);
- ok_err(ERROR_SUCCESS);
+ ok_err(0xDEADBEEF);
ok_int(DPtoLP(NULL, INVALID_POINTER, -1), 1);
- ok_err(ERROR_SUCCESS);
+ ok_err(0xDEADBEEF);
ok_int(DPtoLP(NULL, NULL, 2), 0);
ok_err(ERROR_INVALID_PARAMETER);
- SetLastError(ERROR_SUCCESS);
+ SetLastError(0xDEADBEEF);
ok_int(DPtoLP(NULL, apt, 2), 0);
ok_err(ERROR_INVALID_PARAMETER);
- SetLastError(ERROR_SUCCESS);
+ SetLastError(0xDEADBEEF);
ok_int(DPtoLP(NULL, apt, 0), 1);
- ok_err(ERROR_SUCCESS);
+ ok_err(0xDEADBEEF);
- SetLastError(ERROR_SUCCESS);
+ SetLastError(0xDEADBEEF);
ok_int(DPtoLP(NULL, apt, -2), 1);
- ok_err(ERROR_SUCCESS);
+ ok_err(0xDEADBEEF);
- SetLastError(ERROR_SUCCESS);
+ SetLastError(0xDEADBEEF);
ok_int(DPtoLP((HDC)-4, apt, -2), 1);
- ok_err(ERROR_SUCCESS);
-
- hdc = GetDC(0);
- SetLastError(ERROR_SUCCESS);
- ok_int(DPtoLP(hdc, NULL, 2), 1);
- ok_err(ERROR_SUCCESS);
-
- hdc = GetDC(0);
- SetLastError(ERROR_SUCCESS);
- ok_int(DPtoLP(hdc, INVALID_POINTER, 2), 1);
- ok_err(ERROR_SUCCESS);
-
-
- ReleaseDC(0, hdc);
-}
-
-static void GetExtent(HDC hdc, SIZE *psizWnd, SIZE *psizView)
-{
- GetWindowExtEx(hdc, psizWnd);
- //trace("*psizWnd: (%ld, %ld)\n", psizWnd->cx, psizWnd->cy);
-
- GetViewportExtEx(hdc, psizView);
- //trace("*psizView: (%ld, %ld)\n", psizView->cx, psizView->cy);
-}
-
-void Test_DPtoLP()
-{
- HDC hdc;
- POINT apt[2];
- XFORM xform;
- LONG lLogPixelsX, lLogPixelsY;
- SIZE sizWnd, sizView;
- LONG xLow, yLow, xHigh, yHigh;
-
- hdc = CreateCompatibleDC(NULL);
- lLogPixelsX = GetDeviceCaps(hdc, LOGPIXELSX);
- lLogPixelsY = GetDeviceCaps(hdc, LOGPIXELSY);
- trace("lLogPixelsX: %ld\n", lLogPixelsX);
- trace("lLogPixelsY: %ld\n", lLogPixelsY);
-
-//#define MULDIV(a, b, c) (((a) * (b)) / (c))
-#define MULDIV(a, b, c) MulDiv((a), (b), (c))
-
- // MM_TEXT
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- SetMapMode(hdc, MM_TEXT);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(sizWnd.cx, 1);
- ok_long(sizWnd.cy, 1);
- ok_long(sizView.cx, 1);
- ok_long(sizView.cy, 1);
- ok_long(apt[0].x, 100);
- ok_long(apt[0].y, 256);
- ok_long(apt[1].x, -1000);
- ok_long(apt[1].y, 1000);
-
- // MM_LOMETRIC
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- SetMapMode(hdc, MM_LOMETRIC);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, MULDIV(100, sizWnd.cx, sizView.cx));
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, MULDIV(-1000, sizWnd.cx, sizView.cx));
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
- xLow = apt[0].x;
- yLow = apt[0].y;
-
- // MM_HIMETRIC
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- SetMapMode(hdc, MM_HIMETRIC);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, MULDIV(100, sizWnd.cx, sizView.cx));
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, MULDIV(-1000, sizWnd.cx, sizView.cx));
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
- xHigh = apt[0].x;
- yHigh = apt[0].y;
- ok(labs(xLow) * 9 < labs(xHigh) && labs(xHigh) < 11 * labs(xLow),
"%ld, %ld\n", xLow, xHigh);
- ok(labs(yLow) * 9 < labs(yHigh) && labs(yHigh) < 11 * labs(yLow),
"%ld, %ld\n", yLow, yHigh);
-
- // MM_LOENGLISH
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- SetMapMode(hdc, MM_LOENGLISH);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, MULDIV(100, sizWnd.cx, sizView.cx));
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, MULDIV(-1000, sizWnd.cx, sizView.cx));
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
- xLow = apt[0].x;
- yLow = apt[0].y;
-
- // MM_HIENGLISH
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- SetMapMode(hdc, MM_HIENGLISH);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, MULDIV(100, sizWnd.cx, sizView.cx));
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, MULDIV(-1000, sizWnd.cx, sizView.cx));
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
- xHigh = apt[0].x;
- yHigh = apt[0].y;
- ok(labs(xLow) * 9 < labs(xHigh) && labs(xHigh) < 11 * labs(xLow),
"%ld, %ld\n", xLow, xHigh);
- ok(labs(yLow) * 9 < labs(yHigh) && labs(yHigh) < 11 * labs(yLow),
"%ld, %ld\n", yLow, yHigh);
-
- // MM_TWIPS
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- SetMapMode(hdc, MM_TWIPS);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, MULDIV(100, sizWnd.cx, sizView.cx));
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, MULDIV(-1000, sizWnd.cx, sizView.cx));
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
-
- SetGraphicsMode(hdc, GM_ADVANCED);
- SetMapMode(hdc, MM_ANISOTROPIC);
-
- xform.eM11 = 1.;
- xform.eM12 = 0.;
- xform.eM21 = 0.;
- xform.eM22 = 1.;
- xform.eDx = 2.;
- xform.eDy = 1.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
-
- // eDx == 2, eDy == 1
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, MULDIV(100, sizWnd.cx, sizView.cx) - (LONG)xform.eDx);
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy) - (LONG)xform.eDy);
- ok_long(apt[1].x, MULDIV(-1000, sizWnd.cx, sizView.cx) - (LONG)xform.eDx);
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy) - (LONG)xform.eDy);
-
- // eM11 == 10000000
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = 10000000.;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, 0);
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, 0);
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
-
- // eM11 == 2
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = 2.;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, MULDIV(100 / 2, sizWnd.cx, sizView.cx));
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, MULDIV(-1000 / 2, sizWnd.cx, sizView.cx));
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
-
- // eM11 == (FLOAT)0x1FFFFFFFF
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = (FLOAT)0x1FFFFFFFF;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, 0);
- //ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, 0);
- //ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
-
- // eM11 == (FLOAT)0xFFFFFFFFU
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = (FLOAT)0xFFFFFFFFU;
- xform.eM22 = 1.;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, 0);
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, 0);
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
-
- // eM22 == (FLOAT)0xFFFFFFFFU
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = 1.;
- xform.eM22 = (FLOAT)0xFFFFFFFFU;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- //ok_long(apt[0].x, MULDIV(100, sizWnd.cy, sizView.cy));
- ok_long(apt[0].y, 0);
- //ok_long(apt[1].x, MULDIV(-1000, sizWnd.cy, sizView.cy));
- ok_long(apt[1].y, 0);
-
- // eM22 == (FLOAT)0x1FFFFFFFFU
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = 1.;
- xform.eM22 = (FLOAT)0x1FFFFFFFFU;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- //ok_long(apt[0].x, MULDIV(100, sizWnd.cy, sizView.cy));
- ok_long(apt[0].y, 0);
- //ok_long(apt[1].x, MULDIV(-1000, sizWnd.cy, sizView.cy));
- ok_long(apt[1].y, 0);
-
- // eM11 == (FLOAT)0xFFFFFFFFU, eM22 == (FLOAT)0xFFFFFFFFU
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = (FLOAT)0xFFFFFFFFU;
- xform.eM22 = (FLOAT)0xFFFFFFFFU;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, 0);
- ok_long(apt[0].y, 0);
- ok_long(apt[1].x, 0);
- ok_long(apt[1].y, 0);
-
- // eM11 == (FLOAT)0x1FFFFFFFFU, eM22 == (FLOAT)0x1FFFFFFFFU
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = (FLOAT)0x1FFFFFFFFU;
- xform.eM22 = (FLOAT)0x1FFFFFFFFU;
- xform.eDx = 0.;
- xform.eDy = 0.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, 0);
- ok_long(apt[0].y, 0);
- ok_long(apt[1].x, 0);
- ok_long(apt[1].y, 0);
-
- // eM11 == 10000000
- apt[0].x = 100; apt[0].y = 256; apt[1].x = -1000; apt[1].y = 1000;
- xform.eM11 = 10000000.;
- xform.eM22 = 1.0;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, 0);
- ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, 0);
- ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
-
- xform.eM11 = 1000000.;
- ok_int(SetWorldTransform(hdc, &xform), 1);
- GetExtent(hdc, &sizWnd, &sizView);
- ok_int(DPtoLP(hdc, apt, 2), 1);
- ok_long(apt[0].x, 0);
- //ok_long(apt[0].y, MULDIV(256, sizWnd.cy, sizView.cy));
- ok_long(apt[1].x, 0);
- //ok_long(apt[1].y, MULDIV(1000, sizWnd.cy, sizView.cy));
-
- DeleteDC(hdc);
+ ok_err(0xDEADBEEF);
+
+ SetLastError(0xDEADBEEF);
+ ok_int(DPtoLP(hDC, NULL, 2), 1);
+ ok_err(0xDEADBEEF);
+
+ SetLastError(0xDEADBEEF);
+ ok_int(DPtoLP(hDC, INVALID_POINTER, 2), 1);
+ ok_err(0xDEADBEEF);
+
+ SetGraphicsMode(hDC, GM_COMPATIBLE);
+ ModifyWorldTransform(hDC, NULL, MWT_IDENTITY);
+
+ for (i = 0; i < s_entries_count; ++i)
+ {
+ DoTestEntry(hDC, &s_entries[i]);
+ }
+
+ SetGraphicsMode(hDC, GM_ADVANCED);
+ ModifyWorldTransform(hDC, NULL, MWT_IDENTITY);
+
+ for (i = 0; i < s_entries_count; ++i)
+ {
+ DoTestEntry(hDC, &s_entries[i]);
+ }
+
+ SetXForm1(&xform);
+ SetGraphicsMode(hDC, GM_ADVANCED);
+ SetWorldTransform(hDC, &xform);
+ for (i = 0; i < s_shifted_entries_count; ++i)
+ {
+ DoTestEntry(hDC, &s_shifted_entries[i]);
+ }
+
+ SetXForm2(&xform);
+ SetGraphicsMode(hDC, GM_ADVANCED);
+ SetWorldTransform(hDC, &xform);
+ for (i = 0; i < s_transformed_entries_count; ++i)
+ {
+ DoTestEntry(hDC, &s_transformed_entries[i]);
+ }
+
+ DeleteDC(hDC);
}
-
-START_TEST(DPtoLP)
-{
- Test_DPtoLP_Params();
- Test_DPtoLP();
-}
-