/* -*- mode: C -*- Time-stamp: "2010-02-18 11:39:34 jeffrey" * * File: pdf-i64-mod-i32-dividend.c * Date: Thu Feb 18 03:45:00 2010 * * GNU PDF Library - Types Module - pdf_i64_mod_i32_dividend test cases * */ /* Copyright (C) 2010 Free Software Foundation, Inc. */ /* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include #include #include #define INTERACTIVE_DEBUG 0 #ifndef pdf_i64_eq # define pdf_i64_eq(x,y) (0 == pdf_i64_cmp((x), (y))) #endif /* pdf_i64_eq */ typedef struct _KnownAnswer { int32_t n; /* numerator */ int32_t dh; /* denominator high */ uint32_t dl; /* denominator low */ int32_t rh; /* remainder high */ uint32_t rl; /* remainder low */ uint32_t st; /* expected status */ } KnownAnswer; static const KnownAnswer tests_mod_i32_dividend[] = { /* 1 */ {0x80000000,0x80000000,0x00000000,0xffffffff,0x80000000,PDF_OK}, /* 2 */ {0x80000001,0x80000000,0x00000000,0xffffffff,0x80000001,PDF_OK}, /* 3 */ {0x80000002,0x80000000,0x00000000,0xffffffff,0x80000002,PDF_OK}, /* 4 */ {0x80000004,0x80000000,0x00000000,0xffffffff,0x80000004,PDF_OK}, /* 5 */ {0x80000008,0x80000000,0x00000000,0xffffffff,0x80000008,PDF_OK}, /* 6 */ {0xfffffff8,0x80000000,0x00000000,0xffffffff,0xfffffff8,PDF_OK}, /* 7 */ {0xfffffffc,0x80000000,0x00000000,0xffffffff,0xfffffffc,PDF_OK}, /* 8 */ {0xfffffffe,0x80000000,0x00000000,0xffffffff,0xfffffffe,PDF_OK}, /* 9 */ {0xffffffff,0x80000000,0x00000000,0xffffffff,0xffffffff,PDF_OK}, /* 10 */ {0x00000000,0x80000000,0x00000000,0x00000000,0x00000000,PDF_OK}, /* 11 */ {0x00000001,0x80000000,0x00000000,0x00000000,0x00000001,PDF_OK}, /* 12 */ {0x00000002,0x80000000,0x00000000,0x00000000,0x00000002,PDF_OK}, /* 13 */ {0x00000004,0x80000000,0x00000000,0x00000000,0x00000004,PDF_OK}, /* 14 */ {0x00000008,0x80000000,0x00000000,0x00000000,0x00000008,PDF_OK}, /* 15 */ {0x7ffffff8,0x80000000,0x00000000,0x00000000,0x7ffffff8,PDF_OK}, /* 16 */ {0x7ffffffb,0x80000000,0x00000000,0x00000000,0x7ffffffb,PDF_OK}, /* 17 */ {0x7ffffffd,0x80000000,0x00000000,0x00000000,0x7ffffffd,PDF_OK}, /* 18 */ {0x7ffffffe,0x80000000,0x00000000,0x00000000,0x7ffffffe,PDF_OK}, /* 19 */ {0x7fffffff,0x80000000,0x00000000,0x00000000,0x7fffffff,PDF_OK}, /* 20 */ {0x80000000,0x80000000,0x00000001,0xffffffff,0x80000000,PDF_OK}, /* 21 */ {0x80000001,0x80000000,0x00000001,0xffffffff,0x80000001,PDF_OK}, /* 22 */ {0x80000002,0x80000000,0x00000001,0xffffffff,0x80000002,PDF_OK}, /* 23 */ {0x80000004,0x80000000,0x00000001,0xffffffff,0x80000004,PDF_OK}, /* 24 */ {0x80000008,0x80000000,0x00000001,0xffffffff,0x80000008,PDF_OK}, /* 25 */ {0xfffffff8,0x80000000,0x00000001,0xffffffff,0xfffffff8,PDF_OK}, /* 26 */ {0xfffffffc,0x80000000,0x00000001,0xffffffff,0xfffffffc,PDF_OK}, /* 27 */ {0xfffffffe,0x80000000,0x00000001,0xffffffff,0xfffffffe,PDF_OK}, /* 28 */ {0xffffffff,0x80000000,0x00000001,0xffffffff,0xffffffff,PDF_OK}, /* 29 */ {0x00000000,0x80000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 30 */ {0x00000001,0x80000000,0x00000001,0x00000000,0x00000001,PDF_OK}, /* 31 */ {0x00000002,0x80000000,0x00000001,0x00000000,0x00000002,PDF_OK}, /* 32 */ {0x00000004,0x80000000,0x00000001,0x00000000,0x00000004,PDF_OK}, /* 33 */ {0x00000008,0x80000000,0x00000001,0x00000000,0x00000008,PDF_OK}, /* 34 */ {0x7ffffff8,0x80000000,0x00000001,0x00000000,0x7ffffff8,PDF_OK}, /* 35 */ {0x7ffffffb,0x80000000,0x00000001,0x00000000,0x7ffffffb,PDF_OK}, /* 36 */ {0x7ffffffd,0x80000000,0x00000001,0x00000000,0x7ffffffd,PDF_OK}, /* 37 */ {0x7ffffffe,0x80000000,0x00000001,0x00000000,0x7ffffffe,PDF_OK}, /* 38 */ {0x7fffffff,0x80000000,0x00000001,0x00000000,0x7fffffff,PDF_OK}, /* 39 */ {0x80000000,0x80000000,0x00000002,0xffffffff,0x80000000,PDF_OK}, /* 40 */ {0x80000001,0x80000000,0x00000002,0xffffffff,0x80000001,PDF_OK}, /* 41 */ {0x80000002,0x80000000,0x00000002,0xffffffff,0x80000002,PDF_OK}, /* 42 */ {0x80000004,0x80000000,0x00000002,0xffffffff,0x80000004,PDF_OK}, /* 43 */ {0x80000008,0x80000000,0x00000002,0xffffffff,0x80000008,PDF_OK}, /* 44 */ {0xfffffff8,0x80000000,0x00000002,0xffffffff,0xfffffff8,PDF_OK}, /* 45 */ {0xfffffffc,0x80000000,0x00000002,0xffffffff,0xfffffffc,PDF_OK}, /* 46 */ {0xfffffffe,0x80000000,0x00000002,0xffffffff,0xfffffffe,PDF_OK}, /* 47 */ {0xffffffff,0x80000000,0x00000002,0xffffffff,0xffffffff,PDF_OK}, /* 48 */ {0x00000000,0x80000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 49 */ {0x00000001,0x80000000,0x00000002,0x00000000,0x00000001,PDF_OK}, /* 50 */ {0x00000002,0x80000000,0x00000002,0x00000000,0x00000002,PDF_OK}, /* 51 */ {0x00000004,0x80000000,0x00000002,0x00000000,0x00000004,PDF_OK}, /* 52 */ {0x00000008,0x80000000,0x00000002,0x00000000,0x00000008,PDF_OK}, /* 53 */ {0x7ffffff8,0x80000000,0x00000002,0x00000000,0x7ffffff8,PDF_OK}, /* 54 */ {0x7ffffffb,0x80000000,0x00000002,0x00000000,0x7ffffffb,PDF_OK}, /* 55 */ {0x7ffffffd,0x80000000,0x00000002,0x00000000,0x7ffffffd,PDF_OK}, /* 56 */ {0x7ffffffe,0x80000000,0x00000002,0x00000000,0x7ffffffe,PDF_OK}, /* 57 */ {0x7fffffff,0x80000000,0x00000002,0x00000000,0x7fffffff,PDF_OK}, /* 58 */ {0x80000000,0x80000000,0x00000004,0xffffffff,0x80000000,PDF_OK}, /* 59 */ {0x80000001,0x80000000,0x00000004,0xffffffff,0x80000001,PDF_OK}, /* 60 */ {0x80000002,0x80000000,0x00000004,0xffffffff,0x80000002,PDF_OK}, /* 61 */ {0x80000004,0x80000000,0x00000004,0xffffffff,0x80000004,PDF_OK}, /* 62 */ {0x80000008,0x80000000,0x00000004,0xffffffff,0x80000008,PDF_OK}, /* 63 */ {0xfffffff8,0x80000000,0x00000004,0xffffffff,0xfffffff8,PDF_OK}, /* 64 */ {0xfffffffc,0x80000000,0x00000004,0xffffffff,0xfffffffc,PDF_OK}, /* 65 */ {0xfffffffe,0x80000000,0x00000004,0xffffffff,0xfffffffe,PDF_OK}, /* 66 */ {0xffffffff,0x80000000,0x00000004,0xffffffff,0xffffffff,PDF_OK}, /* 67 */ {0x00000000,0x80000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 68 */ {0x00000001,0x80000000,0x00000004,0x00000000,0x00000001,PDF_OK}, /* 69 */ {0x00000002,0x80000000,0x00000004,0x00000000,0x00000002,PDF_OK}, /* 70 */ {0x00000004,0x80000000,0x00000004,0x00000000,0x00000004,PDF_OK}, /* 71 */ {0x00000008,0x80000000,0x00000004,0x00000000,0x00000008,PDF_OK}, /* 72 */ {0x7ffffff8,0x80000000,0x00000004,0x00000000,0x7ffffff8,PDF_OK}, /* 73 */ {0x7ffffffb,0x80000000,0x00000004,0x00000000,0x7ffffffb,PDF_OK}, /* 74 */ {0x7ffffffd,0x80000000,0x00000004,0x00000000,0x7ffffffd,PDF_OK}, /* 75 */ {0x7ffffffe,0x80000000,0x00000004,0x00000000,0x7ffffffe,PDF_OK}, /* 76 */ {0x7fffffff,0x80000000,0x00000004,0x00000000,0x7fffffff,PDF_OK}, /* 77 */ {0x80000000,0x80000000,0x00000008,0xffffffff,0x80000000,PDF_OK}, /* 78 */ {0x80000001,0x80000000,0x00000008,0xffffffff,0x80000001,PDF_OK}, /* 79 */ {0x80000002,0x80000000,0x00000008,0xffffffff,0x80000002,PDF_OK}, /* 80 */ {0x80000004,0x80000000,0x00000008,0xffffffff,0x80000004,PDF_OK}, /* 81 */ {0x80000008,0x80000000,0x00000008,0xffffffff,0x80000008,PDF_OK}, /* 82 */ {0xfffffff8,0x80000000,0x00000008,0xffffffff,0xfffffff8,PDF_OK}, /* 83 */ {0xfffffffc,0x80000000,0x00000008,0xffffffff,0xfffffffc,PDF_OK}, /* 84 */ {0xfffffffe,0x80000000,0x00000008,0xffffffff,0xfffffffe,PDF_OK}, /* 85 */ {0xffffffff,0x80000000,0x00000008,0xffffffff,0xffffffff,PDF_OK}, /* 86 */ {0x00000000,0x80000000,0x00000008,0x00000000,0x00000000,PDF_OK}, /* 87 */ {0x00000001,0x80000000,0x00000008,0x00000000,0x00000001,PDF_OK}, /* 88 */ {0x00000002,0x80000000,0x00000008,0x00000000,0x00000002,PDF_OK}, /* 89 */ {0x00000004,0x80000000,0x00000008,0x00000000,0x00000004,PDF_OK}, /* 90 */ {0x00000008,0x80000000,0x00000008,0x00000000,0x00000008,PDF_OK}, /* 91 */ {0x7ffffff8,0x80000000,0x00000008,0x00000000,0x7ffffff8,PDF_OK}, /* 92 */ {0x7ffffffb,0x80000000,0x00000008,0x00000000,0x7ffffffb,PDF_OK}, /* 93 */ {0x7ffffffd,0x80000000,0x00000008,0x00000000,0x7ffffffd,PDF_OK}, /* 94 */ {0x7ffffffe,0x80000000,0x00000008,0x00000000,0x7ffffffe,PDF_OK}, /* 95 */ {0x7fffffff,0x80000000,0x00000008,0x00000000,0x7fffffff,PDF_OK}, /* 96 */ {0x80000000,0xffffffff,0xfffffff8,0x00000000,0x00000000,PDF_OK}, /* 97 */ {0x80000001,0xffffffff,0xfffffff8,0xffffffff,0xfffffff9,PDF_OK}, /* 98 */ {0x80000002,0xffffffff,0xfffffff8,0xffffffff,0xfffffffa,PDF_OK}, /* 99 */ {0x80000004,0xffffffff,0xfffffff8,0xffffffff,0xfffffffc,PDF_OK}, /* 100 */ {0x80000008,0xffffffff,0xfffffff8,0x00000000,0x00000000,PDF_OK}, /* 101 */ {0xfffffff8,0xffffffff,0xfffffff8,0x00000000,0x00000000,PDF_OK}, /* 102 */ {0xfffffffc,0xffffffff,0xfffffff8,0xffffffff,0xfffffffc,PDF_OK}, /* 103 */ {0xfffffffe,0xffffffff,0xfffffff8,0xffffffff,0xfffffffe,PDF_OK}, /* 104 */ {0xffffffff,0xffffffff,0xfffffff8,0xffffffff,0xffffffff,PDF_OK}, /* 105 */ {0x00000000,0xffffffff,0xfffffff8,0x00000000,0x00000000,PDF_OK}, /* 106 */ {0x00000001,0xffffffff,0xfffffff8,0x00000000,0x00000001,PDF_OK}, /* 107 */ {0x00000002,0xffffffff,0xfffffff8,0x00000000,0x00000002,PDF_OK}, /* 108 */ {0x00000004,0xffffffff,0xfffffff8,0x00000000,0x00000004,PDF_OK}, /* 109 */ {0x00000008,0xffffffff,0xfffffff8,0x00000000,0x00000000,PDF_OK}, /* 110 */ {0x7ffffff8,0xffffffff,0xfffffff8,0x00000000,0x00000000,PDF_OK}, /* 111 */ {0x7ffffffb,0xffffffff,0xfffffff8,0x00000000,0x00000003,PDF_OK}, /* 112 */ {0x7ffffffd,0xffffffff,0xfffffff8,0x00000000,0x00000005,PDF_OK}, /* 113 */ {0x7ffffffe,0xffffffff,0xfffffff8,0x00000000,0x00000006,PDF_OK}, /* 114 */ {0x7fffffff,0xffffffff,0xfffffff8,0x00000000,0x00000007,PDF_OK}, /* 115 */ {0x80000000,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 116 */ {0x80000001,0xffffffff,0xfffffffc,0xffffffff,0xfffffffd,PDF_OK}, /* 117 */ {0x80000002,0xffffffff,0xfffffffc,0xffffffff,0xfffffffe,PDF_OK}, /* 118 */ {0x80000004,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 119 */ {0x80000008,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 120 */ {0xfffffff8,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 121 */ {0xfffffffc,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 122 */ {0xfffffffe,0xffffffff,0xfffffffc,0xffffffff,0xfffffffe,PDF_OK}, /* 123 */ {0xffffffff,0xffffffff,0xfffffffc,0xffffffff,0xffffffff,PDF_OK}, /* 124 */ {0x00000000,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 125 */ {0x00000001,0xffffffff,0xfffffffc,0x00000000,0x00000001,PDF_OK}, /* 126 */ {0x00000002,0xffffffff,0xfffffffc,0x00000000,0x00000002,PDF_OK}, /* 127 */ {0x00000004,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 128 */ {0x00000008,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 129 */ {0x7ffffff8,0xffffffff,0xfffffffc,0x00000000,0x00000000,PDF_OK}, /* 130 */ {0x7ffffffb,0xffffffff,0xfffffffc,0x00000000,0x00000003,PDF_OK}, /* 131 */ {0x7ffffffd,0xffffffff,0xfffffffc,0x00000000,0x00000001,PDF_OK}, /* 132 */ {0x7ffffffe,0xffffffff,0xfffffffc,0x00000000,0x00000002,PDF_OK}, /* 133 */ {0x7fffffff,0xffffffff,0xfffffffc,0x00000000,0x00000003,PDF_OK}, /* 134 */ {0x80000000,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 135 */ {0x80000001,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,PDF_OK}, /* 136 */ {0x80000002,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 137 */ {0x80000004,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 138 */ {0x80000008,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 139 */ {0xfffffff8,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 140 */ {0xfffffffc,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 141 */ {0xfffffffe,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 142 */ {0xffffffff,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,PDF_OK}, /* 143 */ {0x00000000,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 144 */ {0x00000001,0xffffffff,0xfffffffe,0x00000000,0x00000001,PDF_OK}, /* 145 */ {0x00000002,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 146 */ {0x00000004,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 147 */ {0x00000008,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 148 */ {0x7ffffff8,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 149 */ {0x7ffffffb,0xffffffff,0xfffffffe,0x00000000,0x00000001,PDF_OK}, /* 150 */ {0x7ffffffd,0xffffffff,0xfffffffe,0x00000000,0x00000001,PDF_OK}, /* 151 */ {0x7ffffffe,0xffffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 152 */ {0x7fffffff,0xffffffff,0xfffffffe,0x00000000,0x00000001,PDF_OK}, /* 153 */ {0x80000000,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 154 */ {0x80000001,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 155 */ {0x80000002,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 156 */ {0x80000004,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 157 */ {0x80000008,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 158 */ {0xfffffff8,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 159 */ {0xfffffffc,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 160 */ {0xfffffffe,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 161 */ {0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 162 */ {0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 163 */ {0x00000001,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 164 */ {0x00000002,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 165 */ {0x00000004,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 166 */ {0x00000008,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 167 */ {0x7ffffff8,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 168 */ {0x7ffffffb,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 169 */ {0x7ffffffd,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 170 */ {0x7ffffffe,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 171 */ {0x7fffffff,0xffffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 172 */ {0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 173 */ {0x80000001,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 174 */ {0x80000002,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 175 */ {0x80000004,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 176 */ {0x80000008,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 177 */ {0xfffffff8,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 178 */ {0xfffffffc,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 179 */ {0xfffffffe,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 180 */ {0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 181 */ {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 182 */ {0x00000001,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 183 */ {0x00000002,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 184 */ {0x00000004,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 185 */ {0x00000008,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 186 */ {0x7ffffff8,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 187 */ {0x7ffffffb,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 188 */ {0x7ffffffd,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 189 */ {0x7ffffffe,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 190 */ {0x7fffffff,0x00000000,0x00000000,0x00000000,0x00000000,PDF_EDIVBYZERO}, /* 191 */ {0x80000000,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 192 */ {0x80000001,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 193 */ {0x80000002,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 194 */ {0x80000004,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 195 */ {0x80000008,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 196 */ {0xfffffff8,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 197 */ {0xfffffffc,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 198 */ {0xfffffffe,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 199 */ {0xffffffff,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 200 */ {0x00000000,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 201 */ {0x00000001,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 202 */ {0x00000002,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 203 */ {0x00000004,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 204 */ {0x00000008,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 205 */ {0x7ffffff8,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 206 */ {0x7ffffffb,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 207 */ {0x7ffffffd,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 208 */ {0x7ffffffe,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 209 */ {0x7fffffff,0x00000000,0x00000001,0x00000000,0x00000000,PDF_OK}, /* 210 */ {0x80000000,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 211 */ {0x80000001,0x00000000,0x00000002,0xffffffff,0xffffffff,PDF_OK}, /* 212 */ {0x80000002,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 213 */ {0x80000004,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 214 */ {0x80000008,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 215 */ {0xfffffff8,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 216 */ {0xfffffffc,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 217 */ {0xfffffffe,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 218 */ {0xffffffff,0x00000000,0x00000002,0xffffffff,0xffffffff,PDF_OK}, /* 219 */ {0x00000000,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 220 */ {0x00000001,0x00000000,0x00000002,0x00000000,0x00000001,PDF_OK}, /* 221 */ {0x00000002,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 222 */ {0x00000004,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 223 */ {0x00000008,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 224 */ {0x7ffffff8,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 225 */ {0x7ffffffb,0x00000000,0x00000002,0x00000000,0x00000001,PDF_OK}, /* 226 */ {0x7ffffffd,0x00000000,0x00000002,0x00000000,0x00000001,PDF_OK}, /* 227 */ {0x7ffffffe,0x00000000,0x00000002,0x00000000,0x00000000,PDF_OK}, /* 228 */ {0x7fffffff,0x00000000,0x00000002,0x00000000,0x00000001,PDF_OK}, /* 229 */ {0x80000000,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 230 */ {0x80000001,0x00000000,0x00000004,0xffffffff,0xfffffffd,PDF_OK}, /* 231 */ {0x80000002,0x00000000,0x00000004,0xffffffff,0xfffffffe,PDF_OK}, /* 232 */ {0x80000004,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 233 */ {0x80000008,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 234 */ {0xfffffff8,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 235 */ {0xfffffffc,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 236 */ {0xfffffffe,0x00000000,0x00000004,0xffffffff,0xfffffffe,PDF_OK}, /* 237 */ {0xffffffff,0x00000000,0x00000004,0xffffffff,0xffffffff,PDF_OK}, /* 238 */ {0x00000000,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 239 */ {0x00000001,0x00000000,0x00000004,0x00000000,0x00000001,PDF_OK}, /* 240 */ {0x00000002,0x00000000,0x00000004,0x00000000,0x00000002,PDF_OK}, /* 241 */ {0x00000004,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 242 */ {0x00000008,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 243 */ {0x7ffffff8,0x00000000,0x00000004,0x00000000,0x00000000,PDF_OK}, /* 244 */ {0x7ffffffb,0x00000000,0x00000004,0x00000000,0x00000003,PDF_OK}, /* 245 */ {0x7ffffffd,0x00000000,0x00000004,0x00000000,0x00000001,PDF_OK}, /* 246 */ {0x7ffffffe,0x00000000,0x00000004,0x00000000,0x00000002,PDF_OK}, /* 247 */ {0x7fffffff,0x00000000,0x00000004,0x00000000,0x00000003,PDF_OK}, /* 248 */ {0x80000000,0x00000000,0x00000008,0x00000000,0x00000000,PDF_OK}, /* 249 */ {0x80000001,0x00000000,0x00000008,0xffffffff,0xfffffff9,PDF_OK}, /* 250 */ {0x80000002,0x00000000,0x00000008,0xffffffff,0xfffffffa,PDF_OK}, /* 251 */ {0x80000004,0x00000000,0x00000008,0xffffffff,0xfffffffc,PDF_OK}, /* 252 */ {0x80000008,0x00000000,0x00000008,0x00000000,0x00000000,PDF_OK}, /* 253 */ {0xfffffff8,0x00000000,0x00000008,0x00000000,0x00000000,PDF_OK}, /* 254 */ {0xfffffffc,0x00000000,0x00000008,0xffffffff,0xfffffffc,PDF_OK}, /* 255 */ {0xfffffffe,0x00000000,0x00000008,0xffffffff,0xfffffffe,PDF_OK}, /* 256 */ {0xffffffff,0x00000000,0x00000008,0xffffffff,0xffffffff,PDF_OK}, /* 257 */ {0x00000000,0x00000000,0x00000008,0x00000000,0x00000000,PDF_OK}, /* 258 */ {0x00000001,0x00000000,0x00000008,0x00000000,0x00000001,PDF_OK}, /* 259 */ {0x00000002,0x00000000,0x00000008,0x00000000,0x00000002,PDF_OK}, /* 260 */ {0x00000004,0x00000000,0x00000008,0x00000000,0x00000004,PDF_OK}, /* 261 */ {0x00000008,0x00000000,0x00000008,0x00000000,0x00000000,PDF_OK}, /* 262 */ {0x7ffffff8,0x00000000,0x00000008,0x00000000,0x00000000,PDF_OK}, /* 263 */ {0x7ffffffb,0x00000000,0x00000008,0x00000000,0x00000003,PDF_OK}, /* 264 */ {0x7ffffffd,0x00000000,0x00000008,0x00000000,0x00000005,PDF_OK}, /* 265 */ {0x7ffffffe,0x00000000,0x00000008,0x00000000,0x00000006,PDF_OK}, /* 266 */ {0x7fffffff,0x00000000,0x00000008,0x00000000,0x00000007,PDF_OK}, /* 267 */ {0x80000000,0x7fffffff,0xfffffff8,0xffffffff,0x80000000,PDF_OK}, /* 268 */ {0x80000001,0x7fffffff,0xfffffff8,0xffffffff,0x80000001,PDF_OK}, /* 269 */ {0x80000002,0x7fffffff,0xfffffff8,0xffffffff,0x80000002,PDF_OK}, /* 270 */ {0x80000004,0x7fffffff,0xfffffff8,0xffffffff,0x80000004,PDF_OK}, /* 271 */ {0x80000008,0x7fffffff,0xfffffff8,0xffffffff,0x80000008,PDF_OK}, /* 272 */ {0xfffffff8,0x7fffffff,0xfffffff8,0xffffffff,0xfffffff8,PDF_OK}, /* 273 */ {0xfffffffc,0x7fffffff,0xfffffff8,0xffffffff,0xfffffffc,PDF_OK}, /* 274 */ {0xfffffffe,0x7fffffff,0xfffffff8,0xffffffff,0xfffffffe,PDF_OK}, /* 275 */ {0xffffffff,0x7fffffff,0xfffffff8,0xffffffff,0xffffffff,PDF_OK}, /* 276 */ {0x00000000,0x7fffffff,0xfffffff8,0x00000000,0x00000000,PDF_OK}, /* 277 */ {0x00000001,0x7fffffff,0xfffffff8,0x00000000,0x00000001,PDF_OK}, /* 278 */ {0x00000002,0x7fffffff,0xfffffff8,0x00000000,0x00000002,PDF_OK}, /* 279 */ {0x00000004,0x7fffffff,0xfffffff8,0x00000000,0x00000004,PDF_OK}, /* 280 */ {0x00000008,0x7fffffff,0xfffffff8,0x00000000,0x00000008,PDF_OK}, /* 281 */ {0x7ffffff8,0x7fffffff,0xfffffff8,0x00000000,0x7ffffff8,PDF_OK}, /* 282 */ {0x7ffffffb,0x7fffffff,0xfffffff8,0x00000000,0x7ffffffb,PDF_OK}, /* 283 */ {0x7ffffffd,0x7fffffff,0xfffffff8,0x00000000,0x7ffffffd,PDF_OK}, /* 284 */ {0x7ffffffe,0x7fffffff,0xfffffff8,0x00000000,0x7ffffffe,PDF_OK}, /* 285 */ {0x7fffffff,0x7fffffff,0xfffffff8,0x00000000,0x7fffffff,PDF_OK}, /* 286 */ {0x80000000,0x7fffffff,0xfffffffb,0xffffffff,0x80000000,PDF_OK}, /* 287 */ {0x80000001,0x7fffffff,0xfffffffb,0xffffffff,0x80000001,PDF_OK}, /* 288 */ {0x80000002,0x7fffffff,0xfffffffb,0xffffffff,0x80000002,PDF_OK}, /* 289 */ {0x80000004,0x7fffffff,0xfffffffb,0xffffffff,0x80000004,PDF_OK}, /* 290 */ {0x80000008,0x7fffffff,0xfffffffb,0xffffffff,0x80000008,PDF_OK}, /* 291 */ {0xfffffff8,0x7fffffff,0xfffffffb,0xffffffff,0xfffffff8,PDF_OK}, /* 292 */ {0xfffffffc,0x7fffffff,0xfffffffb,0xffffffff,0xfffffffc,PDF_OK}, /* 293 */ {0xfffffffe,0x7fffffff,0xfffffffb,0xffffffff,0xfffffffe,PDF_OK}, /* 294 */ {0xffffffff,0x7fffffff,0xfffffffb,0xffffffff,0xffffffff,PDF_OK}, /* 295 */ {0x00000000,0x7fffffff,0xfffffffb,0x00000000,0x00000000,PDF_OK}, /* 296 */ {0x00000001,0x7fffffff,0xfffffffb,0x00000000,0x00000001,PDF_OK}, /* 297 */ {0x00000002,0x7fffffff,0xfffffffb,0x00000000,0x00000002,PDF_OK}, /* 298 */ {0x00000004,0x7fffffff,0xfffffffb,0x00000000,0x00000004,PDF_OK}, /* 299 */ {0x00000008,0x7fffffff,0xfffffffb,0x00000000,0x00000008,PDF_OK}, /* 300 */ {0x7ffffff8,0x7fffffff,0xfffffffb,0x00000000,0x7ffffff8,PDF_OK}, /* 301 */ {0x7ffffffb,0x7fffffff,0xfffffffb,0x00000000,0x7ffffffb,PDF_OK}, /* 302 */ {0x7ffffffd,0x7fffffff,0xfffffffb,0x00000000,0x7ffffffd,PDF_OK}, /* 303 */ {0x7ffffffe,0x7fffffff,0xfffffffb,0x00000000,0x7ffffffe,PDF_OK}, /* 304 */ {0x7fffffff,0x7fffffff,0xfffffffb,0x00000000,0x7fffffff,PDF_OK}, /* 305 */ {0x80000000,0x7fffffff,0xfffffffd,0xffffffff,0x80000000,PDF_OK}, /* 306 */ {0x80000001,0x7fffffff,0xfffffffd,0xffffffff,0x80000001,PDF_OK}, /* 307 */ {0x80000002,0x7fffffff,0xfffffffd,0xffffffff,0x80000002,PDF_OK}, /* 308 */ {0x80000004,0x7fffffff,0xfffffffd,0xffffffff,0x80000004,PDF_OK}, /* 309 */ {0x80000008,0x7fffffff,0xfffffffd,0xffffffff,0x80000008,PDF_OK}, /* 310 */ {0xfffffff8,0x7fffffff,0xfffffffd,0xffffffff,0xfffffff8,PDF_OK}, /* 311 */ {0xfffffffc,0x7fffffff,0xfffffffd,0xffffffff,0xfffffffc,PDF_OK}, /* 312 */ {0xfffffffe,0x7fffffff,0xfffffffd,0xffffffff,0xfffffffe,PDF_OK}, /* 313 */ {0xffffffff,0x7fffffff,0xfffffffd,0xffffffff,0xffffffff,PDF_OK}, /* 314 */ {0x00000000,0x7fffffff,0xfffffffd,0x00000000,0x00000000,PDF_OK}, /* 315 */ {0x00000001,0x7fffffff,0xfffffffd,0x00000000,0x00000001,PDF_OK}, /* 316 */ {0x00000002,0x7fffffff,0xfffffffd,0x00000000,0x00000002,PDF_OK}, /* 317 */ {0x00000004,0x7fffffff,0xfffffffd,0x00000000,0x00000004,PDF_OK}, /* 318 */ {0x00000008,0x7fffffff,0xfffffffd,0x00000000,0x00000008,PDF_OK}, /* 319 */ {0x7ffffff8,0x7fffffff,0xfffffffd,0x00000000,0x7ffffff8,PDF_OK}, /* 320 */ {0x7ffffffb,0x7fffffff,0xfffffffd,0x00000000,0x7ffffffb,PDF_OK}, /* 321 */ {0x7ffffffd,0x7fffffff,0xfffffffd,0x00000000,0x7ffffffd,PDF_OK}, /* 322 */ {0x7ffffffe,0x7fffffff,0xfffffffd,0x00000000,0x7ffffffe,PDF_OK}, /* 323 */ {0x7fffffff,0x7fffffff,0xfffffffd,0x00000000,0x7fffffff,PDF_OK}, /* 324 */ {0x80000000,0x7fffffff,0xfffffffe,0xffffffff,0x80000000,PDF_OK}, /* 325 */ {0x80000001,0x7fffffff,0xfffffffe,0xffffffff,0x80000001,PDF_OK}, /* 326 */ {0x80000002,0x7fffffff,0xfffffffe,0xffffffff,0x80000002,PDF_OK}, /* 327 */ {0x80000004,0x7fffffff,0xfffffffe,0xffffffff,0x80000004,PDF_OK}, /* 328 */ {0x80000008,0x7fffffff,0xfffffffe,0xffffffff,0x80000008,PDF_OK}, /* 329 */ {0xfffffff8,0x7fffffff,0xfffffffe,0xffffffff,0xfffffff8,PDF_OK}, /* 330 */ {0xfffffffc,0x7fffffff,0xfffffffe,0xffffffff,0xfffffffc,PDF_OK}, /* 331 */ {0xfffffffe,0x7fffffff,0xfffffffe,0xffffffff,0xfffffffe,PDF_OK}, /* 332 */ {0xffffffff,0x7fffffff,0xfffffffe,0xffffffff,0xffffffff,PDF_OK}, /* 333 */ {0x00000000,0x7fffffff,0xfffffffe,0x00000000,0x00000000,PDF_OK}, /* 334 */ {0x00000001,0x7fffffff,0xfffffffe,0x00000000,0x00000001,PDF_OK}, /* 335 */ {0x00000002,0x7fffffff,0xfffffffe,0x00000000,0x00000002,PDF_OK}, /* 336 */ {0x00000004,0x7fffffff,0xfffffffe,0x00000000,0x00000004,PDF_OK}, /* 337 */ {0x00000008,0x7fffffff,0xfffffffe,0x00000000,0x00000008,PDF_OK}, /* 338 */ {0x7ffffff8,0x7fffffff,0xfffffffe,0x00000000,0x7ffffff8,PDF_OK}, /* 339 */ {0x7ffffffb,0x7fffffff,0xfffffffe,0x00000000,0x7ffffffb,PDF_OK}, /* 340 */ {0x7ffffffd,0x7fffffff,0xfffffffe,0x00000000,0x7ffffffd,PDF_OK}, /* 341 */ {0x7ffffffe,0x7fffffff,0xfffffffe,0x00000000,0x7ffffffe,PDF_OK}, /* 342 */ {0x7fffffff,0x7fffffff,0xfffffffe,0x00000000,0x7fffffff,PDF_OK}, /* 343 */ {0x80000000,0x7fffffff,0xffffffff,0xffffffff,0x80000000,PDF_OK}, /* 344 */ {0x80000001,0x7fffffff,0xffffffff,0xffffffff,0x80000001,PDF_OK}, /* 345 */ {0x80000002,0x7fffffff,0xffffffff,0xffffffff,0x80000002,PDF_OK}, /* 346 */ {0x80000004,0x7fffffff,0xffffffff,0xffffffff,0x80000004,PDF_OK}, /* 347 */ {0x80000008,0x7fffffff,0xffffffff,0xffffffff,0x80000008,PDF_OK}, /* 348 */ {0xfffffff8,0x7fffffff,0xffffffff,0xffffffff,0xfffffff8,PDF_OK}, /* 349 */ {0xfffffffc,0x7fffffff,0xffffffff,0xffffffff,0xfffffffc,PDF_OK}, /* 350 */ {0xfffffffe,0x7fffffff,0xffffffff,0xffffffff,0xfffffffe,PDF_OK}, /* 351 */ {0xffffffff,0x7fffffff,0xffffffff,0xffffffff,0xffffffff,PDF_OK}, /* 352 */ {0x00000000,0x7fffffff,0xffffffff,0x00000000,0x00000000,PDF_OK}, /* 353 */ {0x00000001,0x7fffffff,0xffffffff,0x00000000,0x00000001,PDF_OK}, /* 354 */ {0x00000002,0x7fffffff,0xffffffff,0x00000000,0x00000002,PDF_OK}, /* 355 */ {0x00000004,0x7fffffff,0xffffffff,0x00000000,0x00000004,PDF_OK}, /* 356 */ {0x00000008,0x7fffffff,0xffffffff,0x00000000,0x00000008,PDF_OK}, /* 357 */ {0x7ffffff8,0x7fffffff,0xffffffff,0x00000000,0x7ffffff8,PDF_OK}, /* 358 */ {0x7ffffffb,0x7fffffff,0xffffffff,0x00000000,0x7ffffffb,PDF_OK}, /* 359 */ {0x7ffffffd,0x7fffffff,0xffffffff,0x00000000,0x7ffffffd,PDF_OK}, /* 360 */ {0x7ffffffe,0x7fffffff,0xffffffff,0x00000000,0x7ffffffe,PDF_OK}, /* 361 */ {0x7fffffff,0x7fffffff,0xffffffff,0x00000000,0x7fffffff,PDF_OK}, }; /* * Test: pdf_i64_mod_i32_dividend_001 * Description: * Checks if the modulus of two numbers is carried out properly * Success conditions: * The call should not produce an error */ START_TEST(pdf_i64_mod_i32_dividend_001) { pdf_init (); /* s1 = expected status, s2 = returned status */ pdf_status_t s1, s2; /* q1 is expected, q2 is calculated */ pdf_i32_t n; pdf_i64_t d, r1, r2; int i; for (i = 0; i < sizeof (tests_mod_i32_dividend) / sizeof (tests_mod_i32_dividend[0]); i++) { const KnownAnswer ka = tests_mod_i32_dividend[i]; n = ka.n; d = pdf_i64_new (ka.dh, ka.dl); r1 = pdf_i64_new (ka.rh, ka.rl); s1 = (pdf_status_t) ka.st; pdf_i64_mod_i32_dividend (&r2, n, d, &s2); /* Courtesy due to data set size */ if (s1 != s2 || (s1 == PDF_OK && PDF_TRUE != pdf_i64_eq (r1, r2))) { PDF_DEBUG_BASE (" Reduction (i32 dividend) test %d failed\n", i + 1); } /* Real test occurs here */ fail_if (s1 != s2); if (s1 == PDF_OK) { fail_if (PDF_TRUE != pdf_i64_eq (r1, r2)); } } } END_TEST /* * Test: pdf_i64_mod_i32_dividend_002 * Description: * Checks the status of a NULL destination * Success conditions: * The call should produce an error */ START_TEST (pdf_i64_mod_i32_dividend_002) { pdf_init(); pdf_i32_t n; pdf_i64_t m; pdf_status_t status; pdf_i64_mod_i32_dividend((pdf_i64_t*)NULL, n, m, &status); fail_unless(status == PDF_EBADDATA); } END_TEST /* * Test case creation function */ TCase * test_pdf_i64_mod_i32_dividend (void) { TCase *tc = tcase_create("pdf_i64_mod_i32_dividend"); tcase_add_test(tc, pdf_i64_mod_i32_dividend_001); tcase_add_test(tc, pdf_i64_mod_i32_dividend_002); return tc; } /* End of pdf-i64-mod-i32-dividend.c */