/* -*- 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 */