From 4dd7463f9ecf27aecccbb19f684d8ad03d12d1e2 Mon Sep 17 00:00:00 2001 From: LiarPrincess <4982138+LiarPrincess@users.noreply.github.com> Date: Sat, 9 Apr 2022 20:39:53 +0200 Subject: [PATCH 1/2] [Violet] Node tests --- .gitignore | 2 + BigInt.xcodeproj/project.pbxproj | 24 + Scripts/bigint_generate_node_tests/.gitignore | 5 + Scripts/bigint_generate_node_tests/README.md | 42 + Scripts/bigint_generate_node_tests/main.sh | 2 + .../bigint_generate_node_tests/package.json | 15 + .../src/all_pairings.ts | 16 + Scripts/bigint_generate_node_tests/src/app.ts | 44 + .../src/number_generators.ts | 71 + .../src/printing_functions.ts | 202 + .../bigint_generate_node_tests/tsconfig.json | 29 + .../bigint_generate_node_tests/tslint.json | 60 + .../Violet - Node/NodeTests+Support.swift | 433 + .../BigIntTests/Violet - Node/NodeTests.swift | 21380 ++++++++++++++++ 14 files changed, 22325 insertions(+) create mode 100644 Scripts/bigint_generate_node_tests/.gitignore create mode 100644 Scripts/bigint_generate_node_tests/README.md create mode 100755 Scripts/bigint_generate_node_tests/main.sh create mode 100644 Scripts/bigint_generate_node_tests/package.json create mode 100644 Scripts/bigint_generate_node_tests/src/all_pairings.ts create mode 100644 Scripts/bigint_generate_node_tests/src/app.ts create mode 100644 Scripts/bigint_generate_node_tests/src/number_generators.ts create mode 100644 Scripts/bigint_generate_node_tests/src/printing_functions.ts create mode 100644 Scripts/bigint_generate_node_tests/tsconfig.json create mode 100644 Scripts/bigint_generate_node_tests/tslint.json create mode 100644 Tests/BigIntTests/Violet - Node/NodeTests+Support.swift create mode 100644 Tests/BigIntTests/Violet - Node/NodeTests.swift diff --git a/.gitignore b/.gitignore index 59f40b1..6f2c10f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ +.DS_Store /Carthage/Build /.build +/Build /Packages xcuserdata /Package.pins diff --git a/BigInt.xcodeproj/project.pbxproj b/BigInt.xcodeproj/project.pbxproj index 2402d2b..e1490d4 100644 --- a/BigInt.xcodeproj/project.pbxproj +++ b/BigInt.xcodeproj/project.pbxproj @@ -7,6 +7,12 @@ objects = { /* Begin PBXBuildFile section */ + 903767082801E0F000F4DF61 /* NodeTests+Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903767062801E0F000F4DF61 /* NodeTests+Support.swift */; }; + 903767092801E0F000F4DF61 /* NodeTests+Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903767062801E0F000F4DF61 /* NodeTests+Support.swift */; }; + 9037670A2801E0F000F4DF61 /* NodeTests+Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903767062801E0F000F4DF61 /* NodeTests+Support.swift */; }; + 9037670B2801E0F000F4DF61 /* NodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903767072801E0F000F4DF61 /* NodeTests.swift */; }; + 9037670C2801E0F000F4DF61 /* NodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903767072801E0F000F4DF61 /* NodeTests.swift */; }; + 9037670D2801E0F000F4DF61 /* NodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 903767072801E0F000F4DF61 /* NodeTests.swift */; }; BB241C441DDB70600067F917 /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C301DDB70600067F917 /* Addition.swift */; }; BB241C451DDB70600067F917 /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C311DDB70600067F917 /* Bitwise Ops.swift */; }; BB241C461DDB70600067F917 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C321DDB70600067F917 /* Comparable.swift */; }; @@ -149,6 +155,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 903767062801E0F000F4DF61 /* NodeTests+Support.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NodeTests+Support.swift"; sourceTree = ""; }; + 903767072801E0F000F4DF61 /* NodeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NodeTests.swift; sourceTree = ""; }; BB241BC51DD9F6490067F917 /* Package.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; BB241BC71DD9F7D60067F917 /* BigInt.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = BigInt.podspec; sourceTree = ""; }; BB241C2F1DDB70600067F917 /* BigInt.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BigInt.swift; sourceTree = ""; }; @@ -260,6 +268,15 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 903767052801E0CB00F4DF61 /* Violet - Node */ = { + isa = PBXGroup; + children = ( + 903767072801E0F000F4DF61 /* NodeTests.swift */, + 903767062801E0F000F4DF61 /* NodeTests+Support.swift */, + ); + path = "Violet - Node"; + sourceTree = ""; + }; BB241CCB1DDB71DB0067F917 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -333,6 +350,7 @@ BBB55AC01C8F80020050DDA9 /* Tests */ = { isa = PBXGroup; children = ( + 903767052801E0CB00F4DF61 /* Violet - Node */, BB241C561DDB70690067F917 /* BigIntTests.swift */, BB241C571DDB70690067F917 /* BigUIntTests.swift */, BBEAE4DC1F28C37800F4E329 /* WordTests.swift */, @@ -692,6 +710,8 @@ BB4273F61F24AFCC00065766 /* Tools.swift in Sources */, BBEAE4DD1F28C37800F4E329 /* WordTests.swift in Sources */, BB241CE41DDB79E30067F917 /* BigUIntTests.swift in Sources */, + 903767082801E0F000F4DF61 /* NodeTests+Support.swift in Sources */, + 9037670B2801E0F000F4DF61 /* NodeTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -728,6 +748,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 903767092801E0F000F4DF61 /* NodeTests+Support.swift in Sources */, + 9037670C2801E0F000F4DF61 /* NodeTests.swift in Sources */, BB4273F71F24AFCD00065766 /* Tools.swift in Sources */, BB9916911F33C32000CCFDDC /* WordTests.swift in Sources */, BB9916901F32610A00CCFDDC /* BigUIntTests.swift in Sources */, @@ -802,6 +824,8 @@ BB4273F81F24AFCD00065766 /* Tools.swift in Sources */, BBEAE4DF1F28C37800F4E329 /* WordTests.swift in Sources */, BB241CDC1DDB79E20067F917 /* BigUIntTests.swift in Sources */, + 9037670A2801E0F000F4DF61 /* NodeTests+Support.swift in Sources */, + 9037670D2801E0F000F4DF61 /* NodeTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Scripts/bigint_generate_node_tests/.gitignore b/Scripts/bigint_generate_node_tests/.gitignore new file mode 100644 index 0000000..9ac8355 --- /dev/null +++ b/Scripts/bigint_generate_node_tests/.gitignore @@ -0,0 +1,5 @@ +/node_modules +/dist +/.vscode +package-lock.json +out.swift diff --git a/Scripts/bigint_generate_node_tests/README.md b/Scripts/bigint_generate_node_tests/README.md new file mode 100644 index 0000000..ef96692 --- /dev/null +++ b/Scripts/bigint_generate_node_tests/README.md @@ -0,0 +1,42 @@ +# What is this? + +This script will use [Node.js](https://nodejs.org/en/) to generate tests for our `BigInt`. + +Those tests should replace `/Tests/BigIntTests/Violet - Node`. + +Example test: + +```Swift + func test_add_smi_smi() { + // This whole test has ~500 lines, this is just an extract: + self.addTest(lhs: "0", rhs: "0", expecting: "0") + self.addTest(lhs: "0", rhs: "1", expecting: "1") + self.addTest(lhs: "0", rhs: "-1", expecting: "-1") + self.addTest(lhs: "0", rhs: "2147483647", expecting: "2147483647") + self.addTest(lhs: "1", rhs: "0", expecting: "1") + self.addTest(lhs: "1", rhs: "1", expecting: "2") + self.addTest(lhs: "1", rhs: "-1", expecting: "0") + self.addTest(lhs: "1", rhs: "2147483647", expecting: "2147483648") + self.addTest(lhs: "-1", rhs: "0", expecting: "-1") + self.addTest(lhs: "-1", rhs: "1", expecting: "0") + self.addTest(lhs: "-1", rhs: "-1", expecting: "-2") + self.addTest(lhs: "-1", rhs: "-1073741828", expecting: "-1073741829") + self.addTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.addTest(lhs: "2147483647", rhs: "1", expecting: "2147483648") + self.addTest(lhs: "2147483647", rhs: "-1", expecting: "2147483646") + self.addTest(lhs: "2147483647", rhs: "2147483647", expecting: "4294967294") + } +``` + +# How to run? + +Requires [Node.js](https://nodejs.org/en/). + +Run the following commands from the repository root: +``` +cd ./Scripts/bigint_generate_node_tests +npm i +./main.sh +``` + +This will generate `out.swift` file with the result. diff --git a/Scripts/bigint_generate_node_tests/main.sh b/Scripts/bigint_generate_node_tests/main.sh new file mode 100755 index 0000000..abdb051 --- /dev/null +++ b/Scripts/bigint_generate_node_tests/main.sh @@ -0,0 +1,2 @@ +./node_modules/.bin/tsc +node ./dist/app.js > out.swift diff --git a/Scripts/bigint_generate_node_tests/package.json b/Scripts/bigint_generate_node_tests/package.json new file mode 100644 index 0000000..2d3d36a --- /dev/null +++ b/Scripts/bigint_generate_node_tests/package.json @@ -0,0 +1,15 @@ +{ + "name": "generate_big_int_tests", + "version": "1.0.0", + "description": "", + "main": "dst/app.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@types/node": "^11.10.2", + "typescript": "^3.9.5" + } +} diff --git a/Scripts/bigint_generate_node_tests/src/all_pairings.ts b/Scripts/bigint_generate_node_tests/src/all_pairings.ts new file mode 100644 index 0000000..f29ec8b --- /dev/null +++ b/Scripts/bigint_generate_node_tests/src/all_pairings.ts @@ -0,0 +1,16 @@ +export interface BigIntPair { + lhs: bigint; + rhs: bigint; +} + +export function allPossiblePairings(lhsValues: bigint[], rhsValues: bigint[]): BigIntPair[] { + const result: BigIntPair[] = []; + + for (const lhs of lhsValues) { + for (const rhs of rhsValues) { + result.push({ lhs, rhs }); + } + } + + return result; +} diff --git a/Scripts/bigint_generate_node_tests/src/app.ts b/Scripts/bigint_generate_node_tests/src/app.ts new file mode 100644 index 0000000..d523b94 --- /dev/null +++ b/Scripts/bigint_generate_node_tests/src/app.ts @@ -0,0 +1,44 @@ +import { + printUnaryOperationTests, + printBinaryOperationTests, + printDivModTests, + printPowerTests, + printShiftOperationTests +} from './printing_functions'; + +console.log(`\ +// So you made a mistake of opening this file... +// Ehh... + +import XCTest +@testable import BigInt + +/// Tests generated by Node.js. +/// See 'Scripts/bigint_generate_node_tests' for details. +/// +/// We could have used some other bigint library (for example GMP), +/// but this is a bit easier to manage. +class NodeTests: XCTestCase { +`); + +printUnaryOperationTests('Plus', (a) => a); +printUnaryOperationTests('Minus', (a) => -a); +printUnaryOperationTests('Invert', (a) => ~a); + +printBinaryOperationTests('Add', (a, b) => a + b); +printBinaryOperationTests('Sub', (a, b) => a - b); +printBinaryOperationTests('Mul', (a, b) => a * b); +printBinaryOperationTests('Div', (a, b) => a / b); +printBinaryOperationTests('Mod', (a, b) => a % b); + +printDivModTests(); +printPowerTests(); + +printBinaryOperationTests('And', (a, b) => a & b); +printBinaryOperationTests('Or', (a, b) => a | b); +printBinaryOperationTests('Xor', (a, b) => a ^ b); + +printShiftOperationTests('Left', (a, b) => a << b); +printShiftOperationTests('Right', (a, b) => a >> b); + +console.log('}'); diff --git a/Scripts/bigint_generate_node_tests/src/number_generators.ts b/Scripts/bigint_generate_node_tests/src/number_generators.ts new file mode 100644 index 0000000..d642929 --- /dev/null +++ b/Scripts/bigint_generate_node_tests/src/number_generators.ts @@ -0,0 +1,71 @@ +// =========== +// === Smi === +// =========== + +export const smiMax = 2147483647n; +export const smiMin = -2147483648n; + +/** + * We will return `2 * countButNotReally + 3` values (don't ask). + */ +export function generateSmiNumbers(countButNotReally: number): bigint[] { + const result: bigint[] = []; + + result.push(0n); + result.push(1n); + result.push(-1n); + + const count = BigInt(countButNotReally); + const step = smiMax / count; + + for (let i = BigInt(0); i < countButNotReally; i++) { + const s = i * step; + + const fromMax = smiMax - s; + result.push(fromMax); + + const fromMin = smiMin + s; + result.push(fromMin); + } + + return result; +} + +// ============ +// === Heap === +// ============ + +export const wordMax = 18446744073709551615n; +export const wordMin = 0n; + +/** + * We will return `2 * countButNotReally + 5` values (don't ask). + */ +export function generateHeapNumbers(countButNotReally: number): bigint[] { + const result: bigint[] = []; + + result.push(0n); + result.push(1n); + result.push(-1n); + result.push(wordMax); + result.push(-wordMax); + + let word = 2n; // Start from '2' and go up + const maxWordCount = 3; + + for (let i = 0; i < countButNotReally; i++) { + const min1WordBecauseWeAlreadyAddedZero = 1 + const wordCount = (i % maxWordCount) + min1WordBecauseWeAlreadyAddedZero; + + let value = 1n; + for (let j = 0; j < wordCount; j++) { + value = value * wordMax + word; + word += 1n; + } + + result.push(value); + result.push(-value); + } + + return result; +} diff --git a/Scripts/bigint_generate_node_tests/src/printing_functions.ts b/Scripts/bigint_generate_node_tests/src/printing_functions.ts new file mode 100644 index 0000000..e412d42 --- /dev/null +++ b/Scripts/bigint_generate_node_tests/src/printing_functions.ts @@ -0,0 +1,202 @@ +import { allPossiblePairings, BigIntPair } from './all_pairings'; +import { generateSmiNumbers, generateHeapNumbers } from './number_generators'; + +const smiNumbers = generateSmiNumbers(10); +const heapNumbers = generateHeapNumbers(10); + +const smiSmiPairs = allPossiblePairings(smiNumbers, smiNumbers); +const smiHeapPairs = allPossiblePairings(smiNumbers, heapNumbers); +const heapSmiPairs = allPossiblePairings(heapNumbers, smiNumbers); +const heapHeapPairs = allPossiblePairings(heapNumbers, heapNumbers); + +// ======================== +// === Unary operations === +// ======================== + +export type UnaryOperation = (value: bigint) => bigint; + +export function printUnaryOperationTests(name: string, op: UnaryOperation) { + const nameLower = name.toLowerCase(); + const testFn = `self.${nameLower}Test`; + + console.log(` // MARK: - ${name}`); + console.log(); + + printUnaryOperationTest(`${nameLower}_smi`, testFn, smiNumbers, op); + printUnaryOperationTest(`${nameLower}_heap`, testFn, heapNumbers, op); +} + +function printUnaryOperationTest( + name: string, + testFn: string, + values: bigint[], + op: UnaryOperation +) { + console.log(` func test_${name}() {`); + for (const value of values) { + const expected = op(value); + console.log(` ${testFn}(value: "${value}", expecting: "${expected}")`); + } + + console.log(' }'); + console.log(); +} + +// ========================= +// === Binary operations === +// ========================= + +export type BinaryOperation = (lhs: bigint, rhs: bigint) => bigint; + +export function printBinaryOperationTests(name: string, op: BinaryOperation) { + const nameLower = name.toLowerCase(); + const testFn = `self.${nameLower}Test`; + + console.log(` // MARK: - ${name}`); + console.log(); + + printBinaryOperationTest(`${nameLower}_smi_smi`, testFn, smiSmiPairs, op); + printBinaryOperationTest(`${nameLower}_smi_heap`, testFn, smiHeapPairs, op); + printBinaryOperationTest(`${nameLower}_heap_smi`, testFn, heapSmiPairs, op); + printBinaryOperationTest(`${nameLower}_heap_heap`, testFn, heapHeapPairs, op); +} + +function printBinaryOperationTest( + name: string, + testFn: string, + values: BigIntPair[], + op: BinaryOperation +) { + const isDiv = name.startsWith('div') || name.startsWith('mod'); + + console.log(` func test_${name}() {`); + for (const { lhs, rhs } of values) { + if (isDiv && rhs == 0n) { + continue; // Well.. hello there! + } + + const expected = op(lhs, rhs); + console.log(` ${testFn}(lhs: "${lhs}", rhs: "${rhs}", expecting: "${expected}")`); + } + console.log(' }'); + console.log(); +} + +// =============== +// === Div mod === +// =============== + +export function printDivModTests() { + const name = 'DivMod'; + const nameLower = 'divMod'; + const testFn = `self.${nameLower}Test`; + + console.log(` // MARK: - ${name}`); + console.log(); + + printDivModTest(`${nameLower}_smi_smi`, testFn, smiSmiPairs); + printDivModTest(`${nameLower}_smi_heap`, testFn, smiHeapPairs); + printDivModTest(`${nameLower}_heap_smi`, testFn, heapSmiPairs); + printDivModTest(`${nameLower}_heap_heap`, testFn, heapHeapPairs); +} + +function printDivModTest( + name: string, + testFn: string, + values: BigIntPair[] +) { + const isDiv = true; + + console.log(` func test_${name}() {`); + for (const { lhs, rhs } of values) { + if (isDiv && rhs == 0n) { + continue; // Well.. hello there! + } + + const div = lhs / rhs; + const mod = lhs % rhs; + console.log(` ${testFn}(lhs: "${lhs}", rhs: "${rhs}", div: "${div}", mod: "${mod}")`); + } + console.log(' }'); + console.log(); +} + +// ============= +// === Power === +// ============= + +export function printPowerTests() { + const name = 'Power'; + const nameLower = 'power'; + const testFn = `self.${nameLower}Test`; + + console.log(` // MARK: - ${name}`); + console.log(); + + printPowerTest(`${nameLower}_smi`, testFn, smiNumbers); + printPowerTest(`${nameLower}_heap`, testFn, heapNumbers); +} + +const exponents = [0n, 1n, 2n, 3n, 5n, 10n]; + +function printPowerTest( + name: string, + testFn: string, + values: bigint[] +) { + const isDiv = true; + + console.log(` func test_${name}() {`); + for (const value of values) { + for (const exponent of exponents) { + const result = value ** exponent; + console.log(` ${testFn}(base: "${value}", exponent: ${exponent}, expecting: "${result}")`); + } + } + console.log(' }'); + console.log(); +} + +// ============== +// === Shifts === +// ============== + +export type ShiftOperation = (value: bigint, count: bigint) => bigint; + +export function printShiftOperationTests(name: string, op: ShiftOperation) { + const nameLower = name.toLowerCase(); + const testFn = `self.shift${name}Test`; + + const lessThanWord = 5n; + const word = 64n; + const moreThanWord = 64n + 64n - 7n; + + console.log(` // MARK: - Shift ${nameLower}`); + console.log(); + + printShiftTest(`shift${name}_smi_lessThanWord`, testFn, smiNumbers, lessThanWord, op); + printShiftTest(`shift${name}_smi_word`, testFn, smiNumbers, word, op); + printShiftTest(`shift${name}_smi_moreThanWord`, testFn, smiNumbers, moreThanWord, op); + + printShiftTest(`shift${name}_heap_lessThanWord`, testFn, heapNumbers, lessThanWord, op); + printShiftTest(`shift${name}_heap_word`, testFn, heapNumbers, word, op); + printShiftTest(`shift${name}_heap_moreThanWord`, testFn, heapNumbers, moreThanWord, op); +} + +function printShiftTest( + name: string, + testFn: string, + values: bigint[], + count: bigint, + op: ShiftOperation +) { + console.log(` func test_${name}() {`); + + for (const value of values) { + const expected = op(value, count); + console.log(` ${testFn}(value: "${value}", count: ${count}, expecting: "${expected}")`); + } + + console.log(' }'); + console.log(); +} diff --git a/Scripts/bigint_generate_node_tests/tsconfig.json b/Scripts/bigint_generate_node_tests/tsconfig.json new file mode 100644 index 0000000..df5514b --- /dev/null +++ b/Scripts/bigint_generate_node_tests/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + /* Basic Options */ + "target": "ESNext", + "module": "commonjs", + "lib": ["esnext"], + + "outDir": "./dist", + "rootDir": "./src", + + "inlineSourceMap": true, + + /* Strict Type-Checking Options */ + "strict": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + + /* Module Resolution Options */ + "baseUrl": "./src", + "moduleResolution": "node", + "esModuleInterop": true, + }, + "include": [ + "src/**/*.ts", + ], + "exclude": [ + "node_modules", + ] +} diff --git a/Scripts/bigint_generate_node_tests/tslint.json b/Scripts/bigint_generate_node_tests/tslint.json new file mode 100644 index 0000000..39d4260 --- /dev/null +++ b/Scripts/bigint_generate_node_tests/tslint.json @@ -0,0 +1,60 @@ +{ + "rules": { + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "indent": [ + true, + "spaces" + ], + "one-line": [ + true, + "check-open-brace", + "check-whitespace" + ], + "no-var-keyword": true, + "quotemark": [ + true, + "single", + "avoid-escape" + ], + "semicolon": [ + true, + "always", + "ignore-bound-class-methods" + ], + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-module", + "check-separator", + "check-type" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ], + "no-internal-module": true, + "no-trailing-whitespace": true, + "no-null-keyword": true, + "prefer-const": true, + "jsdoc-format": true + } +} diff --git a/Tests/BigIntTests/Violet - Node/NodeTests+Support.swift b/Tests/BigIntTests/Violet - Node/NodeTests+Support.swift new file mode 100644 index 0000000..b500875 --- /dev/null +++ b/Tests/BigIntTests/Violet - Node/NodeTests+Support.swift @@ -0,0 +1,433 @@ +import XCTest +import BigInt + +// Basically all of the code that does not need to be regenerated by Node. +extension NodeTests { + + // MARK: - Unary operations + + internal func plusTest(value: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.unaryOp(value: value, + expecting: expecting, + op: { +$0 }, + unsignedOp: { +$0 }, + file: file, + line: line) + } + + internal func minusTest(value: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.unaryOp(value: value, + expecting: expecting, + op: { -$0 }, + unsignedOp: nil, // no '-' for unsigned + file: file, + line: line) + } + + internal func invertTest(value: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.unaryOp(value: value, + expecting: expecting, + op: { ~$0 }, + unsignedOp: { ~$0 }, + file: file, + line: line) + } + + internal typealias UnaryOperation = (BigInt) -> BigInt + internal typealias UnsignedUnaryOperation = (BigUInt) -> BigUInt + + private func unaryOp(value _value: String, + expecting _expected: String, + op: UnaryOperation, + unsignedOp: UnsignedUnaryOperation?, + file: StaticString, + line: UInt) { + // === Signed === + guard let value = self.parseInt(_value, file: file, line: line), + let expected = self.parseInt(_expected, file: file, line: line) else { + return + } + + let result = op(value) + XCTAssertEqual(result, expected, "Signed", file: file, line: line) + + // === Unsigned === + guard let uOp = unsignedOp, + let uValue = self.parseUInt(_value, file: file, line: line), + let uExpected = self.parseUInt(_expected, file: file, line: line) else { + return + } + + let uResult = uOp(uValue) + XCTAssertEqual(uResult, uExpected, "Unsigned", file: file, line: line) + } + + // MARK: - Binary operations + + internal func addTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 + $1 }, + inoutOp: { $0 += $1 }, + unsignedOp: { $0 + $1 }, + unsignedInoutOp: { $0 += $1 }, + file: file, + line: line) + } + + internal func subTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 - $1 }, + inoutOp: { $0 -= $1 }, + unsignedOp: { $0 - $1 }, + unsignedInoutOp: { $0 -= $1 }, + file: file, + line: line) + } + + internal func mulTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 * $1 }, + inoutOp: { $0 *= $1 }, + unsignedOp: { $0 * $1 }, + unsignedInoutOp: { $0 *= $1 }, + file: file, + line: line) + } + + internal func divTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 / $1 }, + inoutOp: { $0 /= $1 }, + unsignedOp: { $0 / $1 }, + unsignedInoutOp: { $0 /= $1 }, + file: file, + line: line) + } + + internal func modTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 % $1 }, + inoutOp: { $0 %= $1 }, + unsignedOp: { $0 % $1 }, + unsignedInoutOp: { $0 %= $1 }, + file: file, + line: line) + } + + internal func andTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 & $1 }, + inoutOp: { $0 &= $1 }, + unsignedOp: { $0 & $1 }, + unsignedInoutOp: { $0 &= $1 }, + file: file, + line: line) + } + + internal func orTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 | $1 }, + inoutOp: { $0 |= $1 }, + unsignedOp: { $0 | $1 }, + unsignedInoutOp: { $0 |= $1 }, + file: file, + line: line) + } + + internal func xorTest(lhs: String, + rhs: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.binaryOp(lhs: lhs, + rhs: rhs, + expecting: expecting, + op: { $0 ^ $1 }, + inoutOp: { $0 ^= $1 }, + unsignedOp: { $0 ^ $1 }, + unsignedInoutOp: { $0 ^= $1 }, + file: file, + line: line) + } + + internal typealias BinaryOperation = (BigInt, BigInt) -> BigInt + internal typealias InoutBinaryOperation = (inout BigInt, BigInt) -> Void + internal typealias UnsignedBinaryOperation = (BigUInt, BigUInt) -> BigUInt + internal typealias UnsignedInoutBinaryOperation = (inout BigUInt, BigUInt) -> Void + + private func binaryOp(lhs _lhs: String, + rhs _rhs: String, + expecting _expected: String, + op: BinaryOperation, + inoutOp: InoutBinaryOperation, + unsignedOp: UnsignedBinaryOperation, + unsignedInoutOp: UnsignedInoutBinaryOperation, + file: StaticString, + line: UInt) { + // === Signed === + guard let lhs = self.parseInt(_lhs, file: file, line: line), + let lhsBeforeInout = self.parseInt(_lhs, file: file, line: line), + let rhs = self.parseInt(_rhs, file: file, line: line), + let expected = self.parseInt(_expected, file: file, line: line) else { + return + } + + let result = op(lhs, rhs) + XCTAssertEqual(result, expected, "Signed", file: file, line: line) + + var inoutLhs = lhs + inoutOp(&inoutLhs, rhs) + XCTAssertEqual(inoutLhs, expected, "Signed inout", file: file, line: line) + + // Make sure that 'inout' operation did not modify 'lhs'. + // (COW: they shared a single buffer -> inout should copy it before modification) + let inoutMsg = "Signed inout did modify shared/original value" + XCTAssertEqual(lhs, lhsBeforeInout, inoutMsg, file: file, line: line) + + // === Unsigned === + guard let uLhs = self.parseUInt(_lhs, file: file, line: line), + let uLhsBeforeInout = self.parseUInt(_lhs, file: file, line: line), + let uRhs = self.parseUInt(_rhs, file: file, line: line), + let uExpected = self.parseUInt(_expected, file: file, line: line) else { + return + } + + let uResult = unsignedOp(uLhs, uRhs) + XCTAssertEqual(uResult, uExpected, "Unsigned", file: file, line: line) + + var uInoutLhs = uLhs + unsignedInoutOp(&uInoutLhs, uRhs) + XCTAssertEqual(uInoutLhs, uExpected, "Unsigned inout", file: file, line: line) + + let uInoutMsg = "Unsigned inout did modify shared/original value" + XCTAssertEqual(uLhs, uLhsBeforeInout, uInoutMsg, file: file, line: line) + } + + // MARK: - Div mod + + internal func divModTest(lhs _lhs: String, + rhs _rhs: String, + div _div: String, + mod _mod: String, + file: StaticString = #file, + line: UInt = #line) { + // === Signed === + guard let lhs = self.parseInt(_lhs, file: file, line: line), + let rhs = self.parseInt(_rhs, file: file, line: line), + let div = self.parseInt(_div, file: file, line: line), + let mod = self.parseInt(_mod, file: file, line: line) else { + return + } + + let result = lhs.quotientAndRemainder(dividingBy: rhs) + XCTAssertEqual(result.quotient, div, "Signed div", file: file, line: line) + XCTAssertEqual(result.remainder, mod, "Signed mod", file: file, line: line) + + // === Unsigned === + guard let uLhs = self.parseUInt(_lhs, file: file, line: line), + let uRhs = self.parseUInt(_rhs, file: file, line: line), + let uDiv = self.parseUInt(_div, file: file, line: line), + let uMod = self.parseUInt(_mod, file: file, line: line) else { + return + } + + let uResult = uLhs.quotientAndRemainder(dividingBy: uRhs) + XCTAssertEqual(uResult.quotient, uDiv, "Unsigned div", file: file, line: line) + XCTAssertEqual(uResult.remainder, uMod, "Unsigned mod", file: file, line: line) + } + + // MARK: - Power + + internal func powerTest(base _base: String, + exponent: Int, + expecting _expected: String, + file: StaticString = #file, + line: UInt = #line) { + // === Signed === + guard let base = self.parseInt(_base, file: file, line: line), + let expected = self.parseInt(_expected, file: file, line: line) else { + return + } + + let result = base.power(exponent) + XCTAssertEqual(result, expected, file: file, line: line) + + // === Unsigned === + guard let uBase = self.parseUInt(_base, file: file, line: line), + let uExpected = self.parseUInt(_expected, file: file, line: line) else { + return + } + + let uResult = uBase.power(exponent) + XCTAssertEqual(uResult, uExpected, file: file, line: line) + } + + // MARK: - Shifts + + internal func shiftLeftTest(value: String, + count: Int, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.shiftOp(value: value, + count: count, + expecting: expecting, + op: { $0 << $1 }, + inoutOp: { $0 <<= $1 }, + unsignedOp: { $0 << $1 }, + unsignedInoutOp: { $0 <<= $1 }, + file: file, + line: line) + } + + internal func shiftRightTest(value: String, + count: Int, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.shiftOp(value: value, + count: count, + expecting: expecting, + op: { $0 >> $1 }, + inoutOp: { $0 >>= $1 }, + unsignedOp: { $0 >> $1 }, + unsignedInoutOp: { $0 >>= $1 }, + file: file, + line: line) + } + + internal typealias ShiftOperation = (BigInt, BigInt) -> BigInt + internal typealias InoutShiftOperation = (inout BigInt, BigInt) -> Void + internal typealias UnsignedShiftOperation = (BigUInt, BigUInt) -> BigUInt + internal typealias UnsignedInoutShiftOperation = (inout BigUInt, BigUInt) -> Void + + private func shiftOp(value _value: String, + count _count: Int, + expecting _expected: String, + op: ShiftOperation, + inoutOp: InoutShiftOperation, + unsignedOp: UnsignedBinaryOperation, + unsignedInoutOp: UnsignedInoutBinaryOperation, + file: StaticString, + line: UInt) { + + // === Signed === + guard let value = self.parseInt(_value, file: file, line: line), + let valueBeforeInout = self.parseInt(_value, file: file, line: line), + let expected = self.parseInt(_expected, file: file, line: line) else { + return + } + + let count = BigInt(_count) + + let result = op(value, count) + XCTAssertEqual(result, expected, "Signed", file: file, line: line) + + var inoutValue = value + inoutOp(&inoutValue, count) + XCTAssertEqual(inoutValue, expected, "Signed inout", file: file, line: line) + + // Make sure that 'inout' operation did not modify 'lhs'. + // (COW: they shared a single buffer -> inout should copy it before modification) + let inoutMsg = "Inout did modify shared/original value" + XCTAssertEqual(value, valueBeforeInout, inoutMsg, file: file, line: line) + + // === Unsigned === + guard let uValue = self.parseUInt(_value, file: file, line: line), + let uValueBeforeInout = self.parseUInt(_value, file: file, line: line), + let uExpected = self.parseUInt(_expected, file: file, line: line) else { + return + } + + let uCount = BigUInt(_count) + + let uResult = unsignedOp(uValue, uCount) + XCTAssertEqual(uResult, uExpected, "Unsigned", file: file, line: line) + + var uInoutLhs = uValue + unsignedInoutOp(&uInoutLhs, uCount) + XCTAssertEqual(uInoutLhs, uExpected, "Unsigned inout", file: file, line: line) + + let uInoutMsg = "Unsigned inout did modify shared/original value" + XCTAssertEqual(uValue, uValueBeforeInout, uInoutMsg, file: file, line: line) + } + + // MARK: - Helpers + + /// Abstraction over `BigInt(_:radix:)`. + private func parseInt(_ string: String, file: StaticString, line: UInt) -> BigInt? { + guard let result = BigInt(string) else { + XCTFail("Unable to parse BigInt from: '\(string)'.", file: file, line: line) + return nil + } + + return result + } + + /// Abstraction over `BigUInt(_:radix:)`. + private func parseUInt(_ string: String, file: StaticString, line: UInt) -> BigUInt? { + let isNegative = string.contains("-") + if isNegative { + return nil + } + + // If we are positive then we should be able to parse it. + guard let result = BigUInt(string) else { + XCTFail("Unable to parse BigUInt from: '\(string)'.", file: file, line: line) + return nil + } + + return result + } +} diff --git a/Tests/BigIntTests/Violet - Node/NodeTests.swift b/Tests/BigIntTests/Violet - Node/NodeTests.swift new file mode 100644 index 0000000..d4bf9fb --- /dev/null +++ b/Tests/BigIntTests/Violet - Node/NodeTests.swift @@ -0,0 +1,21380 @@ +// So you made a mistake of opening this file... +// Ehh... + +import XCTest +@testable import BigInt + +/// Tests generated by Node.js. +/// See 'Scripts/bigint_generate_node_tests' for details. +/// +/// We could have used some other bigint library (for example GMP), +/// but this is a bit easier to manage. +class NodeTests: XCTestCase { + + // MARK: - Plus + + func test_plus_smi() { + self.plusTest(value: "0", expecting: "0") + self.plusTest(value: "1", expecting: "1") + self.plusTest(value: "-1", expecting: "-1") + self.plusTest(value: "2147483647", expecting: "2147483647") + self.plusTest(value: "-2147483648", expecting: "-2147483648") + self.plusTest(value: "1932735283", expecting: "1932735283") + self.plusTest(value: "-1932735284", expecting: "-1932735284") + self.plusTest(value: "1717986919", expecting: "1717986919") + self.plusTest(value: "-1717986920", expecting: "-1717986920") + self.plusTest(value: "1503238555", expecting: "1503238555") + self.plusTest(value: "-1503238556", expecting: "-1503238556") + self.plusTest(value: "1288490191", expecting: "1288490191") + self.plusTest(value: "-1288490192", expecting: "-1288490192") + self.plusTest(value: "1073741827", expecting: "1073741827") + self.plusTest(value: "-1073741828", expecting: "-1073741828") + self.plusTest(value: "858993463", expecting: "858993463") + self.plusTest(value: "-858993464", expecting: "-858993464") + self.plusTest(value: "644245099", expecting: "644245099") + self.plusTest(value: "-644245100", expecting: "-644245100") + self.plusTest(value: "429496735", expecting: "429496735") + self.plusTest(value: "-429496736", expecting: "-429496736") + self.plusTest(value: "214748371", expecting: "214748371") + self.plusTest(value: "-214748372", expecting: "-214748372") + } + + func test_plus_heap() { + self.plusTest(value: "0", expecting: "0") + self.plusTest(value: "1", expecting: "1") + self.plusTest(value: "-1", expecting: "-1") + self.plusTest(value: "18446744073709551615", expecting: "18446744073709551615") + self.plusTest(value: "-18446744073709551615", expecting: "-18446744073709551615") + self.plusTest(value: "18446744073709551617", expecting: "18446744073709551617") + self.plusTest(value: "-18446744073709551617", expecting: "-18446744073709551617") + self.plusTest(value: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.plusTest(value: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.plusTest(value: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.plusTest(value: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.plusTest(value: "18446744073709551623", expecting: "18446744073709551623") + self.plusTest(value: "-18446744073709551623", expecting: "-18446744073709551623") + self.plusTest(value: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.plusTest(value: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.plusTest(value: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.plusTest(value: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.plusTest(value: "18446744073709551629", expecting: "18446744073709551629") + self.plusTest(value: "-18446744073709551629", expecting: "-18446744073709551629") + self.plusTest(value: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.plusTest(value: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.plusTest(value: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.plusTest(value: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.plusTest(value: "18446744073709551635", expecting: "18446744073709551635") + self.plusTest(value: "-18446744073709551635", expecting: "-18446744073709551635") + } + + // MARK: - Minus + + func test_minus_smi() { + self.minusTest(value: "0", expecting: "0") + self.minusTest(value: "1", expecting: "-1") + self.minusTest(value: "-1", expecting: "1") + self.minusTest(value: "2147483647", expecting: "-2147483647") + self.minusTest(value: "-2147483648", expecting: "2147483648") + self.minusTest(value: "1932735283", expecting: "-1932735283") + self.minusTest(value: "-1932735284", expecting: "1932735284") + self.minusTest(value: "1717986919", expecting: "-1717986919") + self.minusTest(value: "-1717986920", expecting: "1717986920") + self.minusTest(value: "1503238555", expecting: "-1503238555") + self.minusTest(value: "-1503238556", expecting: "1503238556") + self.minusTest(value: "1288490191", expecting: "-1288490191") + self.minusTest(value: "-1288490192", expecting: "1288490192") + self.minusTest(value: "1073741827", expecting: "-1073741827") + self.minusTest(value: "-1073741828", expecting: "1073741828") + self.minusTest(value: "858993463", expecting: "-858993463") + self.minusTest(value: "-858993464", expecting: "858993464") + self.minusTest(value: "644245099", expecting: "-644245099") + self.minusTest(value: "-644245100", expecting: "644245100") + self.minusTest(value: "429496735", expecting: "-429496735") + self.minusTest(value: "-429496736", expecting: "429496736") + self.minusTest(value: "214748371", expecting: "-214748371") + self.minusTest(value: "-214748372", expecting: "214748372") + } + + func test_minus_heap() { + self.minusTest(value: "0", expecting: "0") + self.minusTest(value: "1", expecting: "-1") + self.minusTest(value: "-1", expecting: "1") + self.minusTest(value: "18446744073709551615", expecting: "-18446744073709551615") + self.minusTest(value: "-18446744073709551615", expecting: "18446744073709551615") + self.minusTest(value: "18446744073709551617", expecting: "-18446744073709551617") + self.minusTest(value: "-18446744073709551617", expecting: "18446744073709551617") + self.minusTest(value: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.minusTest(value: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.minusTest(value: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.minusTest(value: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.minusTest(value: "18446744073709551623", expecting: "-18446744073709551623") + self.minusTest(value: "-18446744073709551623", expecting: "18446744073709551623") + self.minusTest(value: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.minusTest(value: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.minusTest(value: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.minusTest(value: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.minusTest(value: "18446744073709551629", expecting: "-18446744073709551629") + self.minusTest(value: "-18446744073709551629", expecting: "18446744073709551629") + self.minusTest(value: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.minusTest(value: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.minusTest(value: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.minusTest(value: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.minusTest(value: "18446744073709551635", expecting: "-18446744073709551635") + self.minusTest(value: "-18446744073709551635", expecting: "18446744073709551635") + } + + // MARK: - Invert + + func test_invert_smi() { + self.invertTest(value: "0", expecting: "-1") + self.invertTest(value: "1", expecting: "-2") + self.invertTest(value: "-1", expecting: "0") + self.invertTest(value: "2147483647", expecting: "-2147483648") + self.invertTest(value: "-2147483648", expecting: "2147483647") + self.invertTest(value: "1932735283", expecting: "-1932735284") + self.invertTest(value: "-1932735284", expecting: "1932735283") + self.invertTest(value: "1717986919", expecting: "-1717986920") + self.invertTest(value: "-1717986920", expecting: "1717986919") + self.invertTest(value: "1503238555", expecting: "-1503238556") + self.invertTest(value: "-1503238556", expecting: "1503238555") + self.invertTest(value: "1288490191", expecting: "-1288490192") + self.invertTest(value: "-1288490192", expecting: "1288490191") + self.invertTest(value: "1073741827", expecting: "-1073741828") + self.invertTest(value: "-1073741828", expecting: "1073741827") + self.invertTest(value: "858993463", expecting: "-858993464") + self.invertTest(value: "-858993464", expecting: "858993463") + self.invertTest(value: "644245099", expecting: "-644245100") + self.invertTest(value: "-644245100", expecting: "644245099") + self.invertTest(value: "429496735", expecting: "-429496736") + self.invertTest(value: "-429496736", expecting: "429496735") + self.invertTest(value: "214748371", expecting: "-214748372") + self.invertTest(value: "-214748372", expecting: "214748371") + } + + func test_invert_heap() { + self.invertTest(value: "0", expecting: "-1") + self.invertTest(value: "1", expecting: "-2") + self.invertTest(value: "-1", expecting: "0") + self.invertTest(value: "18446744073709551615", expecting: "-18446744073709551616") + self.invertTest(value: "-18446744073709551615", expecting: "18446744073709551614") + self.invertTest(value: "18446744073709551617", expecting: "-18446744073709551618") + self.invertTest(value: "-18446744073709551617", expecting: "18446744073709551616") + self.invertTest(value: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763075") + self.invertTest(value: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763073") + self.invertTest(value: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.invertTest(value: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.invertTest(value: "18446744073709551623", expecting: "-18446744073709551624") + self.invertTest(value: "-18446744073709551623", expecting: "18446744073709551622") + self.invertTest(value: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072771") + self.invertTest(value: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072769") + self.invertTest(value: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.invertTest(value: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.invertTest(value: "18446744073709551629", expecting: "-18446744073709551630") + self.invertTest(value: "-18446744073709551629", expecting: "18446744073709551628") + self.invertTest(value: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382467") + self.invertTest(value: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382465") + self.invertTest(value: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.invertTest(value: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.invertTest(value: "18446744073709551635", expecting: "-18446744073709551636") + self.invertTest(value: "-18446744073709551635", expecting: "18446744073709551634") + } + + // MARK: - Add + + func test_add_smi_smi() { + self.addTest(lhs: "0", rhs: "0", expecting: "0") + self.addTest(lhs: "0", rhs: "1", expecting: "1") + self.addTest(lhs: "0", rhs: "-1", expecting: "-1") + self.addTest(lhs: "0", rhs: "2147483647", expecting: "2147483647") + self.addTest(lhs: "0", rhs: "-2147483648", expecting: "-2147483648") + self.addTest(lhs: "0", rhs: "1932735283", expecting: "1932735283") + self.addTest(lhs: "0", rhs: "-1932735284", expecting: "-1932735284") + self.addTest(lhs: "0", rhs: "1717986919", expecting: "1717986919") + self.addTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.addTest(lhs: "0", rhs: "1503238555", expecting: "1503238555") + self.addTest(lhs: "0", rhs: "-1503238556", expecting: "-1503238556") + self.addTest(lhs: "0", rhs: "1288490191", expecting: "1288490191") + self.addTest(lhs: "0", rhs: "-1288490192", expecting: "-1288490192") + self.addTest(lhs: "0", rhs: "1073741827", expecting: "1073741827") + self.addTest(lhs: "0", rhs: "-1073741828", expecting: "-1073741828") + self.addTest(lhs: "0", rhs: "858993463", expecting: "858993463") + self.addTest(lhs: "0", rhs: "-858993464", expecting: "-858993464") + self.addTest(lhs: "0", rhs: "644245099", expecting: "644245099") + self.addTest(lhs: "0", rhs: "-644245100", expecting: "-644245100") + self.addTest(lhs: "0", rhs: "429496735", expecting: "429496735") + self.addTest(lhs: "0", rhs: "-429496736", expecting: "-429496736") + self.addTest(lhs: "0", rhs: "214748371", expecting: "214748371") + self.addTest(lhs: "0", rhs: "-214748372", expecting: "-214748372") + self.addTest(lhs: "1", rhs: "0", expecting: "1") + self.addTest(lhs: "1", rhs: "1", expecting: "2") + self.addTest(lhs: "1", rhs: "-1", expecting: "0") + self.addTest(lhs: "1", rhs: "2147483647", expecting: "2147483648") + self.addTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483647") + self.addTest(lhs: "1", rhs: "1932735283", expecting: "1932735284") + self.addTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735283") + self.addTest(lhs: "1", rhs: "1717986919", expecting: "1717986920") + self.addTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.addTest(lhs: "1", rhs: "1503238555", expecting: "1503238556") + self.addTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238555") + self.addTest(lhs: "1", rhs: "1288490191", expecting: "1288490192") + self.addTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490191") + self.addTest(lhs: "1", rhs: "1073741827", expecting: "1073741828") + self.addTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741827") + self.addTest(lhs: "1", rhs: "858993463", expecting: "858993464") + self.addTest(lhs: "1", rhs: "-858993464", expecting: "-858993463") + self.addTest(lhs: "1", rhs: "644245099", expecting: "644245100") + self.addTest(lhs: "1", rhs: "-644245100", expecting: "-644245099") + self.addTest(lhs: "1", rhs: "429496735", expecting: "429496736") + self.addTest(lhs: "1", rhs: "-429496736", expecting: "-429496735") + self.addTest(lhs: "1", rhs: "214748371", expecting: "214748372") + self.addTest(lhs: "1", rhs: "-214748372", expecting: "-214748371") + self.addTest(lhs: "-1", rhs: "0", expecting: "-1") + self.addTest(lhs: "-1", rhs: "1", expecting: "0") + self.addTest(lhs: "-1", rhs: "-1", expecting: "-2") + self.addTest(lhs: "-1", rhs: "2147483647", expecting: "2147483646") + self.addTest(lhs: "-1", rhs: "-2147483648", expecting: "-2147483649") + self.addTest(lhs: "-1", rhs: "1932735283", expecting: "1932735282") + self.addTest(lhs: "-1", rhs: "-1932735284", expecting: "-1932735285") + self.addTest(lhs: "-1", rhs: "1717986919", expecting: "1717986918") + self.addTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986921") + self.addTest(lhs: "-1", rhs: "1503238555", expecting: "1503238554") + self.addTest(lhs: "-1", rhs: "-1503238556", expecting: "-1503238557") + self.addTest(lhs: "-1", rhs: "1288490191", expecting: "1288490190") + self.addTest(lhs: "-1", rhs: "-1288490192", expecting: "-1288490193") + self.addTest(lhs: "-1", rhs: "1073741827", expecting: "1073741826") + self.addTest(lhs: "-1", rhs: "-1073741828", expecting: "-1073741829") + self.addTest(lhs: "-1", rhs: "858993463", expecting: "858993462") + self.addTest(lhs: "-1", rhs: "-858993464", expecting: "-858993465") + self.addTest(lhs: "-1", rhs: "644245099", expecting: "644245098") + self.addTest(lhs: "-1", rhs: "-644245100", expecting: "-644245101") + self.addTest(lhs: "-1", rhs: "429496735", expecting: "429496734") + self.addTest(lhs: "-1", rhs: "-429496736", expecting: "-429496737") + self.addTest(lhs: "-1", rhs: "214748371", expecting: "214748370") + self.addTest(lhs: "-1", rhs: "-214748372", expecting: "-214748373") + self.addTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.addTest(lhs: "2147483647", rhs: "1", expecting: "2147483648") + self.addTest(lhs: "2147483647", rhs: "-1", expecting: "2147483646") + self.addTest(lhs: "2147483647", rhs: "2147483647", expecting: "4294967294") + self.addTest(lhs: "2147483647", rhs: "-2147483648", expecting: "-1") + self.addTest(lhs: "2147483647", rhs: "1932735283", expecting: "4080218930") + self.addTest(lhs: "2147483647", rhs: "-1932735284", expecting: "214748363") + self.addTest(lhs: "2147483647", rhs: "1717986919", expecting: "3865470566") + self.addTest(lhs: "2147483647", rhs: "-1717986920", expecting: "429496727") + self.addTest(lhs: "2147483647", rhs: "1503238555", expecting: "3650722202") + self.addTest(lhs: "2147483647", rhs: "-1503238556", expecting: "644245091") + self.addTest(lhs: "2147483647", rhs: "1288490191", expecting: "3435973838") + self.addTest(lhs: "2147483647", rhs: "-1288490192", expecting: "858993455") + self.addTest(lhs: "2147483647", rhs: "1073741827", expecting: "3221225474") + self.addTest(lhs: "2147483647", rhs: "-1073741828", expecting: "1073741819") + self.addTest(lhs: "2147483647", rhs: "858993463", expecting: "3006477110") + self.addTest(lhs: "2147483647", rhs: "-858993464", expecting: "1288490183") + self.addTest(lhs: "2147483647", rhs: "644245099", expecting: "2791728746") + self.addTest(lhs: "2147483647", rhs: "-644245100", expecting: "1503238547") + self.addTest(lhs: "2147483647", rhs: "429496735", expecting: "2576980382") + self.addTest(lhs: "2147483647", rhs: "-429496736", expecting: "1717986911") + self.addTest(lhs: "2147483647", rhs: "214748371", expecting: "2362232018") + self.addTest(lhs: "2147483647", rhs: "-214748372", expecting: "1932735275") + self.addTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.addTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483647") + self.addTest(lhs: "-2147483648", rhs: "-1", expecting: "-2147483649") + self.addTest(lhs: "-2147483648", rhs: "2147483647", expecting: "-1") + self.addTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "-4294967296") + self.addTest(lhs: "-2147483648", rhs: "1932735283", expecting: "-214748365") + self.addTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "-4080218932") + self.addTest(lhs: "-2147483648", rhs: "1717986919", expecting: "-429496729") + self.addTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "-3865470568") + self.addTest(lhs: "-2147483648", rhs: "1503238555", expecting: "-644245093") + self.addTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "-3650722204") + self.addTest(lhs: "-2147483648", rhs: "1288490191", expecting: "-858993457") + self.addTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "-3435973840") + self.addTest(lhs: "-2147483648", rhs: "1073741827", expecting: "-1073741821") + self.addTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "-3221225476") + self.addTest(lhs: "-2147483648", rhs: "858993463", expecting: "-1288490185") + self.addTest(lhs: "-2147483648", rhs: "-858993464", expecting: "-3006477112") + self.addTest(lhs: "-2147483648", rhs: "644245099", expecting: "-1503238549") + self.addTest(lhs: "-2147483648", rhs: "-644245100", expecting: "-2791728748") + self.addTest(lhs: "-2147483648", rhs: "429496735", expecting: "-1717986913") + self.addTest(lhs: "-2147483648", rhs: "-429496736", expecting: "-2576980384") + self.addTest(lhs: "-2147483648", rhs: "214748371", expecting: "-1932735277") + self.addTest(lhs: "-2147483648", rhs: "-214748372", expecting: "-2362232020") + self.addTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.addTest(lhs: "1932735283", rhs: "1", expecting: "1932735284") + self.addTest(lhs: "1932735283", rhs: "-1", expecting: "1932735282") + self.addTest(lhs: "1932735283", rhs: "2147483647", expecting: "4080218930") + self.addTest(lhs: "1932735283", rhs: "-2147483648", expecting: "-214748365") + self.addTest(lhs: "1932735283", rhs: "1932735283", expecting: "3865470566") + self.addTest(lhs: "1932735283", rhs: "-1932735284", expecting: "-1") + self.addTest(lhs: "1932735283", rhs: "1717986919", expecting: "3650722202") + self.addTest(lhs: "1932735283", rhs: "-1717986920", expecting: "214748363") + self.addTest(lhs: "1932735283", rhs: "1503238555", expecting: "3435973838") + self.addTest(lhs: "1932735283", rhs: "-1503238556", expecting: "429496727") + self.addTest(lhs: "1932735283", rhs: "1288490191", expecting: "3221225474") + self.addTest(lhs: "1932735283", rhs: "-1288490192", expecting: "644245091") + self.addTest(lhs: "1932735283", rhs: "1073741827", expecting: "3006477110") + self.addTest(lhs: "1932735283", rhs: "-1073741828", expecting: "858993455") + self.addTest(lhs: "1932735283", rhs: "858993463", expecting: "2791728746") + self.addTest(lhs: "1932735283", rhs: "-858993464", expecting: "1073741819") + self.addTest(lhs: "1932735283", rhs: "644245099", expecting: "2576980382") + self.addTest(lhs: "1932735283", rhs: "-644245100", expecting: "1288490183") + self.addTest(lhs: "1932735283", rhs: "429496735", expecting: "2362232018") + self.addTest(lhs: "1932735283", rhs: "-429496736", expecting: "1503238547") + self.addTest(lhs: "1932735283", rhs: "214748371", expecting: "2147483654") + self.addTest(lhs: "1932735283", rhs: "-214748372", expecting: "1717986911") + self.addTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.addTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735283") + self.addTest(lhs: "-1932735284", rhs: "-1", expecting: "-1932735285") + self.addTest(lhs: "-1932735284", rhs: "2147483647", expecting: "214748363") + self.addTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "-4080218932") + self.addTest(lhs: "-1932735284", rhs: "1932735283", expecting: "-1") + self.addTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "-3865470568") + self.addTest(lhs: "-1932735284", rhs: "1717986919", expecting: "-214748365") + self.addTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "-3650722204") + self.addTest(lhs: "-1932735284", rhs: "1503238555", expecting: "-429496729") + self.addTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "-3435973840") + self.addTest(lhs: "-1932735284", rhs: "1288490191", expecting: "-644245093") + self.addTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "-3221225476") + self.addTest(lhs: "-1932735284", rhs: "1073741827", expecting: "-858993457") + self.addTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "-3006477112") + self.addTest(lhs: "-1932735284", rhs: "858993463", expecting: "-1073741821") + self.addTest(lhs: "-1932735284", rhs: "-858993464", expecting: "-2791728748") + self.addTest(lhs: "-1932735284", rhs: "644245099", expecting: "-1288490185") + self.addTest(lhs: "-1932735284", rhs: "-644245100", expecting: "-2576980384") + self.addTest(lhs: "-1932735284", rhs: "429496735", expecting: "-1503238549") + self.addTest(lhs: "-1932735284", rhs: "-429496736", expecting: "-2362232020") + self.addTest(lhs: "-1932735284", rhs: "214748371", expecting: "-1717986913") + self.addTest(lhs: "-1932735284", rhs: "-214748372", expecting: "-2147483656") + self.addTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.addTest(lhs: "1717986919", rhs: "1", expecting: "1717986920") + self.addTest(lhs: "1717986919", rhs: "-1", expecting: "1717986918") + self.addTest(lhs: "1717986919", rhs: "2147483647", expecting: "3865470566") + self.addTest(lhs: "1717986919", rhs: "-2147483648", expecting: "-429496729") + self.addTest(lhs: "1717986919", rhs: "1932735283", expecting: "3650722202") + self.addTest(lhs: "1717986919", rhs: "-1932735284", expecting: "-214748365") + self.addTest(lhs: "1717986919", rhs: "1717986919", expecting: "3435973838") + self.addTest(lhs: "1717986919", rhs: "-1717986920", expecting: "-1") + self.addTest(lhs: "1717986919", rhs: "1503238555", expecting: "3221225474") + self.addTest(lhs: "1717986919", rhs: "-1503238556", expecting: "214748363") + self.addTest(lhs: "1717986919", rhs: "1288490191", expecting: "3006477110") + self.addTest(lhs: "1717986919", rhs: "-1288490192", expecting: "429496727") + self.addTest(lhs: "1717986919", rhs: "1073741827", expecting: "2791728746") + self.addTest(lhs: "1717986919", rhs: "-1073741828", expecting: "644245091") + self.addTest(lhs: "1717986919", rhs: "858993463", expecting: "2576980382") + self.addTest(lhs: "1717986919", rhs: "-858993464", expecting: "858993455") + self.addTest(lhs: "1717986919", rhs: "644245099", expecting: "2362232018") + self.addTest(lhs: "1717986919", rhs: "-644245100", expecting: "1073741819") + self.addTest(lhs: "1717986919", rhs: "429496735", expecting: "2147483654") + self.addTest(lhs: "1717986919", rhs: "-429496736", expecting: "1288490183") + self.addTest(lhs: "1717986919", rhs: "214748371", expecting: "1932735290") + self.addTest(lhs: "1717986919", rhs: "-214748372", expecting: "1503238547") + self.addTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.addTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986919") + self.addTest(lhs: "-1717986920", rhs: "-1", expecting: "-1717986921") + self.addTest(lhs: "-1717986920", rhs: "2147483647", expecting: "429496727") + self.addTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "-3865470568") + self.addTest(lhs: "-1717986920", rhs: "1932735283", expecting: "214748363") + self.addTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "-3650722204") + self.addTest(lhs: "-1717986920", rhs: "1717986919", expecting: "-1") + self.addTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "-3435973840") + self.addTest(lhs: "-1717986920", rhs: "1503238555", expecting: "-214748365") + self.addTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "-3221225476") + self.addTest(lhs: "-1717986920", rhs: "1288490191", expecting: "-429496729") + self.addTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "-3006477112") + self.addTest(lhs: "-1717986920", rhs: "1073741827", expecting: "-644245093") + self.addTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "-2791728748") + self.addTest(lhs: "-1717986920", rhs: "858993463", expecting: "-858993457") + self.addTest(lhs: "-1717986920", rhs: "-858993464", expecting: "-2576980384") + self.addTest(lhs: "-1717986920", rhs: "644245099", expecting: "-1073741821") + self.addTest(lhs: "-1717986920", rhs: "-644245100", expecting: "-2362232020") + self.addTest(lhs: "-1717986920", rhs: "429496735", expecting: "-1288490185") + self.addTest(lhs: "-1717986920", rhs: "-429496736", expecting: "-2147483656") + self.addTest(lhs: "-1717986920", rhs: "214748371", expecting: "-1503238549") + self.addTest(lhs: "-1717986920", rhs: "-214748372", expecting: "-1932735292") + self.addTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.addTest(lhs: "1503238555", rhs: "1", expecting: "1503238556") + self.addTest(lhs: "1503238555", rhs: "-1", expecting: "1503238554") + self.addTest(lhs: "1503238555", rhs: "2147483647", expecting: "3650722202") + self.addTest(lhs: "1503238555", rhs: "-2147483648", expecting: "-644245093") + self.addTest(lhs: "1503238555", rhs: "1932735283", expecting: "3435973838") + self.addTest(lhs: "1503238555", rhs: "-1932735284", expecting: "-429496729") + self.addTest(lhs: "1503238555", rhs: "1717986919", expecting: "3221225474") + self.addTest(lhs: "1503238555", rhs: "-1717986920", expecting: "-214748365") + self.addTest(lhs: "1503238555", rhs: "1503238555", expecting: "3006477110") + self.addTest(lhs: "1503238555", rhs: "-1503238556", expecting: "-1") + self.addTest(lhs: "1503238555", rhs: "1288490191", expecting: "2791728746") + self.addTest(lhs: "1503238555", rhs: "-1288490192", expecting: "214748363") + self.addTest(lhs: "1503238555", rhs: "1073741827", expecting: "2576980382") + self.addTest(lhs: "1503238555", rhs: "-1073741828", expecting: "429496727") + self.addTest(lhs: "1503238555", rhs: "858993463", expecting: "2362232018") + self.addTest(lhs: "1503238555", rhs: "-858993464", expecting: "644245091") + self.addTest(lhs: "1503238555", rhs: "644245099", expecting: "2147483654") + self.addTest(lhs: "1503238555", rhs: "-644245100", expecting: "858993455") + self.addTest(lhs: "1503238555", rhs: "429496735", expecting: "1932735290") + self.addTest(lhs: "1503238555", rhs: "-429496736", expecting: "1073741819") + self.addTest(lhs: "1503238555", rhs: "214748371", expecting: "1717986926") + self.addTest(lhs: "1503238555", rhs: "-214748372", expecting: "1288490183") + self.addTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.addTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238555") + self.addTest(lhs: "-1503238556", rhs: "-1", expecting: "-1503238557") + self.addTest(lhs: "-1503238556", rhs: "2147483647", expecting: "644245091") + self.addTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "-3650722204") + self.addTest(lhs: "-1503238556", rhs: "1932735283", expecting: "429496727") + self.addTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "-3435973840") + self.addTest(lhs: "-1503238556", rhs: "1717986919", expecting: "214748363") + self.addTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "-3221225476") + self.addTest(lhs: "-1503238556", rhs: "1503238555", expecting: "-1") + self.addTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "-3006477112") + self.addTest(lhs: "-1503238556", rhs: "1288490191", expecting: "-214748365") + self.addTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "-2791728748") + self.addTest(lhs: "-1503238556", rhs: "1073741827", expecting: "-429496729") + self.addTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "-2576980384") + self.addTest(lhs: "-1503238556", rhs: "858993463", expecting: "-644245093") + self.addTest(lhs: "-1503238556", rhs: "-858993464", expecting: "-2362232020") + self.addTest(lhs: "-1503238556", rhs: "644245099", expecting: "-858993457") + self.addTest(lhs: "-1503238556", rhs: "-644245100", expecting: "-2147483656") + self.addTest(lhs: "-1503238556", rhs: "429496735", expecting: "-1073741821") + self.addTest(lhs: "-1503238556", rhs: "-429496736", expecting: "-1932735292") + self.addTest(lhs: "-1503238556", rhs: "214748371", expecting: "-1288490185") + self.addTest(lhs: "-1503238556", rhs: "-214748372", expecting: "-1717986928") + self.addTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.addTest(lhs: "1288490191", rhs: "1", expecting: "1288490192") + self.addTest(lhs: "1288490191", rhs: "-1", expecting: "1288490190") + self.addTest(lhs: "1288490191", rhs: "2147483647", expecting: "3435973838") + self.addTest(lhs: "1288490191", rhs: "-2147483648", expecting: "-858993457") + self.addTest(lhs: "1288490191", rhs: "1932735283", expecting: "3221225474") + self.addTest(lhs: "1288490191", rhs: "-1932735284", expecting: "-644245093") + self.addTest(lhs: "1288490191", rhs: "1717986919", expecting: "3006477110") + self.addTest(lhs: "1288490191", rhs: "-1717986920", expecting: "-429496729") + self.addTest(lhs: "1288490191", rhs: "1503238555", expecting: "2791728746") + self.addTest(lhs: "1288490191", rhs: "-1503238556", expecting: "-214748365") + self.addTest(lhs: "1288490191", rhs: "1288490191", expecting: "2576980382") + self.addTest(lhs: "1288490191", rhs: "-1288490192", expecting: "-1") + self.addTest(lhs: "1288490191", rhs: "1073741827", expecting: "2362232018") + self.addTest(lhs: "1288490191", rhs: "-1073741828", expecting: "214748363") + self.addTest(lhs: "1288490191", rhs: "858993463", expecting: "2147483654") + self.addTest(lhs: "1288490191", rhs: "-858993464", expecting: "429496727") + self.addTest(lhs: "1288490191", rhs: "644245099", expecting: "1932735290") + self.addTest(lhs: "1288490191", rhs: "-644245100", expecting: "644245091") + self.addTest(lhs: "1288490191", rhs: "429496735", expecting: "1717986926") + self.addTest(lhs: "1288490191", rhs: "-429496736", expecting: "858993455") + self.addTest(lhs: "1288490191", rhs: "214748371", expecting: "1503238562") + self.addTest(lhs: "1288490191", rhs: "-214748372", expecting: "1073741819") + self.addTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.addTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490191") + self.addTest(lhs: "-1288490192", rhs: "-1", expecting: "-1288490193") + self.addTest(lhs: "-1288490192", rhs: "2147483647", expecting: "858993455") + self.addTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "-3435973840") + self.addTest(lhs: "-1288490192", rhs: "1932735283", expecting: "644245091") + self.addTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "-3221225476") + self.addTest(lhs: "-1288490192", rhs: "1717986919", expecting: "429496727") + self.addTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "-3006477112") + self.addTest(lhs: "-1288490192", rhs: "1503238555", expecting: "214748363") + self.addTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "-2791728748") + self.addTest(lhs: "-1288490192", rhs: "1288490191", expecting: "-1") + self.addTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "-2576980384") + self.addTest(lhs: "-1288490192", rhs: "1073741827", expecting: "-214748365") + self.addTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "-2362232020") + self.addTest(lhs: "-1288490192", rhs: "858993463", expecting: "-429496729") + self.addTest(lhs: "-1288490192", rhs: "-858993464", expecting: "-2147483656") + self.addTest(lhs: "-1288490192", rhs: "644245099", expecting: "-644245093") + self.addTest(lhs: "-1288490192", rhs: "-644245100", expecting: "-1932735292") + self.addTest(lhs: "-1288490192", rhs: "429496735", expecting: "-858993457") + self.addTest(lhs: "-1288490192", rhs: "-429496736", expecting: "-1717986928") + self.addTest(lhs: "-1288490192", rhs: "214748371", expecting: "-1073741821") + self.addTest(lhs: "-1288490192", rhs: "-214748372", expecting: "-1503238564") + self.addTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.addTest(lhs: "1073741827", rhs: "1", expecting: "1073741828") + self.addTest(lhs: "1073741827", rhs: "-1", expecting: "1073741826") + self.addTest(lhs: "1073741827", rhs: "2147483647", expecting: "3221225474") + self.addTest(lhs: "1073741827", rhs: "-2147483648", expecting: "-1073741821") + self.addTest(lhs: "1073741827", rhs: "1932735283", expecting: "3006477110") + self.addTest(lhs: "1073741827", rhs: "-1932735284", expecting: "-858993457") + self.addTest(lhs: "1073741827", rhs: "1717986919", expecting: "2791728746") + self.addTest(lhs: "1073741827", rhs: "-1717986920", expecting: "-644245093") + self.addTest(lhs: "1073741827", rhs: "1503238555", expecting: "2576980382") + self.addTest(lhs: "1073741827", rhs: "-1503238556", expecting: "-429496729") + self.addTest(lhs: "1073741827", rhs: "1288490191", expecting: "2362232018") + self.addTest(lhs: "1073741827", rhs: "-1288490192", expecting: "-214748365") + self.addTest(lhs: "1073741827", rhs: "1073741827", expecting: "2147483654") + self.addTest(lhs: "1073741827", rhs: "-1073741828", expecting: "-1") + self.addTest(lhs: "1073741827", rhs: "858993463", expecting: "1932735290") + self.addTest(lhs: "1073741827", rhs: "-858993464", expecting: "214748363") + self.addTest(lhs: "1073741827", rhs: "644245099", expecting: "1717986926") + self.addTest(lhs: "1073741827", rhs: "-644245100", expecting: "429496727") + self.addTest(lhs: "1073741827", rhs: "429496735", expecting: "1503238562") + self.addTest(lhs: "1073741827", rhs: "-429496736", expecting: "644245091") + self.addTest(lhs: "1073741827", rhs: "214748371", expecting: "1288490198") + self.addTest(lhs: "1073741827", rhs: "-214748372", expecting: "858993455") + self.addTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.addTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741827") + self.addTest(lhs: "-1073741828", rhs: "-1", expecting: "-1073741829") + self.addTest(lhs: "-1073741828", rhs: "2147483647", expecting: "1073741819") + self.addTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "-3221225476") + self.addTest(lhs: "-1073741828", rhs: "1932735283", expecting: "858993455") + self.addTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "-3006477112") + self.addTest(lhs: "-1073741828", rhs: "1717986919", expecting: "644245091") + self.addTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "-2791728748") + self.addTest(lhs: "-1073741828", rhs: "1503238555", expecting: "429496727") + self.addTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "-2576980384") + self.addTest(lhs: "-1073741828", rhs: "1288490191", expecting: "214748363") + self.addTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "-2362232020") + self.addTest(lhs: "-1073741828", rhs: "1073741827", expecting: "-1") + self.addTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "-2147483656") + self.addTest(lhs: "-1073741828", rhs: "858993463", expecting: "-214748365") + self.addTest(lhs: "-1073741828", rhs: "-858993464", expecting: "-1932735292") + self.addTest(lhs: "-1073741828", rhs: "644245099", expecting: "-429496729") + self.addTest(lhs: "-1073741828", rhs: "-644245100", expecting: "-1717986928") + self.addTest(lhs: "-1073741828", rhs: "429496735", expecting: "-644245093") + self.addTest(lhs: "-1073741828", rhs: "-429496736", expecting: "-1503238564") + self.addTest(lhs: "-1073741828", rhs: "214748371", expecting: "-858993457") + self.addTest(lhs: "-1073741828", rhs: "-214748372", expecting: "-1288490200") + self.addTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.addTest(lhs: "858993463", rhs: "1", expecting: "858993464") + self.addTest(lhs: "858993463", rhs: "-1", expecting: "858993462") + self.addTest(lhs: "858993463", rhs: "2147483647", expecting: "3006477110") + self.addTest(lhs: "858993463", rhs: "-2147483648", expecting: "-1288490185") + self.addTest(lhs: "858993463", rhs: "1932735283", expecting: "2791728746") + self.addTest(lhs: "858993463", rhs: "-1932735284", expecting: "-1073741821") + self.addTest(lhs: "858993463", rhs: "1717986919", expecting: "2576980382") + self.addTest(lhs: "858993463", rhs: "-1717986920", expecting: "-858993457") + self.addTest(lhs: "858993463", rhs: "1503238555", expecting: "2362232018") + self.addTest(lhs: "858993463", rhs: "-1503238556", expecting: "-644245093") + self.addTest(lhs: "858993463", rhs: "1288490191", expecting: "2147483654") + self.addTest(lhs: "858993463", rhs: "-1288490192", expecting: "-429496729") + self.addTest(lhs: "858993463", rhs: "1073741827", expecting: "1932735290") + self.addTest(lhs: "858993463", rhs: "-1073741828", expecting: "-214748365") + self.addTest(lhs: "858993463", rhs: "858993463", expecting: "1717986926") + self.addTest(lhs: "858993463", rhs: "-858993464", expecting: "-1") + self.addTest(lhs: "858993463", rhs: "644245099", expecting: "1503238562") + self.addTest(lhs: "858993463", rhs: "-644245100", expecting: "214748363") + self.addTest(lhs: "858993463", rhs: "429496735", expecting: "1288490198") + self.addTest(lhs: "858993463", rhs: "-429496736", expecting: "429496727") + self.addTest(lhs: "858993463", rhs: "214748371", expecting: "1073741834") + self.addTest(lhs: "858993463", rhs: "-214748372", expecting: "644245091") + self.addTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.addTest(lhs: "-858993464", rhs: "1", expecting: "-858993463") + self.addTest(lhs: "-858993464", rhs: "-1", expecting: "-858993465") + self.addTest(lhs: "-858993464", rhs: "2147483647", expecting: "1288490183") + self.addTest(lhs: "-858993464", rhs: "-2147483648", expecting: "-3006477112") + self.addTest(lhs: "-858993464", rhs: "1932735283", expecting: "1073741819") + self.addTest(lhs: "-858993464", rhs: "-1932735284", expecting: "-2791728748") + self.addTest(lhs: "-858993464", rhs: "1717986919", expecting: "858993455") + self.addTest(lhs: "-858993464", rhs: "-1717986920", expecting: "-2576980384") + self.addTest(lhs: "-858993464", rhs: "1503238555", expecting: "644245091") + self.addTest(lhs: "-858993464", rhs: "-1503238556", expecting: "-2362232020") + self.addTest(lhs: "-858993464", rhs: "1288490191", expecting: "429496727") + self.addTest(lhs: "-858993464", rhs: "-1288490192", expecting: "-2147483656") + self.addTest(lhs: "-858993464", rhs: "1073741827", expecting: "214748363") + self.addTest(lhs: "-858993464", rhs: "-1073741828", expecting: "-1932735292") + self.addTest(lhs: "-858993464", rhs: "858993463", expecting: "-1") + self.addTest(lhs: "-858993464", rhs: "-858993464", expecting: "-1717986928") + self.addTest(lhs: "-858993464", rhs: "644245099", expecting: "-214748365") + self.addTest(lhs: "-858993464", rhs: "-644245100", expecting: "-1503238564") + self.addTest(lhs: "-858993464", rhs: "429496735", expecting: "-429496729") + self.addTest(lhs: "-858993464", rhs: "-429496736", expecting: "-1288490200") + self.addTest(lhs: "-858993464", rhs: "214748371", expecting: "-644245093") + self.addTest(lhs: "-858993464", rhs: "-214748372", expecting: "-1073741836") + self.addTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.addTest(lhs: "644245099", rhs: "1", expecting: "644245100") + self.addTest(lhs: "644245099", rhs: "-1", expecting: "644245098") + self.addTest(lhs: "644245099", rhs: "2147483647", expecting: "2791728746") + self.addTest(lhs: "644245099", rhs: "-2147483648", expecting: "-1503238549") + self.addTest(lhs: "644245099", rhs: "1932735283", expecting: "2576980382") + self.addTest(lhs: "644245099", rhs: "-1932735284", expecting: "-1288490185") + self.addTest(lhs: "644245099", rhs: "1717986919", expecting: "2362232018") + self.addTest(lhs: "644245099", rhs: "-1717986920", expecting: "-1073741821") + self.addTest(lhs: "644245099", rhs: "1503238555", expecting: "2147483654") + self.addTest(lhs: "644245099", rhs: "-1503238556", expecting: "-858993457") + self.addTest(lhs: "644245099", rhs: "1288490191", expecting: "1932735290") + self.addTest(lhs: "644245099", rhs: "-1288490192", expecting: "-644245093") + self.addTest(lhs: "644245099", rhs: "1073741827", expecting: "1717986926") + self.addTest(lhs: "644245099", rhs: "-1073741828", expecting: "-429496729") + self.addTest(lhs: "644245099", rhs: "858993463", expecting: "1503238562") + self.addTest(lhs: "644245099", rhs: "-858993464", expecting: "-214748365") + self.addTest(lhs: "644245099", rhs: "644245099", expecting: "1288490198") + self.addTest(lhs: "644245099", rhs: "-644245100", expecting: "-1") + self.addTest(lhs: "644245099", rhs: "429496735", expecting: "1073741834") + self.addTest(lhs: "644245099", rhs: "-429496736", expecting: "214748363") + self.addTest(lhs: "644245099", rhs: "214748371", expecting: "858993470") + self.addTest(lhs: "644245099", rhs: "-214748372", expecting: "429496727") + self.addTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.addTest(lhs: "-644245100", rhs: "1", expecting: "-644245099") + self.addTest(lhs: "-644245100", rhs: "-1", expecting: "-644245101") + self.addTest(lhs: "-644245100", rhs: "2147483647", expecting: "1503238547") + self.addTest(lhs: "-644245100", rhs: "-2147483648", expecting: "-2791728748") + self.addTest(lhs: "-644245100", rhs: "1932735283", expecting: "1288490183") + self.addTest(lhs: "-644245100", rhs: "-1932735284", expecting: "-2576980384") + self.addTest(lhs: "-644245100", rhs: "1717986919", expecting: "1073741819") + self.addTest(lhs: "-644245100", rhs: "-1717986920", expecting: "-2362232020") + self.addTest(lhs: "-644245100", rhs: "1503238555", expecting: "858993455") + self.addTest(lhs: "-644245100", rhs: "-1503238556", expecting: "-2147483656") + self.addTest(lhs: "-644245100", rhs: "1288490191", expecting: "644245091") + self.addTest(lhs: "-644245100", rhs: "-1288490192", expecting: "-1932735292") + self.addTest(lhs: "-644245100", rhs: "1073741827", expecting: "429496727") + self.addTest(lhs: "-644245100", rhs: "-1073741828", expecting: "-1717986928") + self.addTest(lhs: "-644245100", rhs: "858993463", expecting: "214748363") + self.addTest(lhs: "-644245100", rhs: "-858993464", expecting: "-1503238564") + self.addTest(lhs: "-644245100", rhs: "644245099", expecting: "-1") + self.addTest(lhs: "-644245100", rhs: "-644245100", expecting: "-1288490200") + self.addTest(lhs: "-644245100", rhs: "429496735", expecting: "-214748365") + self.addTest(lhs: "-644245100", rhs: "-429496736", expecting: "-1073741836") + self.addTest(lhs: "-644245100", rhs: "214748371", expecting: "-429496729") + self.addTest(lhs: "-644245100", rhs: "-214748372", expecting: "-858993472") + self.addTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.addTest(lhs: "429496735", rhs: "1", expecting: "429496736") + self.addTest(lhs: "429496735", rhs: "-1", expecting: "429496734") + self.addTest(lhs: "429496735", rhs: "2147483647", expecting: "2576980382") + self.addTest(lhs: "429496735", rhs: "-2147483648", expecting: "-1717986913") + self.addTest(lhs: "429496735", rhs: "1932735283", expecting: "2362232018") + self.addTest(lhs: "429496735", rhs: "-1932735284", expecting: "-1503238549") + self.addTest(lhs: "429496735", rhs: "1717986919", expecting: "2147483654") + self.addTest(lhs: "429496735", rhs: "-1717986920", expecting: "-1288490185") + self.addTest(lhs: "429496735", rhs: "1503238555", expecting: "1932735290") + self.addTest(lhs: "429496735", rhs: "-1503238556", expecting: "-1073741821") + self.addTest(lhs: "429496735", rhs: "1288490191", expecting: "1717986926") + self.addTest(lhs: "429496735", rhs: "-1288490192", expecting: "-858993457") + self.addTest(lhs: "429496735", rhs: "1073741827", expecting: "1503238562") + self.addTest(lhs: "429496735", rhs: "-1073741828", expecting: "-644245093") + self.addTest(lhs: "429496735", rhs: "858993463", expecting: "1288490198") + self.addTest(lhs: "429496735", rhs: "-858993464", expecting: "-429496729") + self.addTest(lhs: "429496735", rhs: "644245099", expecting: "1073741834") + self.addTest(lhs: "429496735", rhs: "-644245100", expecting: "-214748365") + self.addTest(lhs: "429496735", rhs: "429496735", expecting: "858993470") + self.addTest(lhs: "429496735", rhs: "-429496736", expecting: "-1") + self.addTest(lhs: "429496735", rhs: "214748371", expecting: "644245106") + self.addTest(lhs: "429496735", rhs: "-214748372", expecting: "214748363") + self.addTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.addTest(lhs: "-429496736", rhs: "1", expecting: "-429496735") + self.addTest(lhs: "-429496736", rhs: "-1", expecting: "-429496737") + self.addTest(lhs: "-429496736", rhs: "2147483647", expecting: "1717986911") + self.addTest(lhs: "-429496736", rhs: "-2147483648", expecting: "-2576980384") + self.addTest(lhs: "-429496736", rhs: "1932735283", expecting: "1503238547") + self.addTest(lhs: "-429496736", rhs: "-1932735284", expecting: "-2362232020") + self.addTest(lhs: "-429496736", rhs: "1717986919", expecting: "1288490183") + self.addTest(lhs: "-429496736", rhs: "-1717986920", expecting: "-2147483656") + self.addTest(lhs: "-429496736", rhs: "1503238555", expecting: "1073741819") + self.addTest(lhs: "-429496736", rhs: "-1503238556", expecting: "-1932735292") + self.addTest(lhs: "-429496736", rhs: "1288490191", expecting: "858993455") + self.addTest(lhs: "-429496736", rhs: "-1288490192", expecting: "-1717986928") + self.addTest(lhs: "-429496736", rhs: "1073741827", expecting: "644245091") + self.addTest(lhs: "-429496736", rhs: "-1073741828", expecting: "-1503238564") + self.addTest(lhs: "-429496736", rhs: "858993463", expecting: "429496727") + self.addTest(lhs: "-429496736", rhs: "-858993464", expecting: "-1288490200") + self.addTest(lhs: "-429496736", rhs: "644245099", expecting: "214748363") + self.addTest(lhs: "-429496736", rhs: "-644245100", expecting: "-1073741836") + self.addTest(lhs: "-429496736", rhs: "429496735", expecting: "-1") + self.addTest(lhs: "-429496736", rhs: "-429496736", expecting: "-858993472") + self.addTest(lhs: "-429496736", rhs: "214748371", expecting: "-214748365") + self.addTest(lhs: "-429496736", rhs: "-214748372", expecting: "-644245108") + self.addTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.addTest(lhs: "214748371", rhs: "1", expecting: "214748372") + self.addTest(lhs: "214748371", rhs: "-1", expecting: "214748370") + self.addTest(lhs: "214748371", rhs: "2147483647", expecting: "2362232018") + self.addTest(lhs: "214748371", rhs: "-2147483648", expecting: "-1932735277") + self.addTest(lhs: "214748371", rhs: "1932735283", expecting: "2147483654") + self.addTest(lhs: "214748371", rhs: "-1932735284", expecting: "-1717986913") + self.addTest(lhs: "214748371", rhs: "1717986919", expecting: "1932735290") + self.addTest(lhs: "214748371", rhs: "-1717986920", expecting: "-1503238549") + self.addTest(lhs: "214748371", rhs: "1503238555", expecting: "1717986926") + self.addTest(lhs: "214748371", rhs: "-1503238556", expecting: "-1288490185") + self.addTest(lhs: "214748371", rhs: "1288490191", expecting: "1503238562") + self.addTest(lhs: "214748371", rhs: "-1288490192", expecting: "-1073741821") + self.addTest(lhs: "214748371", rhs: "1073741827", expecting: "1288490198") + self.addTest(lhs: "214748371", rhs: "-1073741828", expecting: "-858993457") + self.addTest(lhs: "214748371", rhs: "858993463", expecting: "1073741834") + self.addTest(lhs: "214748371", rhs: "-858993464", expecting: "-644245093") + self.addTest(lhs: "214748371", rhs: "644245099", expecting: "858993470") + self.addTest(lhs: "214748371", rhs: "-644245100", expecting: "-429496729") + self.addTest(lhs: "214748371", rhs: "429496735", expecting: "644245106") + self.addTest(lhs: "214748371", rhs: "-429496736", expecting: "-214748365") + self.addTest(lhs: "214748371", rhs: "214748371", expecting: "429496742") + self.addTest(lhs: "214748371", rhs: "-214748372", expecting: "-1") + self.addTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.addTest(lhs: "-214748372", rhs: "1", expecting: "-214748371") + self.addTest(lhs: "-214748372", rhs: "-1", expecting: "-214748373") + self.addTest(lhs: "-214748372", rhs: "2147483647", expecting: "1932735275") + self.addTest(lhs: "-214748372", rhs: "-2147483648", expecting: "-2362232020") + self.addTest(lhs: "-214748372", rhs: "1932735283", expecting: "1717986911") + self.addTest(lhs: "-214748372", rhs: "-1932735284", expecting: "-2147483656") + self.addTest(lhs: "-214748372", rhs: "1717986919", expecting: "1503238547") + self.addTest(lhs: "-214748372", rhs: "-1717986920", expecting: "-1932735292") + self.addTest(lhs: "-214748372", rhs: "1503238555", expecting: "1288490183") + self.addTest(lhs: "-214748372", rhs: "-1503238556", expecting: "-1717986928") + self.addTest(lhs: "-214748372", rhs: "1288490191", expecting: "1073741819") + self.addTest(lhs: "-214748372", rhs: "-1288490192", expecting: "-1503238564") + self.addTest(lhs: "-214748372", rhs: "1073741827", expecting: "858993455") + self.addTest(lhs: "-214748372", rhs: "-1073741828", expecting: "-1288490200") + self.addTest(lhs: "-214748372", rhs: "858993463", expecting: "644245091") + self.addTest(lhs: "-214748372", rhs: "-858993464", expecting: "-1073741836") + self.addTest(lhs: "-214748372", rhs: "644245099", expecting: "429496727") + self.addTest(lhs: "-214748372", rhs: "-644245100", expecting: "-858993472") + self.addTest(lhs: "-214748372", rhs: "429496735", expecting: "214748363") + self.addTest(lhs: "-214748372", rhs: "-429496736", expecting: "-644245108") + self.addTest(lhs: "-214748372", rhs: "214748371", expecting: "-1") + self.addTest(lhs: "-214748372", rhs: "-214748372", expecting: "-429496744") + } + + func test_add_smi_heap() { + self.addTest(lhs: "0", rhs: "0", expecting: "0") + self.addTest(lhs: "0", rhs: "1", expecting: "1") + self.addTest(lhs: "0", rhs: "-1", expecting: "-1") + self.addTest(lhs: "0", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.addTest(lhs: "0", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.addTest(lhs: "0", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.addTest(lhs: "0", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.addTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.addTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.addTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "0", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.addTest(lhs: "0", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.addTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.addTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.addTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "0", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.addTest(lhs: "0", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.addTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.addTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.addTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "0", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.addTest(lhs: "0", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.addTest(lhs: "1", rhs: "0", expecting: "1") + self.addTest(lhs: "1", rhs: "1", expecting: "2") + self.addTest(lhs: "1", rhs: "-1", expecting: "0") + self.addTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551616") + self.addTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551614") + self.addTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551618") + self.addTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551616") + self.addTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.addTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.addTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551624") + self.addTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551622") + self.addTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.addTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.addTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551630") + self.addTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551628") + self.addTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.addTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.addTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551636") + self.addTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551634") + self.addTest(lhs: "-1", rhs: "0", expecting: "-1") + self.addTest(lhs: "-1", rhs: "1", expecting: "0") + self.addTest(lhs: "-1", rhs: "-1", expecting: "-2") + self.addTest(lhs: "-1", rhs: "18446744073709551615", expecting: "18446744073709551614") + self.addTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.addTest(lhs: "-1", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.addTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-18446744073709551618") + self.addTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763073") + self.addTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763075") + self.addTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "-1", rhs: "18446744073709551623", expecting: "18446744073709551622") + self.addTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-18446744073709551624") + self.addTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072769") + self.addTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072771") + self.addTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "-1", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.addTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-18446744073709551630") + self.addTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382465") + self.addTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382467") + self.addTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "-1", rhs: "18446744073709551635", expecting: "18446744073709551634") + self.addTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-18446744073709551636") + self.addTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.addTest(lhs: "2147483647", rhs: "1", expecting: "2147483648") + self.addTest(lhs: "2147483647", rhs: "-1", expecting: "2147483646") + self.addTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "18446744075857035262") + self.addTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "-18446744071562067968") + self.addTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "18446744075857035264") + self.addTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "-18446744071562067970") + self.addTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507625246721") + self.addTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503330279427") + self.addTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256008867844") + self.addTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915251713900550") + self.addTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "18446744075857035270") + self.addTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "-18446744071562067976") + self.addTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949882556417") + self.addTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815945587589123") + self.addTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404360826890") + self.addTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400065859596") + self.addTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "18446744075857035276") + self.addTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "-18446744071562067982") + self.addTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280392139866113") + self.addTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280387844898819") + self.addTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552712785936") + self.addTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548417818642") + self.addTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "18446744075857035282") + self.addTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "-18446744071562067988") + self.addTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.addTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483647") + self.addTest(lhs: "-2147483648", rhs: "-1", expecting: "-2147483649") + self.addTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "18446744071562067967") + self.addTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "-18446744075857035263") + self.addTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "18446744071562067969") + self.addTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "-18446744075857035265") + self.addTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351503330279426") + self.addTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507625246722") + self.addTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915251713900549") + self.addTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256008867845") + self.addTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "18446744071562067975") + self.addTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "-18446744075857035271") + self.addTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815945587589122") + self.addTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949882556418") + self.addTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400065859595") + self.addTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404360826891") + self.addTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "18446744071562067981") + self.addTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "-18446744075857035277") + self.addTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280387844898818") + self.addTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392139866114") + self.addTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275548417818641") + self.addTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552712785937") + self.addTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "18446744071562067987") + self.addTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "-18446744075857035283") + self.addTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.addTest(lhs: "1932735283", rhs: "1", expecting: "1932735284") + self.addTest(lhs: "1932735283", rhs: "-1", expecting: "1932735282") + self.addTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "18446744075642286898") + self.addTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "-18446744071776816332") + self.addTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "18446744075642286900") + self.addTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "-18446744071776816334") + self.addTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507410498357") + self.addTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503545027791") + self.addTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255794119480") + self.addTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915251928648914") + self.addTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "18446744075642286906") + self.addTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "-18446744071776816340") + self.addTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949667808053") + self.addTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815945802337487") + self.addTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404146078526") + self.addTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400280607960") + self.addTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "18446744075642286912") + self.addTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "-18446744071776816346") + self.addTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391925117749") + self.addTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388059647183") + self.addTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552498037572") + self.addTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548632567006") + self.addTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "18446744075642286918") + self.addTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "-18446744071776816352") + self.addTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.addTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735283") + self.addTest(lhs: "-1932735284", rhs: "-1", expecting: "-1932735285") + self.addTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "18446744071776816331") + self.addTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "-18446744075642286899") + self.addTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "18446744071776816333") + self.addTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "-18446744075642286901") + self.addTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351503545027790") + self.addTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507410498358") + self.addTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915251928648913") + self.addTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255794119481") + self.addTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "18446744071776816339") + self.addTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "-18446744075642286907") + self.addTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815945802337486") + self.addTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949667808054") + self.addTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400280607959") + self.addTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404146078527") + self.addTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "18446744071776816345") + self.addTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "-18446744075642286913") + self.addTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280388059647182") + self.addTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391925117750") + self.addTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275548632567005") + self.addTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552498037573") + self.addTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "18446744071776816351") + self.addTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "-18446744075642286919") + self.addTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.addTest(lhs: "1717986919", rhs: "1", expecting: "1717986920") + self.addTest(lhs: "1717986919", rhs: "-1", expecting: "1717986918") + self.addTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "18446744075427538534") + self.addTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "-18446744071991564696") + self.addTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "18446744075427538536") + self.addTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "-18446744071991564698") + self.addTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749993") + self.addTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503759776155") + self.addTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371116") + self.addTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252143397278") + self.addTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "18446744075427538542") + self.addTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "-18446744071991564704") + self.addTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059689") + self.addTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946017085851") + self.addTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330162") + self.addTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400495356324") + self.addTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "18446744075427538548") + self.addTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "-18446744071991564710") + self.addTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369385") + self.addTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388274395547") + self.addTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289208") + self.addTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548847315370") + self.addTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "18446744075427538554") + self.addTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "-18446744071991564716") + self.addTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.addTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986919") + self.addTest(lhs: "-1717986920", rhs: "-1", expecting: "-1717986921") + self.addTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "18446744071991564695") + self.addTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "-18446744075427538535") + self.addTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "18446744071991564697") + self.addTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "-18446744075427538537") + self.addTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351503759776154") + self.addTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507195749994") + self.addTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252143397277") + self.addTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255579371117") + self.addTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "18446744071991564703") + self.addTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "-18446744075427538543") + self.addTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815946017085850") + self.addTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949453059690") + self.addTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400495356323") + self.addTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403931330163") + self.addTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "18446744071991564709") + self.addTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "-18446744075427538549") + self.addTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280388274395546") + self.addTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391710369386") + self.addTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275548847315369") + self.addTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552283289209") + self.addTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "18446744071991564715") + self.addTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "-18446744075427538555") + self.addTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.addTest(lhs: "1503238555", rhs: "1", expecting: "1503238556") + self.addTest(lhs: "1503238555", rhs: "-1", expecting: "1503238554") + self.addTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "18446744075212790170") + self.addTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "-18446744072206313060") + self.addTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "18446744075212790172") + self.addTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "-18446744072206313062") + self.addTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506981001629") + self.addTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503974524519") + self.addTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255364622752") + self.addTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252358145642") + self.addTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "18446744075212790178") + self.addTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "-18446744072206313068") + self.addTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949238311325") + self.addTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946231834215") + self.addTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403716581798") + self.addTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400710104688") + self.addTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "18446744075212790184") + self.addTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "-18446744072206313074") + self.addTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391495621021") + self.addTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388489143911") + self.addTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552068540844") + self.addTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549062063734") + self.addTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "18446744075212790190") + self.addTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "-18446744072206313080") + self.addTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.addTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238555") + self.addTest(lhs: "-1503238556", rhs: "-1", expecting: "-1503238557") + self.addTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "18446744072206313059") + self.addTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "-18446744075212790171") + self.addTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "18446744072206313061") + self.addTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "-18446744075212790173") + self.addTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351503974524518") + self.addTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506981001630") + self.addTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252358145641") + self.addTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255364622753") + self.addTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "18446744072206313067") + self.addTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "-18446744075212790179") + self.addTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815946231834214") + self.addTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949238311326") + self.addTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400710104687") + self.addTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403716581799") + self.addTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "18446744072206313073") + self.addTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "-18446744075212790185") + self.addTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280388489143910") + self.addTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391495621022") + self.addTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549062063733") + self.addTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552068540845") + self.addTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "18446744072206313079") + self.addTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "-18446744075212790191") + self.addTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.addTest(lhs: "1288490191", rhs: "1", expecting: "1288490192") + self.addTest(lhs: "1288490191", rhs: "-1", expecting: "1288490190") + self.addTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "18446744074998041806") + self.addTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "-18446744072421061424") + self.addTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "18446744074998041808") + self.addTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "-18446744072421061426") + self.addTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506766253265") + self.addTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504189272883") + self.addTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255149874388") + self.addTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252572894006") + self.addTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "18446744074998041814") + self.addTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "-18446744072421061432") + self.addTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949023562961") + self.addTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946446582579") + self.addTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403501833434") + self.addTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400924853052") + self.addTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "18446744074998041820") + self.addTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "-18446744072421061438") + self.addTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391280872657") + self.addTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388703892275") + self.addTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551853792480") + self.addTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549276812098") + self.addTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "18446744074998041826") + self.addTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "-18446744072421061444") + self.addTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.addTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490191") + self.addTest(lhs: "-1288490192", rhs: "-1", expecting: "-1288490193") + self.addTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "18446744072421061423") + self.addTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "-18446744074998041807") + self.addTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "18446744072421061425") + self.addTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "-18446744074998041809") + self.addTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351504189272882") + self.addTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506766253266") + self.addTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252572894005") + self.addTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255149874389") + self.addTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "18446744072421061431") + self.addTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "-18446744074998041815") + self.addTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815946446582578") + self.addTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949023562962") + self.addTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400924853051") + self.addTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403501833435") + self.addTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "18446744072421061437") + self.addTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "-18446744074998041821") + self.addTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280388703892274") + self.addTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391280872658") + self.addTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549276812097") + self.addTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551853792481") + self.addTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "18446744072421061443") + self.addTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "-18446744074998041827") + self.addTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.addTest(lhs: "1073741827", rhs: "1", expecting: "1073741828") + self.addTest(lhs: "1073741827", rhs: "-1", expecting: "1073741826") + self.addTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "18446744074783293442") + self.addTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "-18446744072635809788") + self.addTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "18446744074783293444") + self.addTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "-18446744072635809790") + self.addTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506551504901") + self.addTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504404021247") + self.addTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254935126024") + self.addTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252787642370") + self.addTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "18446744074783293450") + self.addTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "-18446744072635809796") + self.addTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948808814597") + self.addTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946661330943") + self.addTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403287085070") + self.addTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401139601416") + self.addTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "18446744074783293456") + self.addTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "-18446744072635809802") + self.addTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391066124293") + self.addTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388918640639") + self.addTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551639044116") + self.addTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549491560462") + self.addTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "18446744074783293462") + self.addTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "-18446744072635809808") + self.addTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.addTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741827") + self.addTest(lhs: "-1073741828", rhs: "-1", expecting: "-1073741829") + self.addTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "18446744072635809787") + self.addTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "-18446744074783293443") + self.addTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "18446744072635809789") + self.addTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "-18446744074783293445") + self.addTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351504404021246") + self.addTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506551504902") + self.addTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252787642369") + self.addTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254935126025") + self.addTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "18446744072635809795") + self.addTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "-18446744074783293451") + self.addTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815946661330942") + self.addTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948808814598") + self.addTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401139601415") + self.addTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403287085071") + self.addTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "18446744072635809801") + self.addTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "-18446744074783293457") + self.addTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280388918640638") + self.addTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391066124294") + self.addTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549491560461") + self.addTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551639044117") + self.addTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "18446744072635809807") + self.addTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "-18446744074783293463") + self.addTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.addTest(lhs: "858993463", rhs: "1", expecting: "858993464") + self.addTest(lhs: "858993463", rhs: "-1", expecting: "858993462") + self.addTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "18446744074568545078") + self.addTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "-18446744072850558152") + self.addTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "18446744074568545080") + self.addTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "-18446744072850558154") + self.addTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756537") + self.addTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504618769611") + self.addTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377660") + self.addTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253002390734") + self.addTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "18446744074568545086") + self.addTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "-18446744072850558160") + self.addTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066233") + self.addTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946876079307") + self.addTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336706") + self.addTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401354349780") + self.addTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "18446744074568545092") + self.addTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "-18446744072850558166") + self.addTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375929") + self.addTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389133389003") + self.addTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295752") + self.addTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549706308826") + self.addTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "18446744074568545098") + self.addTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "-18446744072850558172") + self.addTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.addTest(lhs: "-858993464", rhs: "1", expecting: "-858993463") + self.addTest(lhs: "-858993464", rhs: "-1", expecting: "-858993465") + self.addTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "18446744072850558151") + self.addTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "-18446744074568545079") + self.addTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "18446744072850558153") + self.addTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "-18446744074568545081") + self.addTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351504618769610") + self.addTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756538") + self.addTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253002390733") + self.addTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377661") + self.addTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "18446744072850558159") + self.addTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "-18446744074568545087") + self.addTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815946876079306") + self.addTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066234") + self.addTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401354349779") + self.addTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336707") + self.addTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "18446744072850558165") + self.addTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "-18446744074568545093") + self.addTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389133389002") + self.addTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375930") + self.addTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549706308825") + self.addTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295753") + self.addTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "18446744072850558171") + self.addTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "-18446744074568545099") + self.addTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.addTest(lhs: "644245099", rhs: "1", expecting: "644245100") + self.addTest(lhs: "644245099", rhs: "-1", expecting: "644245098") + self.addTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "18446744074353796714") + self.addTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "-18446744073065306516") + self.addTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "18446744074353796716") + self.addTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "-18446744073065306518") + self.addTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506122008173") + self.addTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504833517975") + self.addTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254505629296") + self.addTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253217139098") + self.addTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "18446744074353796722") + self.addTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "-18446744073065306524") + self.addTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948379317869") + self.addTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947090827671") + self.addTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402857588342") + self.addTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401569098144") + self.addTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "18446744074353796728") + self.addTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "-18446744073065306530") + self.addTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390636627565") + self.addTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389348137367") + self.addTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551209547388") + self.addTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549921057190") + self.addTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "18446744074353796734") + self.addTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "-18446744073065306536") + self.addTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.addTest(lhs: "-644245100", rhs: "1", expecting: "-644245099") + self.addTest(lhs: "-644245100", rhs: "-1", expecting: "-644245101") + self.addTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "18446744073065306515") + self.addTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "-18446744074353796715") + self.addTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "18446744073065306517") + self.addTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "-18446744074353796717") + self.addTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351504833517974") + self.addTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506122008174") + self.addTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253217139097") + self.addTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254505629297") + self.addTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "18446744073065306523") + self.addTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "-18446744074353796723") + self.addTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947090827670") + self.addTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948379317870") + self.addTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401569098143") + self.addTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402857588343") + self.addTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "18446744073065306529") + self.addTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "-18446744074353796729") + self.addTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389348137366") + self.addTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390636627566") + self.addTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549921057189") + self.addTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551209547389") + self.addTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "18446744073065306535") + self.addTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "-18446744074353796735") + self.addTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.addTest(lhs: "429496735", rhs: "1", expecting: "429496736") + self.addTest(lhs: "429496735", rhs: "-1", expecting: "429496734") + self.addTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "18446744074139048350") + self.addTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "-18446744073280054880") + self.addTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "18446744074139048352") + self.addTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "-18446744073280054882") + self.addTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505907259809") + self.addTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505048266339") + self.addTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254290880932") + self.addTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253431887462") + self.addTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "18446744074139048358") + self.addTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "-18446744073280054888") + self.addTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948164569505") + self.addTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947305576035") + self.addTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402642839978") + self.addTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401783846508") + self.addTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "18446744074139048364") + self.addTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "-18446744073280054894") + self.addTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390421879201") + self.addTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389562885731") + self.addTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550994799024") + self.addTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550135805554") + self.addTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "18446744074139048370") + self.addTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "-18446744073280054900") + self.addTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.addTest(lhs: "-429496736", rhs: "1", expecting: "-429496735") + self.addTest(lhs: "-429496736", rhs: "-1", expecting: "-429496737") + self.addTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "18446744073280054879") + self.addTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "-18446744074139048351") + self.addTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "18446744073280054881") + self.addTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "-18446744074139048353") + self.addTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505048266338") + self.addTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505907259810") + self.addTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253431887461") + self.addTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254290880933") + self.addTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "18446744073280054887") + self.addTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "-18446744074139048359") + self.addTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947305576034") + self.addTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948164569506") + self.addTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401783846507") + self.addTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402642839979") + self.addTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "18446744073280054893") + self.addTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "-18446744074139048365") + self.addTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389562885730") + self.addTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390421879202") + self.addTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550135805553") + self.addTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550994799025") + self.addTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "18446744073280054899") + self.addTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "-18446744074139048371") + self.addTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.addTest(lhs: "214748371", rhs: "1", expecting: "214748372") + self.addTest(lhs: "214748371", rhs: "-1", expecting: "214748370") + self.addTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "18446744073924299986") + self.addTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "-18446744073494803244") + self.addTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "18446744073924299988") + self.addTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "-18446744073494803246") + self.addTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505692511445") + self.addTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505263014703") + self.addTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254076132568") + self.addTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253646635826") + self.addTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "18446744073924299994") + self.addTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "-18446744073494803252") + self.addTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947949821141") + self.addTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947520324399") + self.addTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402428091614") + self.addTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401998594872") + self.addTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "18446744073924300000") + self.addTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "-18446744073494803258") + self.addTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390207130837") + self.addTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389777634095") + self.addTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550780050660") + self.addTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550350553918") + self.addTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "18446744073924300006") + self.addTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "-18446744073494803264") + self.addTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.addTest(lhs: "-214748372", rhs: "1", expecting: "-214748371") + self.addTest(lhs: "-214748372", rhs: "-1", expecting: "-214748373") + self.addTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "18446744073494803243") + self.addTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "-18446744073924299987") + self.addTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "18446744073494803245") + self.addTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "-18446744073924299989") + self.addTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505263014702") + self.addTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505692511446") + self.addTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253646635825") + self.addTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254076132569") + self.addTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "18446744073494803251") + self.addTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "-18446744073924299995") + self.addTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947520324398") + self.addTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947949821142") + self.addTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401998594871") + self.addTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402428091615") + self.addTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "18446744073494803257") + self.addTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "-18446744073924300001") + self.addTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389777634094") + self.addTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390207130838") + self.addTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550350553917") + self.addTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550780050661") + self.addTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "18446744073494803263") + self.addTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "-18446744073924300007") + } + + func test_add_heap_smi() { + self.addTest(lhs: "0", rhs: "0", expecting: "0") + self.addTest(lhs: "0", rhs: "1", expecting: "1") + self.addTest(lhs: "0", rhs: "-1", expecting: "-1") + self.addTest(lhs: "0", rhs: "2147483647", expecting: "2147483647") + self.addTest(lhs: "0", rhs: "-2147483648", expecting: "-2147483648") + self.addTest(lhs: "0", rhs: "1932735283", expecting: "1932735283") + self.addTest(lhs: "0", rhs: "-1932735284", expecting: "-1932735284") + self.addTest(lhs: "0", rhs: "1717986919", expecting: "1717986919") + self.addTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.addTest(lhs: "0", rhs: "1503238555", expecting: "1503238555") + self.addTest(lhs: "0", rhs: "-1503238556", expecting: "-1503238556") + self.addTest(lhs: "0", rhs: "1288490191", expecting: "1288490191") + self.addTest(lhs: "0", rhs: "-1288490192", expecting: "-1288490192") + self.addTest(lhs: "0", rhs: "1073741827", expecting: "1073741827") + self.addTest(lhs: "0", rhs: "-1073741828", expecting: "-1073741828") + self.addTest(lhs: "0", rhs: "858993463", expecting: "858993463") + self.addTest(lhs: "0", rhs: "-858993464", expecting: "-858993464") + self.addTest(lhs: "0", rhs: "644245099", expecting: "644245099") + self.addTest(lhs: "0", rhs: "-644245100", expecting: "-644245100") + self.addTest(lhs: "0", rhs: "429496735", expecting: "429496735") + self.addTest(lhs: "0", rhs: "-429496736", expecting: "-429496736") + self.addTest(lhs: "0", rhs: "214748371", expecting: "214748371") + self.addTest(lhs: "0", rhs: "-214748372", expecting: "-214748372") + self.addTest(lhs: "1", rhs: "0", expecting: "1") + self.addTest(lhs: "1", rhs: "1", expecting: "2") + self.addTest(lhs: "1", rhs: "-1", expecting: "0") + self.addTest(lhs: "1", rhs: "2147483647", expecting: "2147483648") + self.addTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483647") + self.addTest(lhs: "1", rhs: "1932735283", expecting: "1932735284") + self.addTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735283") + self.addTest(lhs: "1", rhs: "1717986919", expecting: "1717986920") + self.addTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.addTest(lhs: "1", rhs: "1503238555", expecting: "1503238556") + self.addTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238555") + self.addTest(lhs: "1", rhs: "1288490191", expecting: "1288490192") + self.addTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490191") + self.addTest(lhs: "1", rhs: "1073741827", expecting: "1073741828") + self.addTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741827") + self.addTest(lhs: "1", rhs: "858993463", expecting: "858993464") + self.addTest(lhs: "1", rhs: "-858993464", expecting: "-858993463") + self.addTest(lhs: "1", rhs: "644245099", expecting: "644245100") + self.addTest(lhs: "1", rhs: "-644245100", expecting: "-644245099") + self.addTest(lhs: "1", rhs: "429496735", expecting: "429496736") + self.addTest(lhs: "1", rhs: "-429496736", expecting: "-429496735") + self.addTest(lhs: "1", rhs: "214748371", expecting: "214748372") + self.addTest(lhs: "1", rhs: "-214748372", expecting: "-214748371") + self.addTest(lhs: "-1", rhs: "0", expecting: "-1") + self.addTest(lhs: "-1", rhs: "1", expecting: "0") + self.addTest(lhs: "-1", rhs: "-1", expecting: "-2") + self.addTest(lhs: "-1", rhs: "2147483647", expecting: "2147483646") + self.addTest(lhs: "-1", rhs: "-2147483648", expecting: "-2147483649") + self.addTest(lhs: "-1", rhs: "1932735283", expecting: "1932735282") + self.addTest(lhs: "-1", rhs: "-1932735284", expecting: "-1932735285") + self.addTest(lhs: "-1", rhs: "1717986919", expecting: "1717986918") + self.addTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986921") + self.addTest(lhs: "-1", rhs: "1503238555", expecting: "1503238554") + self.addTest(lhs: "-1", rhs: "-1503238556", expecting: "-1503238557") + self.addTest(lhs: "-1", rhs: "1288490191", expecting: "1288490190") + self.addTest(lhs: "-1", rhs: "-1288490192", expecting: "-1288490193") + self.addTest(lhs: "-1", rhs: "1073741827", expecting: "1073741826") + self.addTest(lhs: "-1", rhs: "-1073741828", expecting: "-1073741829") + self.addTest(lhs: "-1", rhs: "858993463", expecting: "858993462") + self.addTest(lhs: "-1", rhs: "-858993464", expecting: "-858993465") + self.addTest(lhs: "-1", rhs: "644245099", expecting: "644245098") + self.addTest(lhs: "-1", rhs: "-644245100", expecting: "-644245101") + self.addTest(lhs: "-1", rhs: "429496735", expecting: "429496734") + self.addTest(lhs: "-1", rhs: "-429496736", expecting: "-429496737") + self.addTest(lhs: "-1", rhs: "214748371", expecting: "214748370") + self.addTest(lhs: "-1", rhs: "-214748372", expecting: "-214748373") + self.addTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.addTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551616") + self.addTest(lhs: "18446744073709551615", rhs: "-1", expecting: "18446744073709551614") + self.addTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "18446744075857035262") + self.addTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "18446744071562067967") + self.addTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "18446744075642286898") + self.addTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "18446744071776816331") + self.addTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "18446744075427538534") + self.addTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "18446744071991564695") + self.addTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "18446744075212790170") + self.addTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "18446744072206313059") + self.addTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "18446744074998041806") + self.addTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "18446744072421061423") + self.addTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "18446744074783293442") + self.addTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "18446744072635809787") + self.addTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "18446744074568545078") + self.addTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "18446744072850558151") + self.addTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "18446744074353796714") + self.addTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "18446744073065306515") + self.addTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "18446744074139048350") + self.addTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "18446744073280054879") + self.addTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "18446744073924299986") + self.addTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "18446744073494803243") + self.addTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.addTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551614") + self.addTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-18446744073709551616") + self.addTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "-18446744071562067968") + self.addTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "-18446744075857035263") + self.addTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "-18446744071776816332") + self.addTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "-18446744075642286899") + self.addTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "-18446744071991564696") + self.addTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-18446744075427538535") + self.addTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "-18446744072206313060") + self.addTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "-18446744075212790171") + self.addTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "-18446744072421061424") + self.addTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "-18446744074998041807") + self.addTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "-18446744072635809788") + self.addTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "-18446744074783293443") + self.addTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "-18446744072850558152") + self.addTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "-18446744074568545079") + self.addTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "-18446744073065306516") + self.addTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "-18446744074353796715") + self.addTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "-18446744073280054880") + self.addTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "-18446744074139048351") + self.addTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "-18446744073494803244") + self.addTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "-18446744073924299987") + self.addTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.addTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551618") + self.addTest(lhs: "18446744073709551617", rhs: "-1", expecting: "18446744073709551616") + self.addTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "18446744075857035264") + self.addTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "18446744071562067969") + self.addTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "18446744075642286900") + self.addTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "18446744071776816333") + self.addTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "18446744075427538536") + self.addTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "18446744071991564697") + self.addTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "18446744075212790172") + self.addTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "18446744072206313061") + self.addTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "18446744074998041808") + self.addTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "18446744072421061425") + self.addTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "18446744074783293444") + self.addTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "18446744072635809789") + self.addTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "18446744074568545080") + self.addTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "18446744072850558153") + self.addTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "18446744074353796716") + self.addTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "18446744073065306517") + self.addTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "18446744074139048352") + self.addTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "18446744073280054881") + self.addTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "18446744073924299988") + self.addTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "18446744073494803245") + self.addTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.addTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551616") + self.addTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-18446744073709551618") + self.addTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "-18446744071562067970") + self.addTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "-18446744075857035265") + self.addTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "-18446744071776816334") + self.addTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "-18446744075642286901") + self.addTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "-18446744071991564698") + self.addTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-18446744075427538537") + self.addTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "-18446744072206313062") + self.addTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "-18446744075212790173") + self.addTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "-18446744072421061426") + self.addTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "-18446744074998041809") + self.addTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "-18446744072635809790") + self.addTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "-18446744074783293445") + self.addTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "-18446744072850558154") + self.addTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "-18446744074568545081") + self.addTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "-18446744073065306518") + self.addTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "-18446744074353796717") + self.addTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "-18446744073280054882") + self.addTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "-18446744074139048353") + self.addTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "-18446744073494803246") + self.addTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "-18446744073924299989") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763075") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763073") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "340282366920938463481821351507625246721") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "340282366920938463481821351503330279426") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "340282366920938463481821351507410498357") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "340282366920938463481821351503545027790") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "340282366920938463481821351507195749993") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351503759776154") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "340282366920938463481821351506981001629") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "340282366920938463481821351503974524518") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "340282366920938463481821351506766253265") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "340282366920938463481821351504189272882") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "340282366920938463481821351506551504901") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "340282366920938463481821351504404021246") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "340282366920938463481821351506336756537") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "340282366920938463481821351504618769610") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "340282366920938463481821351506122008173") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "340282366920938463481821351504833517974") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "340282366920938463481821351505907259809") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "340282366920938463481821351505048266338") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "340282366920938463481821351505692511445") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "340282366920938463481821351505263014702") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763073") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763075") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "-340282366920938463481821351503330279427") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-340282366920938463481821351507625246722") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "-340282366920938463481821351503545027791") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-340282366920938463481821351507410498358") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "-340282366920938463481821351503759776155") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351507195749994") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "-340282366920938463481821351503974524519") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-340282366920938463481821351506981001630") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "-340282366920938463481821351504189272883") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-340282366920938463481821351506766253266") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "-340282366920938463481821351504404021247") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-340282366920938463481821351506551504902") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "-340282366920938463481821351504618769611") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-340282366920938463481821351506336756538") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "-340282366920938463481821351504833517975") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-340282366920938463481821351506122008174") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "-340282366920938463481821351505048266339") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-340282366920938463481821351505907259810") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "-340282366920938463481821351505263014703") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-340282366920938463481821351505692511446") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "6277101735386680764516354157049543343010657915256008867844") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "6277101735386680764516354157049543343010657915251713900549") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "6277101735386680764516354157049543343010657915255794119480") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "6277101735386680764516354157049543343010657915251928648913") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "6277101735386680764516354157049543343010657915255579371116") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915252143397277") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "6277101735386680764516354157049543343010657915255364622752") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "6277101735386680764516354157049543343010657915252358145641") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "6277101735386680764516354157049543343010657915255149874388") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "6277101735386680764516354157049543343010657915252572894005") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "6277101735386680764516354157049543343010657915254935126024") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "6277101735386680764516354157049543343010657915252787642369") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "6277101735386680764516354157049543343010657915254720377660") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "6277101735386680764516354157049543343010657915253002390733") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "6277101735386680764516354157049543343010657915254505629296") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "6277101735386680764516354157049543343010657915253217139097") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "6277101735386680764516354157049543343010657915254290880932") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "6277101735386680764516354157049543343010657915253431887461") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "6277101735386680764516354157049543343010657915254076132568") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "6277101735386680764516354157049543343010657915253646635825") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "-6277101735386680764516354157049543343010657915251713900550") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-6277101735386680764516354157049543343010657915256008867845") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "-6277101735386680764516354157049543343010657915251928648914") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-6277101735386680764516354157049543343010657915255794119481") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "-6277101735386680764516354157049543343010657915252143397278") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371117") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "-6277101735386680764516354157049543343010657915252358145642") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-6277101735386680764516354157049543343010657915255364622753") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "-6277101735386680764516354157049543343010657915252572894006") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-6277101735386680764516354157049543343010657915255149874389") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "-6277101735386680764516354157049543343010657915252787642370") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-6277101735386680764516354157049543343010657915254935126025") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "-6277101735386680764516354157049543343010657915253002390734") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-6277101735386680764516354157049543343010657915254720377661") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "-6277101735386680764516354157049543343010657915253217139098") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-6277101735386680764516354157049543343010657915254505629297") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "-6277101735386680764516354157049543343010657915253431887462") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-6277101735386680764516354157049543343010657915254290880933") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "-6277101735386680764516354157049543343010657915253646635826") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-6277101735386680764516354157049543343010657915254076132569") + self.addTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.addTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551624") + self.addTest(lhs: "18446744073709551623", rhs: "-1", expecting: "18446744073709551622") + self.addTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "18446744075857035270") + self.addTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "18446744071562067975") + self.addTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "18446744075642286906") + self.addTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "18446744071776816339") + self.addTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "18446744075427538542") + self.addTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "18446744071991564703") + self.addTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "18446744075212790178") + self.addTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "18446744072206313067") + self.addTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "18446744074998041814") + self.addTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "18446744072421061431") + self.addTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "18446744074783293450") + self.addTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "18446744072635809795") + self.addTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "18446744074568545086") + self.addTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "18446744072850558159") + self.addTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "18446744074353796722") + self.addTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "18446744073065306523") + self.addTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "18446744074139048358") + self.addTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "18446744073280054887") + self.addTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "18446744073924299994") + self.addTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "18446744073494803251") + self.addTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.addTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551622") + self.addTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-18446744073709551624") + self.addTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "-18446744071562067976") + self.addTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "-18446744075857035271") + self.addTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "-18446744071776816340") + self.addTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "-18446744075642286907") + self.addTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "-18446744071991564704") + self.addTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-18446744075427538543") + self.addTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "-18446744072206313068") + self.addTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "-18446744075212790179") + self.addTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "-18446744072421061432") + self.addTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "-18446744074998041815") + self.addTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "-18446744072635809796") + self.addTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "-18446744074783293451") + self.addTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "-18446744072850558160") + self.addTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "-18446744074568545087") + self.addTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "-18446744073065306524") + self.addTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "-18446744074353796723") + self.addTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "-18446744073280054888") + self.addTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "-18446744074139048359") + self.addTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "-18446744073494803252") + self.addTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "-18446744073924299995") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072771") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072769") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "340282366920938463592501815949882556417") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "340282366920938463592501815945587589122") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "340282366920938463592501815949667808053") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "340282366920938463592501815945802337486") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "340282366920938463592501815949453059689") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815946017085850") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "340282366920938463592501815949238311325") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "340282366920938463592501815946231834214") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "340282366920938463592501815949023562961") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "340282366920938463592501815946446582578") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "340282366920938463592501815948808814597") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "340282366920938463592501815946661330942") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "340282366920938463592501815948594066233") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "340282366920938463592501815946876079306") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "340282366920938463592501815948379317869") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "340282366920938463592501815947090827670") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "340282366920938463592501815948164569505") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "340282366920938463592501815947305576034") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "340282366920938463592501815947949821141") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "340282366920938463592501815947520324398") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072769") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072771") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "-340282366920938463592501815945587589123") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-340282366920938463592501815949882556418") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "-340282366920938463592501815945802337487") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-340282366920938463592501815949667808054") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "-340282366920938463592501815946017085851") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815949453059690") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "-340282366920938463592501815946231834215") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-340282366920938463592501815949238311326") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "-340282366920938463592501815946446582579") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-340282366920938463592501815949023562962") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "-340282366920938463592501815946661330943") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-340282366920938463592501815948808814598") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "-340282366920938463592501815946876079307") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-340282366920938463592501815948594066234") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "-340282366920938463592501815947090827671") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-340282366920938463592501815948379317870") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "-340282366920938463592501815947305576035") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-340282366920938463592501815948164569506") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "-340282366920938463592501815947520324399") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-340282366920938463592501815947949821142") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "6277101735386680766558048358575174123680225095404360826890") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "6277101735386680766558048358575174123680225095400065859595") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "6277101735386680766558048358575174123680225095404146078526") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "6277101735386680766558048358575174123680225095400280607959") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "6277101735386680766558048358575174123680225095403931330162") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095400495356323") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "6277101735386680766558048358575174123680225095403716581798") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "6277101735386680766558048358575174123680225095400710104687") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "6277101735386680766558048358575174123680225095403501833434") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "6277101735386680766558048358575174123680225095400924853051") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "6277101735386680766558048358575174123680225095403287085070") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "6277101735386680766558048358575174123680225095401139601415") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "6277101735386680766558048358575174123680225095403072336706") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "6277101735386680766558048358575174123680225095401354349779") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "6277101735386680766558048358575174123680225095402857588342") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "6277101735386680766558048358575174123680225095401569098143") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "6277101735386680766558048358575174123680225095402642839978") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "6277101735386680766558048358575174123680225095401783846507") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "6277101735386680766558048358575174123680225095402428091614") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "6277101735386680766558048358575174123680225095401998594871") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "-6277101735386680766558048358575174123680225095400065859596") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-6277101735386680766558048358575174123680225095404360826891") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "-6277101735386680766558048358575174123680225095400280607960") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-6277101735386680766558048358575174123680225095404146078527") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "-6277101735386680766558048358575174123680225095400495356324") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330163") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "-6277101735386680766558048358575174123680225095400710104688") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-6277101735386680766558048358575174123680225095403716581799") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "-6277101735386680766558048358575174123680225095400924853052") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-6277101735386680766558048358575174123680225095403501833435") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "-6277101735386680766558048358575174123680225095401139601416") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-6277101735386680766558048358575174123680225095403287085071") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "-6277101735386680766558048358575174123680225095401354349780") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-6277101735386680766558048358575174123680225095403072336707") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "-6277101735386680766558048358575174123680225095401569098144") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-6277101735386680766558048358575174123680225095402857588343") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "-6277101735386680766558048358575174123680225095401783846508") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-6277101735386680766558048358575174123680225095402642839979") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "-6277101735386680766558048358575174123680225095401998594872") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-6277101735386680766558048358575174123680225095402428091615") + self.addTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.addTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551630") + self.addTest(lhs: "18446744073709551629", rhs: "-1", expecting: "18446744073709551628") + self.addTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "18446744075857035276") + self.addTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "18446744071562067981") + self.addTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "18446744075642286912") + self.addTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "18446744071776816345") + self.addTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "18446744075427538548") + self.addTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "18446744071991564709") + self.addTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "18446744075212790184") + self.addTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "18446744072206313073") + self.addTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "18446744074998041820") + self.addTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "18446744072421061437") + self.addTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "18446744074783293456") + self.addTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "18446744072635809801") + self.addTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "18446744074568545092") + self.addTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "18446744072850558165") + self.addTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "18446744074353796728") + self.addTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "18446744073065306529") + self.addTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "18446744074139048364") + self.addTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "18446744073280054893") + self.addTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "18446744073924300000") + self.addTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "18446744073494803257") + self.addTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.addTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551628") + self.addTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-18446744073709551630") + self.addTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "-18446744071562067982") + self.addTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "-18446744075857035277") + self.addTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "-18446744071776816346") + self.addTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "-18446744075642286913") + self.addTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "-18446744071991564710") + self.addTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-18446744075427538549") + self.addTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "-18446744072206313074") + self.addTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "-18446744075212790185") + self.addTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "-18446744072421061438") + self.addTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "-18446744074998041821") + self.addTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "-18446744072635809802") + self.addTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "-18446744074783293457") + self.addTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "-18446744072850558166") + self.addTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "-18446744074568545093") + self.addTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "-18446744073065306530") + self.addTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "-18446744074353796729") + self.addTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "-18446744073280054894") + self.addTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "-18446744074139048365") + self.addTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "-18446744073494803258") + self.addTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "-18446744073924300001") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382467") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382465") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "340282366920938463703182280392139866113") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "340282366920938463703182280387844898818") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "340282366920938463703182280391925117749") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "340282366920938463703182280388059647182") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "340282366920938463703182280391710369385") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280388274395546") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "340282366920938463703182280391495621021") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "340282366920938463703182280388489143910") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "340282366920938463703182280391280872657") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "340282366920938463703182280388703892274") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "340282366920938463703182280391066124293") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "340282366920938463703182280388918640638") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "340282366920938463703182280390851375929") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "340282366920938463703182280389133389002") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "340282366920938463703182280390636627565") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "340282366920938463703182280389348137366") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "340282366920938463703182280390421879201") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "340282366920938463703182280389562885730") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "340282366920938463703182280390207130837") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "340282366920938463703182280389777634094") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382465") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382467") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "-340282366920938463703182280387844898819") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-340282366920938463703182280392139866114") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "-340282366920938463703182280388059647183") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-340282366920938463703182280391925117750") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "-340282366920938463703182280388274395547") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280391710369386") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "-340282366920938463703182280388489143911") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-340282366920938463703182280391495621022") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "-340282366920938463703182280388703892275") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-340282366920938463703182280391280872658") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "-340282366920938463703182280388918640639") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-340282366920938463703182280391066124294") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "-340282366920938463703182280389133389003") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-340282366920938463703182280390851375930") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "-340282366920938463703182280389348137367") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-340282366920938463703182280390636627566") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "-340282366920938463703182280389562885731") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-340282366920938463703182280390421879202") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "-340282366920938463703182280389777634095") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-340282366920938463703182280390207130838") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "6277101735386680768599742560100804904349792275552712785936") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "6277101735386680768599742560100804904349792275548417818641") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "6277101735386680768599742560100804904349792275552498037572") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "6277101735386680768599742560100804904349792275548632567005") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "6277101735386680768599742560100804904349792275552283289208") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275548847315369") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "6277101735386680768599742560100804904349792275552068540844") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "6277101735386680768599742560100804904349792275549062063733") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "6277101735386680768599742560100804904349792275551853792480") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "6277101735386680768599742560100804904349792275549276812097") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "6277101735386680768599742560100804904349792275551639044116") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "6277101735386680768599742560100804904349792275549491560461") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "6277101735386680768599742560100804904349792275551424295752") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "6277101735386680768599742560100804904349792275549706308825") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "6277101735386680768599742560100804904349792275551209547388") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "6277101735386680768599742560100804904349792275549921057189") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "6277101735386680768599742560100804904349792275550994799024") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "6277101735386680768599742560100804904349792275550135805553") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "6277101735386680768599742560100804904349792275550780050660") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "6277101735386680768599742560100804904349792275550350553917") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "-6277101735386680768599742560100804904349792275548417818642") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-6277101735386680768599742560100804904349792275552712785937") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "-6277101735386680768599742560100804904349792275548632567006") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-6277101735386680768599742560100804904349792275552498037573") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "-6277101735386680768599742560100804904349792275548847315370") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289209") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "-6277101735386680768599742560100804904349792275549062063734") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-6277101735386680768599742560100804904349792275552068540845") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "-6277101735386680768599742560100804904349792275549276812098") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-6277101735386680768599742560100804904349792275551853792481") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "-6277101735386680768599742560100804904349792275549491560462") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-6277101735386680768599742560100804904349792275551639044117") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "-6277101735386680768599742560100804904349792275549706308826") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-6277101735386680768599742560100804904349792275551424295753") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "-6277101735386680768599742560100804904349792275549921057190") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-6277101735386680768599742560100804904349792275551209547389") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "-6277101735386680768599742560100804904349792275550135805554") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-6277101735386680768599742560100804904349792275550994799025") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "-6277101735386680768599742560100804904349792275550350553918") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-6277101735386680768599742560100804904349792275550780050661") + self.addTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.addTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551636") + self.addTest(lhs: "18446744073709551635", rhs: "-1", expecting: "18446744073709551634") + self.addTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "18446744075857035282") + self.addTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "18446744071562067987") + self.addTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "18446744075642286918") + self.addTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "18446744071776816351") + self.addTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "18446744075427538554") + self.addTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "18446744071991564715") + self.addTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "18446744075212790190") + self.addTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "18446744072206313079") + self.addTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "18446744074998041826") + self.addTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "18446744072421061443") + self.addTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "18446744074783293462") + self.addTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "18446744072635809807") + self.addTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "18446744074568545098") + self.addTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "18446744072850558171") + self.addTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "18446744074353796734") + self.addTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "18446744073065306535") + self.addTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "18446744074139048370") + self.addTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "18446744073280054899") + self.addTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "18446744073924300006") + self.addTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "18446744073494803263") + self.addTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.addTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551634") + self.addTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-18446744073709551636") + self.addTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "-18446744071562067988") + self.addTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "-18446744075857035283") + self.addTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "-18446744071776816352") + self.addTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "-18446744075642286919") + self.addTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "-18446744071991564716") + self.addTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-18446744075427538555") + self.addTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "-18446744072206313080") + self.addTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "-18446744075212790191") + self.addTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "-18446744072421061444") + self.addTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "-18446744074998041827") + self.addTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "-18446744072635809808") + self.addTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "-18446744074783293463") + self.addTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "-18446744072850558172") + self.addTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "-18446744074568545099") + self.addTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "-18446744073065306536") + self.addTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "-18446744074353796735") + self.addTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "-18446744073280054900") + self.addTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "-18446744074139048371") + self.addTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "-18446744073494803264") + self.addTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "-18446744073924300007") + } + + func test_add_heap_heap() { + self.addTest(lhs: "0", rhs: "0", expecting: "0") + self.addTest(lhs: "0", rhs: "1", expecting: "1") + self.addTest(lhs: "0", rhs: "-1", expecting: "-1") + self.addTest(lhs: "0", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.addTest(lhs: "0", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.addTest(lhs: "0", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.addTest(lhs: "0", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.addTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.addTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.addTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "0", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.addTest(lhs: "0", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.addTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.addTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.addTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "0", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.addTest(lhs: "0", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.addTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.addTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.addTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "0", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.addTest(lhs: "0", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.addTest(lhs: "1", rhs: "0", expecting: "1") + self.addTest(lhs: "1", rhs: "1", expecting: "2") + self.addTest(lhs: "1", rhs: "-1", expecting: "0") + self.addTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551616") + self.addTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551614") + self.addTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551618") + self.addTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551616") + self.addTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.addTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.addTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551624") + self.addTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551622") + self.addTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.addTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.addTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551630") + self.addTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551628") + self.addTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.addTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.addTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551636") + self.addTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551634") + self.addTest(lhs: "-1", rhs: "0", expecting: "-1") + self.addTest(lhs: "-1", rhs: "1", expecting: "0") + self.addTest(lhs: "-1", rhs: "-1", expecting: "-2") + self.addTest(lhs: "-1", rhs: "18446744073709551615", expecting: "18446744073709551614") + self.addTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.addTest(lhs: "-1", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.addTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-18446744073709551618") + self.addTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763073") + self.addTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763075") + self.addTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "-1", rhs: "18446744073709551623", expecting: "18446744073709551622") + self.addTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-18446744073709551624") + self.addTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072769") + self.addTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072771") + self.addTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "-1", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.addTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-18446744073709551630") + self.addTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382465") + self.addTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382467") + self.addTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "-1", rhs: "18446744073709551635", expecting: "18446744073709551634") + self.addTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-18446744073709551636") + self.addTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.addTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551616") + self.addTest(lhs: "18446744073709551615", rhs: "-1", expecting: "18446744073709551614") + self.addTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "36893488147419103230") + self.addTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "0") + self.addTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "36893488147419103232") + self.addTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "-2") + self.addTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314689") + self.addTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211459") + self.addTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935812") + self.addTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.addTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "36893488147419103238") + self.addTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "-8") + self.addTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624385") + self.addTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521155") + self.addTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894858") + self.addTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.addTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "36893488147419103244") + self.addTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "-14") + self.addTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934081") + self.addTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830851") + self.addTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853904") + self.addTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.addTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "36893488147419103250") + self.addTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "-20") + self.addTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.addTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551614") + self.addTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-18446744073709551616") + self.addTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "0") + self.addTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "-36893488147419103230") + self.addTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "2") + self.addTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "-36893488147419103232") + self.addTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211459") + self.addTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314689") + self.addTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832582") + self.addTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935812") + self.addTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "8") + self.addTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "-36893488147419103238") + self.addTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521155") + self.addTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624385") + self.addTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.addTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894858") + self.addTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "14") + self.addTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "-36893488147419103244") + self.addTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830851") + self.addTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934081") + self.addTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750674") + self.addTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853904") + self.addTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "20") + self.addTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "-36893488147419103250") + self.addTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.addTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551618") + self.addTest(lhs: "18446744073709551617", rhs: "-1", expecting: "18446744073709551616") + self.addTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "36893488147419103232") + self.addTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "2") + self.addTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "36893488147419103234") + self.addTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "0") + self.addTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314691") + self.addTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211457") + self.addTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935814") + self.addTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.addTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "36893488147419103240") + self.addTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "-6") + self.addTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624387") + self.addTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521153") + self.addTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894860") + self.addTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791626") + self.addTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "36893488147419103246") + self.addTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "-12") + self.addTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934083") + self.addTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830849") + self.addTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853906") + self.addTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750672") + self.addTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "36893488147419103252") + self.addTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "-18") + self.addTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.addTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551616") + self.addTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-18446744073709551618") + self.addTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "-2") + self.addTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "-36893488147419103232") + self.addTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "0") + self.addTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "-36893488147419103234") + self.addTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211457") + self.addTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314691") + self.addTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.addTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935814") + self.addTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "6") + self.addTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "-36893488147419103240") + self.addTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521153") + self.addTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624387") + self.addTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.addTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894860") + self.addTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "12") + self.addTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "-36893488147419103246") + self.addTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830849") + self.addTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934083") + self.addTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.addTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853906") + self.addTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "18") + self.addTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "-36893488147419103252") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763075") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763073") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "340282366920938463500268095579187314689") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "340282366920938463463374607431768211459") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "340282366920938463500268095579187314691") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "340282366920938463463374607431768211457") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "680564733841876926963642703010955526148") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764856636523970481806492479266759339147271") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879528836563748383621123") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "340282366920938463500268095579187314697") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "340282366920938463463374607431768211451") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "680564733841876927074323167453212835844") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-110680464442257309696") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766898330725496112587162046446907691106317") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "340282366920938463500268095579187314703") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "340282366920938463463374607431768211445") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "680564733841876927185003631895470145540") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-221360928884514619392") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768940024927021743367831613627056043065363") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440867970924045087539215") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "340282366920938463500268095579187314709") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "340282366920938463463374607431768211439") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763073") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763075") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "-340282366920938463463374607431768211459") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-340282366920938463500268095579187314689") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "-340282366920938463463374607431768211457") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-340282366920938463500268095579187314691") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "-680564733841876926963642703010955526148") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879528836563748383621123") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764856636523970481806492479266759339147271") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "-340282366920938463463374607431768211451") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-340282366920938463500268095579187314697") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-680564733841876927074323167453212835844") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660198403743896735580169") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766898330725496112587162046446907691106317") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "-340282366920938463463374607431768211445") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-340282366920938463500268095579187314703") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "221360928884514619392") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-680564733841876927185003631895470145540") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440867970924045087539215") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768940024927021743367831613627056043065363") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "-340282366920938463463374607431768211439") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-340282366920938463500268095579187314709") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "6277101735386680764516354157049543343029104659327570935812") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "6277101735386680764516354157049543342992211171180151832582") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "6277101735386680764516354157049543343029104659327570935814") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680764856636523970481806492479266759339147271") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680764176071790128604879528836563748383621123") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "12554203470773361529032708314099086686021315830507722768394") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "6277101735386680764516354157049543343029104659327570935820") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "6277101735386680764516354157049543342992211171180151832574") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680764856636523970481806603159731201596456967") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680764176071790128604879418156099306126311427") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "12554203470773361531074402515624717466690883010656074727440") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780669567180148351959046") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "6277101735386680764516354157049543343029104659327570935826") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "6277101735386680764516354157049543342992211171180151832568") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680764856636523970481806713840195643853766663") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680764176071790128604879307475634863869001731") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "12554203470773361533116096717150348247360450190804426686486") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-4083388403051261561339134360296703918092") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "6277101735386680764516354157049543343029104659327570935832") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "6277101735386680764516354157049543342992211171180151832562") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-6277101735386680764516354157049543343029104659327570935812") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-6277101735386680764516354157049543343029104659327570935814") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680764176071790128604879528836563748383621123") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680764856636523970481806492479266759339147271") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-12554203470773361529032708314099086686021315830507722768394") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "-6277101735386680764516354157049543342992211171180151832574") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-6277101735386680764516354157049543343029104659327570935820") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680764176071790128604879418156099306126311427") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680764856636523970481806603159731201596456967") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780669567180148351959046") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-12554203470773361531074402515624717466690883010656074727440") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "-6277101735386680764516354157049543342992211171180151832568") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-6277101735386680764516354157049543343029104659327570935826") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680764176071790128604879307475634863869001731") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680764856636523970481806713840195643853766663") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "4083388403051261561339134360296703918092") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-12554203470773361533116096717150348247360450190804426686486") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "-6277101735386680764516354157049543342992211171180151832562") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-6277101735386680764516354157049543343029104659327570935832") + self.addTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.addTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551624") + self.addTest(lhs: "18446744073709551623", rhs: "-1", expecting: "18446744073709551622") + self.addTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "36893488147419103238") + self.addTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "8") + self.addTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "36893488147419103240") + self.addTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "6") + self.addTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314697") + self.addTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211451") + self.addTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935820") + self.addTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832574") + self.addTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "36893488147419103246") + self.addTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "0") + self.addTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624393") + self.addTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521147") + self.addTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894866") + self.addTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791620") + self.addTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "36893488147419103252") + self.addTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "-6") + self.addTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934089") + self.addTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830843") + self.addTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853912") + self.addTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750666") + self.addTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "36893488147419103258") + self.addTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "-12") + self.addTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.addTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551622") + self.addTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-18446744073709551624") + self.addTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "-8") + self.addTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "-36893488147419103238") + self.addTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "-6") + self.addTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "-36893488147419103240") + self.addTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211451") + self.addTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314697") + self.addTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832574") + self.addTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935820") + self.addTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "0") + self.addTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "-36893488147419103246") + self.addTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521147") + self.addTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624393") + self.addTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791620") + self.addTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894866") + self.addTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "6") + self.addTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "-36893488147419103252") + self.addTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830843") + self.addTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934089") + self.addTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750666") + self.addTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853912") + self.addTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "12") + self.addTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "-36893488147419103258") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072771") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072769") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "340282366920938463610948560021444624385") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "340282366920938463574055071874025521155") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "340282366920938463610948560021444624387") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "340282366920938463574055071874025521153") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "680564733841876927074323167453212835844") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "110680464442257309696") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764856636523970481806603159731201596456967") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879418156099306126311427") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "340282366920938463610948560021444624393") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "340282366920938463574055071874025521147") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "680564733841876927185003631895470145540") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766898330725496112587272726911349948416013") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660087723279454478270473") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "340282366920938463610948560021444624399") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "340282366920938463574055071874025521141") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "680564733841876927295684096337727455236") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-110680464442257309696") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768940024927021743367942294091498300375059") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440757290459602830229519") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "340282366920938463610948560021444624405") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "340282366920938463574055071874025521135") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072769") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072771") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "-340282366920938463574055071874025521155") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-340282366920938463610948560021444624385") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "-340282366920938463574055071874025521153") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-340282366920938463610948560021444624387") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "-110680464442257309696") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-680564733841876927074323167453212835844") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879418156099306126311427") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764856636523970481806603159731201596456967") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "-340282366920938463574055071874025521147") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-340282366920938463610948560021444624393") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "-680564733841876927185003631895470145540") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660087723279454478270473") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766898330725496112587272726911349948416013") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "-340282366920938463574055071874025521141") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-340282366920938463610948560021444624399") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "110680464442257309696") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-680564733841876927295684096337727455236") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440757290459602830229519") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768940024927021743367942294091498300375059") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "-340282366920938463574055071874025521135") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-340282366920938463610948560021444624405") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "6277101735386680766558048358575174123698671839475922894858") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "6277101735386680766558048358575174123698671839475922894860") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680766898330725496112587162046446907691106317") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680766217765991654235660198403743896735580169") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "12554203470773361531074402515624717466690883010656074727440") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2041694201525630780669567180148351959046") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "6277101735386680766558048358575174123698671839475922894866") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "6277101735386680766558048358575174123661778351328503791620") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680766898330725496112587272726911349948416013") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680766217765991654235660087723279454478270473") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "12554203470773361533116096717150348247360450190804426686486") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "6277101735386680766558048358575174123698671839475922894872") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "6277101735386680766558048358575174123661778351328503791614") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680766898330725496112587383407375792205725709") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680766217765991654235659977042815012220960777") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "12554203470773361535157790918675979028030017370952778645532") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2041694201525630780669567180148351959046") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "6277101735386680766558048358575174123698671839475922894878") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "6277101735386680766558048358575174123661778351328503791608") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-6277101735386680766558048358575174123698671839475922894858") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "-6277101735386680766558048358575174123661778351328503791626") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-6277101735386680766558048358575174123698671839475922894860") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680766898330725496112587162046446907691106317") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2041694201525630780669567180148351959046") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-12554203470773361531074402515624717466690883010656074727440") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "-6277101735386680766558048358575174123661778351328503791620") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-6277101735386680766558048358575174123698671839475922894866") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680766217765991654235660087723279454478270473") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680766898330725496112587272726911349948416013") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-12554203470773361533116096717150348247360450190804426686486") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "-6277101735386680766558048358575174123661778351328503791614") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-6277101735386680766558048358575174123698671839475922894872") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680766217765991654235659977042815012220960777") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680766898330725496112587383407375792205725709") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2041694201525630780669567180148351959046") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-12554203470773361535157790918675979028030017370952778645532") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "-6277101735386680766558048358575174123661778351328503791608") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-6277101735386680766558048358575174123698671839475922894878") + self.addTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.addTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551630") + self.addTest(lhs: "18446744073709551629", rhs: "-1", expecting: "18446744073709551628") + self.addTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "36893488147419103244") + self.addTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "14") + self.addTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "36893488147419103246") + self.addTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "12") + self.addTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314703") + self.addTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211445") + self.addTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935826") + self.addTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832568") + self.addTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "36893488147419103252") + self.addTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "6") + self.addTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624399") + self.addTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521141") + self.addTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894872") + self.addTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791614") + self.addTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "36893488147419103258") + self.addTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "0") + self.addTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934095") + self.addTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830837") + self.addTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853918") + self.addTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.addTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "36893488147419103264") + self.addTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "-6") + self.addTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.addTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551628") + self.addTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-18446744073709551630") + self.addTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "-14") + self.addTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "-36893488147419103244") + self.addTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "-12") + self.addTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "-36893488147419103246") + self.addTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211445") + self.addTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314703") + self.addTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832568") + self.addTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935826") + self.addTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "-6") + self.addTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "-36893488147419103252") + self.addTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521141") + self.addTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624399") + self.addTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791614") + self.addTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894872") + self.addTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "0") + self.addTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "-36893488147419103258") + self.addTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830837") + self.addTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934095") + self.addTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750660") + self.addTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853918") + self.addTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "6") + self.addTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "-36893488147419103264") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382467") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382465") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "340282366920938463721629024463701934081") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "340282366920938463684735536316282830851") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "340282366920938463721629024463701934083") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "340282366920938463684735536316282830849") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "680564733841876927185003631895470145540") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "221360928884514619392") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764856636523970481806713840195643853766663") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879307475634863869001731") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "340282366920938463721629024463701934089") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "340282366920938463684735536316282830843") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "680564733841876927295684096337727455236") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766898330725496112587383407375792205725709") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235659977042815012220960777") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "340282366920938463721629024463701934095") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "340282366920938463684735536316282830837") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "680564733841876927406364560779984764932") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768940024927021743368052974555940557684755") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440646609995160572919823") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "340282366920938463721629024463701934101") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "340282366920938463684735536316282830831") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382465") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382467") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "-340282366920938463684735536316282830851") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-340282366920938463721629024463701934081") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "-340282366920938463684735536316282830849") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-340282366920938463721629024463701934083") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "-221360928884514619392") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-680564733841876927185003631895470145540") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879307475634863869001731") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764856636523970481806713840195643853766663") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "-340282366920938463684735536316282830843") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-340282366920938463721629024463701934089") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "-110680464442257309696") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-680564733841876927295684096337727455236") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235659977042815012220960777") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766898330725496112587383407375792205725709") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "-340282366920938463684735536316282830837") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-340282366920938463721629024463701934095") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "-680564733841876927406364560779984764932") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440646609995160572919823") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768940024927021743368052974555940557684755") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "-340282366920938463684735536316282830831") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-340282366920938463721629024463701934101") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "6277101735386680768599742560100804904368239019624274853904") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "6277101735386680768599742560100804904331345531476855750674") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "6277101735386680768599742560100804904368239019624274853906") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680768940024927021743367831613627056043065363") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680768259460193179866440867970924045087539215") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "12554203470773361533116096717150348247360450190804426686486") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "4083388403051261561339134360296703918092") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "6277101735386680768599742560100804904368239019624274853912") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "6277101735386680768599742560100804904331345531476855750666") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680768940024927021743367942294091498300375059") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680768259460193179866440757290459602830229519") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "12554203470773361535157790918675979028030017370952778645532") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780669567180148351959046") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "6277101735386680768599742560100804904368239019624274853918") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "6277101735386680768599742560100804904331345531476855750660") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680768940024927021743368052974555940557684755") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680768259460193179866440646609995160572919823") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "12554203470773361537199485120201609808699584551101130604578") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "6277101735386680768599742560100804904368239019624274853924") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "6277101735386680768599742560100804904331345531476855750654") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-6277101735386680768599742560100804904368239019624274853904") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "-6277101735386680768599742560100804904331345531476855750672") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-6277101735386680768599742560100804904368239019624274853906") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680768259460193179866440867970924045087539215") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680768940024927021743367831613627056043065363") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-4083388403051261561339134360296703918092") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-12554203470773361533116096717150348247360450190804426686486") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "-6277101735386680768599742560100804904331345531476855750666") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-6277101735386680768599742560100804904368239019624274853912") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680768259460193179866440757290459602830229519") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680768940024927021743367942294091498300375059") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780669567180148351959046") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-12554203470773361535157790918675979028030017370952778645532") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-6277101735386680768599742560100804904368239019624274853918") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680768259460193179866440646609995160572919823") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680768940024927021743368052974555940557684755") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-12554203470773361537199485120201609808699584551101130604578") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "-6277101735386680768599742560100804904331345531476855750654") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-6277101735386680768599742560100804904368239019624274853924") + self.addTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.addTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551636") + self.addTest(lhs: "18446744073709551635", rhs: "-1", expecting: "18446744073709551634") + self.addTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "36893488147419103250") + self.addTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "20") + self.addTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "36893488147419103252") + self.addTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "18") + self.addTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314709") + self.addTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211439") + self.addTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935832") + self.addTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832562") + self.addTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "36893488147419103258") + self.addTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "12") + self.addTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624405") + self.addTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521135") + self.addTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894878") + self.addTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791608") + self.addTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "36893488147419103264") + self.addTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "6") + self.addTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934101") + self.addTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830831") + self.addTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853924") + self.addTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750654") + self.addTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "36893488147419103270") + self.addTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "0") + self.addTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.addTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551634") + self.addTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-18446744073709551636") + self.addTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "-20") + self.addTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "-36893488147419103250") + self.addTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "-18") + self.addTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "-36893488147419103252") + self.addTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211439") + self.addTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314709") + self.addTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832562") + self.addTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935832") + self.addTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "-12") + self.addTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "-36893488147419103258") + self.addTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521135") + self.addTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624405") + self.addTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791608") + self.addTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894878") + self.addTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "-6") + self.addTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "-36893488147419103264") + self.addTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830831") + self.addTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934101") + self.addTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750654") + self.addTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853924") + self.addTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "0") + self.addTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "-36893488147419103270") + } + + // MARK: - Sub + + func test_sub_smi_smi() { + self.subTest(lhs: "0", rhs: "0", expecting: "0") + self.subTest(lhs: "0", rhs: "1", expecting: "-1") + self.subTest(lhs: "0", rhs: "-1", expecting: "1") + self.subTest(lhs: "0", rhs: "2147483647", expecting: "-2147483647") + self.subTest(lhs: "0", rhs: "-2147483648", expecting: "2147483648") + self.subTest(lhs: "0", rhs: "1932735283", expecting: "-1932735283") + self.subTest(lhs: "0", rhs: "-1932735284", expecting: "1932735284") + self.subTest(lhs: "0", rhs: "1717986919", expecting: "-1717986919") + self.subTest(lhs: "0", rhs: "-1717986920", expecting: "1717986920") + self.subTest(lhs: "0", rhs: "1503238555", expecting: "-1503238555") + self.subTest(lhs: "0", rhs: "-1503238556", expecting: "1503238556") + self.subTest(lhs: "0", rhs: "1288490191", expecting: "-1288490191") + self.subTest(lhs: "0", rhs: "-1288490192", expecting: "1288490192") + self.subTest(lhs: "0", rhs: "1073741827", expecting: "-1073741827") + self.subTest(lhs: "0", rhs: "-1073741828", expecting: "1073741828") + self.subTest(lhs: "0", rhs: "858993463", expecting: "-858993463") + self.subTest(lhs: "0", rhs: "-858993464", expecting: "858993464") + self.subTest(lhs: "0", rhs: "644245099", expecting: "-644245099") + self.subTest(lhs: "0", rhs: "-644245100", expecting: "644245100") + self.subTest(lhs: "0", rhs: "429496735", expecting: "-429496735") + self.subTest(lhs: "0", rhs: "-429496736", expecting: "429496736") + self.subTest(lhs: "0", rhs: "214748371", expecting: "-214748371") + self.subTest(lhs: "0", rhs: "-214748372", expecting: "214748372") + self.subTest(lhs: "1", rhs: "0", expecting: "1") + self.subTest(lhs: "1", rhs: "1", expecting: "0") + self.subTest(lhs: "1", rhs: "-1", expecting: "2") + self.subTest(lhs: "1", rhs: "2147483647", expecting: "-2147483646") + self.subTest(lhs: "1", rhs: "-2147483648", expecting: "2147483649") + self.subTest(lhs: "1", rhs: "1932735283", expecting: "-1932735282") + self.subTest(lhs: "1", rhs: "-1932735284", expecting: "1932735285") + self.subTest(lhs: "1", rhs: "1717986919", expecting: "-1717986918") + self.subTest(lhs: "1", rhs: "-1717986920", expecting: "1717986921") + self.subTest(lhs: "1", rhs: "1503238555", expecting: "-1503238554") + self.subTest(lhs: "1", rhs: "-1503238556", expecting: "1503238557") + self.subTest(lhs: "1", rhs: "1288490191", expecting: "-1288490190") + self.subTest(lhs: "1", rhs: "-1288490192", expecting: "1288490193") + self.subTest(lhs: "1", rhs: "1073741827", expecting: "-1073741826") + self.subTest(lhs: "1", rhs: "-1073741828", expecting: "1073741829") + self.subTest(lhs: "1", rhs: "858993463", expecting: "-858993462") + self.subTest(lhs: "1", rhs: "-858993464", expecting: "858993465") + self.subTest(lhs: "1", rhs: "644245099", expecting: "-644245098") + self.subTest(lhs: "1", rhs: "-644245100", expecting: "644245101") + self.subTest(lhs: "1", rhs: "429496735", expecting: "-429496734") + self.subTest(lhs: "1", rhs: "-429496736", expecting: "429496737") + self.subTest(lhs: "1", rhs: "214748371", expecting: "-214748370") + self.subTest(lhs: "1", rhs: "-214748372", expecting: "214748373") + self.subTest(lhs: "-1", rhs: "0", expecting: "-1") + self.subTest(lhs: "-1", rhs: "1", expecting: "-2") + self.subTest(lhs: "-1", rhs: "-1", expecting: "0") + self.subTest(lhs: "-1", rhs: "2147483647", expecting: "-2147483648") + self.subTest(lhs: "-1", rhs: "-2147483648", expecting: "2147483647") + self.subTest(lhs: "-1", rhs: "1932735283", expecting: "-1932735284") + self.subTest(lhs: "-1", rhs: "-1932735284", expecting: "1932735283") + self.subTest(lhs: "-1", rhs: "1717986919", expecting: "-1717986920") + self.subTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.subTest(lhs: "-1", rhs: "1503238555", expecting: "-1503238556") + self.subTest(lhs: "-1", rhs: "-1503238556", expecting: "1503238555") + self.subTest(lhs: "-1", rhs: "1288490191", expecting: "-1288490192") + self.subTest(lhs: "-1", rhs: "-1288490192", expecting: "1288490191") + self.subTest(lhs: "-1", rhs: "1073741827", expecting: "-1073741828") + self.subTest(lhs: "-1", rhs: "-1073741828", expecting: "1073741827") + self.subTest(lhs: "-1", rhs: "858993463", expecting: "-858993464") + self.subTest(lhs: "-1", rhs: "-858993464", expecting: "858993463") + self.subTest(lhs: "-1", rhs: "644245099", expecting: "-644245100") + self.subTest(lhs: "-1", rhs: "-644245100", expecting: "644245099") + self.subTest(lhs: "-1", rhs: "429496735", expecting: "-429496736") + self.subTest(lhs: "-1", rhs: "-429496736", expecting: "429496735") + self.subTest(lhs: "-1", rhs: "214748371", expecting: "-214748372") + self.subTest(lhs: "-1", rhs: "-214748372", expecting: "214748371") + self.subTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.subTest(lhs: "2147483647", rhs: "1", expecting: "2147483646") + self.subTest(lhs: "2147483647", rhs: "-1", expecting: "2147483648") + self.subTest(lhs: "2147483647", rhs: "2147483647", expecting: "0") + self.subTest(lhs: "2147483647", rhs: "-2147483648", expecting: "4294967295") + self.subTest(lhs: "2147483647", rhs: "1932735283", expecting: "214748364") + self.subTest(lhs: "2147483647", rhs: "-1932735284", expecting: "4080218931") + self.subTest(lhs: "2147483647", rhs: "1717986919", expecting: "429496728") + self.subTest(lhs: "2147483647", rhs: "-1717986920", expecting: "3865470567") + self.subTest(lhs: "2147483647", rhs: "1503238555", expecting: "644245092") + self.subTest(lhs: "2147483647", rhs: "-1503238556", expecting: "3650722203") + self.subTest(lhs: "2147483647", rhs: "1288490191", expecting: "858993456") + self.subTest(lhs: "2147483647", rhs: "-1288490192", expecting: "3435973839") + self.subTest(lhs: "2147483647", rhs: "1073741827", expecting: "1073741820") + self.subTest(lhs: "2147483647", rhs: "-1073741828", expecting: "3221225475") + self.subTest(lhs: "2147483647", rhs: "858993463", expecting: "1288490184") + self.subTest(lhs: "2147483647", rhs: "-858993464", expecting: "3006477111") + self.subTest(lhs: "2147483647", rhs: "644245099", expecting: "1503238548") + self.subTest(lhs: "2147483647", rhs: "-644245100", expecting: "2791728747") + self.subTest(lhs: "2147483647", rhs: "429496735", expecting: "1717986912") + self.subTest(lhs: "2147483647", rhs: "-429496736", expecting: "2576980383") + self.subTest(lhs: "2147483647", rhs: "214748371", expecting: "1932735276") + self.subTest(lhs: "2147483647", rhs: "-214748372", expecting: "2362232019") + self.subTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.subTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483649") + self.subTest(lhs: "-2147483648", rhs: "-1", expecting: "-2147483647") + self.subTest(lhs: "-2147483648", rhs: "2147483647", expecting: "-4294967295") + self.subTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "0") + self.subTest(lhs: "-2147483648", rhs: "1932735283", expecting: "-4080218931") + self.subTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "-214748364") + self.subTest(lhs: "-2147483648", rhs: "1717986919", expecting: "-3865470567") + self.subTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "-429496728") + self.subTest(lhs: "-2147483648", rhs: "1503238555", expecting: "-3650722203") + self.subTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "-644245092") + self.subTest(lhs: "-2147483648", rhs: "1288490191", expecting: "-3435973839") + self.subTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "-858993456") + self.subTest(lhs: "-2147483648", rhs: "1073741827", expecting: "-3221225475") + self.subTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "-1073741820") + self.subTest(lhs: "-2147483648", rhs: "858993463", expecting: "-3006477111") + self.subTest(lhs: "-2147483648", rhs: "-858993464", expecting: "-1288490184") + self.subTest(lhs: "-2147483648", rhs: "644245099", expecting: "-2791728747") + self.subTest(lhs: "-2147483648", rhs: "-644245100", expecting: "-1503238548") + self.subTest(lhs: "-2147483648", rhs: "429496735", expecting: "-2576980383") + self.subTest(lhs: "-2147483648", rhs: "-429496736", expecting: "-1717986912") + self.subTest(lhs: "-2147483648", rhs: "214748371", expecting: "-2362232019") + self.subTest(lhs: "-2147483648", rhs: "-214748372", expecting: "-1932735276") + self.subTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.subTest(lhs: "1932735283", rhs: "1", expecting: "1932735282") + self.subTest(lhs: "1932735283", rhs: "-1", expecting: "1932735284") + self.subTest(lhs: "1932735283", rhs: "2147483647", expecting: "-214748364") + self.subTest(lhs: "1932735283", rhs: "-2147483648", expecting: "4080218931") + self.subTest(lhs: "1932735283", rhs: "1932735283", expecting: "0") + self.subTest(lhs: "1932735283", rhs: "-1932735284", expecting: "3865470567") + self.subTest(lhs: "1932735283", rhs: "1717986919", expecting: "214748364") + self.subTest(lhs: "1932735283", rhs: "-1717986920", expecting: "3650722203") + self.subTest(lhs: "1932735283", rhs: "1503238555", expecting: "429496728") + self.subTest(lhs: "1932735283", rhs: "-1503238556", expecting: "3435973839") + self.subTest(lhs: "1932735283", rhs: "1288490191", expecting: "644245092") + self.subTest(lhs: "1932735283", rhs: "-1288490192", expecting: "3221225475") + self.subTest(lhs: "1932735283", rhs: "1073741827", expecting: "858993456") + self.subTest(lhs: "1932735283", rhs: "-1073741828", expecting: "3006477111") + self.subTest(lhs: "1932735283", rhs: "858993463", expecting: "1073741820") + self.subTest(lhs: "1932735283", rhs: "-858993464", expecting: "2791728747") + self.subTest(lhs: "1932735283", rhs: "644245099", expecting: "1288490184") + self.subTest(lhs: "1932735283", rhs: "-644245100", expecting: "2576980383") + self.subTest(lhs: "1932735283", rhs: "429496735", expecting: "1503238548") + self.subTest(lhs: "1932735283", rhs: "-429496736", expecting: "2362232019") + self.subTest(lhs: "1932735283", rhs: "214748371", expecting: "1717986912") + self.subTest(lhs: "1932735283", rhs: "-214748372", expecting: "2147483655") + self.subTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.subTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735285") + self.subTest(lhs: "-1932735284", rhs: "-1", expecting: "-1932735283") + self.subTest(lhs: "-1932735284", rhs: "2147483647", expecting: "-4080218931") + self.subTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "214748364") + self.subTest(lhs: "-1932735284", rhs: "1932735283", expecting: "-3865470567") + self.subTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "0") + self.subTest(lhs: "-1932735284", rhs: "1717986919", expecting: "-3650722203") + self.subTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "-214748364") + self.subTest(lhs: "-1932735284", rhs: "1503238555", expecting: "-3435973839") + self.subTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "-429496728") + self.subTest(lhs: "-1932735284", rhs: "1288490191", expecting: "-3221225475") + self.subTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "-644245092") + self.subTest(lhs: "-1932735284", rhs: "1073741827", expecting: "-3006477111") + self.subTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "-858993456") + self.subTest(lhs: "-1932735284", rhs: "858993463", expecting: "-2791728747") + self.subTest(lhs: "-1932735284", rhs: "-858993464", expecting: "-1073741820") + self.subTest(lhs: "-1932735284", rhs: "644245099", expecting: "-2576980383") + self.subTest(lhs: "-1932735284", rhs: "-644245100", expecting: "-1288490184") + self.subTest(lhs: "-1932735284", rhs: "429496735", expecting: "-2362232019") + self.subTest(lhs: "-1932735284", rhs: "-429496736", expecting: "-1503238548") + self.subTest(lhs: "-1932735284", rhs: "214748371", expecting: "-2147483655") + self.subTest(lhs: "-1932735284", rhs: "-214748372", expecting: "-1717986912") + self.subTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.subTest(lhs: "1717986919", rhs: "1", expecting: "1717986918") + self.subTest(lhs: "1717986919", rhs: "-1", expecting: "1717986920") + self.subTest(lhs: "1717986919", rhs: "2147483647", expecting: "-429496728") + self.subTest(lhs: "1717986919", rhs: "-2147483648", expecting: "3865470567") + self.subTest(lhs: "1717986919", rhs: "1932735283", expecting: "-214748364") + self.subTest(lhs: "1717986919", rhs: "-1932735284", expecting: "3650722203") + self.subTest(lhs: "1717986919", rhs: "1717986919", expecting: "0") + self.subTest(lhs: "1717986919", rhs: "-1717986920", expecting: "3435973839") + self.subTest(lhs: "1717986919", rhs: "1503238555", expecting: "214748364") + self.subTest(lhs: "1717986919", rhs: "-1503238556", expecting: "3221225475") + self.subTest(lhs: "1717986919", rhs: "1288490191", expecting: "429496728") + self.subTest(lhs: "1717986919", rhs: "-1288490192", expecting: "3006477111") + self.subTest(lhs: "1717986919", rhs: "1073741827", expecting: "644245092") + self.subTest(lhs: "1717986919", rhs: "-1073741828", expecting: "2791728747") + self.subTest(lhs: "1717986919", rhs: "858993463", expecting: "858993456") + self.subTest(lhs: "1717986919", rhs: "-858993464", expecting: "2576980383") + self.subTest(lhs: "1717986919", rhs: "644245099", expecting: "1073741820") + self.subTest(lhs: "1717986919", rhs: "-644245100", expecting: "2362232019") + self.subTest(lhs: "1717986919", rhs: "429496735", expecting: "1288490184") + self.subTest(lhs: "1717986919", rhs: "-429496736", expecting: "2147483655") + self.subTest(lhs: "1717986919", rhs: "214748371", expecting: "1503238548") + self.subTest(lhs: "1717986919", rhs: "-214748372", expecting: "1932735291") + self.subTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.subTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986921") + self.subTest(lhs: "-1717986920", rhs: "-1", expecting: "-1717986919") + self.subTest(lhs: "-1717986920", rhs: "2147483647", expecting: "-3865470567") + self.subTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "429496728") + self.subTest(lhs: "-1717986920", rhs: "1932735283", expecting: "-3650722203") + self.subTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "214748364") + self.subTest(lhs: "-1717986920", rhs: "1717986919", expecting: "-3435973839") + self.subTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "0") + self.subTest(lhs: "-1717986920", rhs: "1503238555", expecting: "-3221225475") + self.subTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "-214748364") + self.subTest(lhs: "-1717986920", rhs: "1288490191", expecting: "-3006477111") + self.subTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "-429496728") + self.subTest(lhs: "-1717986920", rhs: "1073741827", expecting: "-2791728747") + self.subTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "-644245092") + self.subTest(lhs: "-1717986920", rhs: "858993463", expecting: "-2576980383") + self.subTest(lhs: "-1717986920", rhs: "-858993464", expecting: "-858993456") + self.subTest(lhs: "-1717986920", rhs: "644245099", expecting: "-2362232019") + self.subTest(lhs: "-1717986920", rhs: "-644245100", expecting: "-1073741820") + self.subTest(lhs: "-1717986920", rhs: "429496735", expecting: "-2147483655") + self.subTest(lhs: "-1717986920", rhs: "-429496736", expecting: "-1288490184") + self.subTest(lhs: "-1717986920", rhs: "214748371", expecting: "-1932735291") + self.subTest(lhs: "-1717986920", rhs: "-214748372", expecting: "-1503238548") + self.subTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.subTest(lhs: "1503238555", rhs: "1", expecting: "1503238554") + self.subTest(lhs: "1503238555", rhs: "-1", expecting: "1503238556") + self.subTest(lhs: "1503238555", rhs: "2147483647", expecting: "-644245092") + self.subTest(lhs: "1503238555", rhs: "-2147483648", expecting: "3650722203") + self.subTest(lhs: "1503238555", rhs: "1932735283", expecting: "-429496728") + self.subTest(lhs: "1503238555", rhs: "-1932735284", expecting: "3435973839") + self.subTest(lhs: "1503238555", rhs: "1717986919", expecting: "-214748364") + self.subTest(lhs: "1503238555", rhs: "-1717986920", expecting: "3221225475") + self.subTest(lhs: "1503238555", rhs: "1503238555", expecting: "0") + self.subTest(lhs: "1503238555", rhs: "-1503238556", expecting: "3006477111") + self.subTest(lhs: "1503238555", rhs: "1288490191", expecting: "214748364") + self.subTest(lhs: "1503238555", rhs: "-1288490192", expecting: "2791728747") + self.subTest(lhs: "1503238555", rhs: "1073741827", expecting: "429496728") + self.subTest(lhs: "1503238555", rhs: "-1073741828", expecting: "2576980383") + self.subTest(lhs: "1503238555", rhs: "858993463", expecting: "644245092") + self.subTest(lhs: "1503238555", rhs: "-858993464", expecting: "2362232019") + self.subTest(lhs: "1503238555", rhs: "644245099", expecting: "858993456") + self.subTest(lhs: "1503238555", rhs: "-644245100", expecting: "2147483655") + self.subTest(lhs: "1503238555", rhs: "429496735", expecting: "1073741820") + self.subTest(lhs: "1503238555", rhs: "-429496736", expecting: "1932735291") + self.subTest(lhs: "1503238555", rhs: "214748371", expecting: "1288490184") + self.subTest(lhs: "1503238555", rhs: "-214748372", expecting: "1717986927") + self.subTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.subTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238557") + self.subTest(lhs: "-1503238556", rhs: "-1", expecting: "-1503238555") + self.subTest(lhs: "-1503238556", rhs: "2147483647", expecting: "-3650722203") + self.subTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "644245092") + self.subTest(lhs: "-1503238556", rhs: "1932735283", expecting: "-3435973839") + self.subTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "429496728") + self.subTest(lhs: "-1503238556", rhs: "1717986919", expecting: "-3221225475") + self.subTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "214748364") + self.subTest(lhs: "-1503238556", rhs: "1503238555", expecting: "-3006477111") + self.subTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "0") + self.subTest(lhs: "-1503238556", rhs: "1288490191", expecting: "-2791728747") + self.subTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "-214748364") + self.subTest(lhs: "-1503238556", rhs: "1073741827", expecting: "-2576980383") + self.subTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "-429496728") + self.subTest(lhs: "-1503238556", rhs: "858993463", expecting: "-2362232019") + self.subTest(lhs: "-1503238556", rhs: "-858993464", expecting: "-644245092") + self.subTest(lhs: "-1503238556", rhs: "644245099", expecting: "-2147483655") + self.subTest(lhs: "-1503238556", rhs: "-644245100", expecting: "-858993456") + self.subTest(lhs: "-1503238556", rhs: "429496735", expecting: "-1932735291") + self.subTest(lhs: "-1503238556", rhs: "-429496736", expecting: "-1073741820") + self.subTest(lhs: "-1503238556", rhs: "214748371", expecting: "-1717986927") + self.subTest(lhs: "-1503238556", rhs: "-214748372", expecting: "-1288490184") + self.subTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.subTest(lhs: "1288490191", rhs: "1", expecting: "1288490190") + self.subTest(lhs: "1288490191", rhs: "-1", expecting: "1288490192") + self.subTest(lhs: "1288490191", rhs: "2147483647", expecting: "-858993456") + self.subTest(lhs: "1288490191", rhs: "-2147483648", expecting: "3435973839") + self.subTest(lhs: "1288490191", rhs: "1932735283", expecting: "-644245092") + self.subTest(lhs: "1288490191", rhs: "-1932735284", expecting: "3221225475") + self.subTest(lhs: "1288490191", rhs: "1717986919", expecting: "-429496728") + self.subTest(lhs: "1288490191", rhs: "-1717986920", expecting: "3006477111") + self.subTest(lhs: "1288490191", rhs: "1503238555", expecting: "-214748364") + self.subTest(lhs: "1288490191", rhs: "-1503238556", expecting: "2791728747") + self.subTest(lhs: "1288490191", rhs: "1288490191", expecting: "0") + self.subTest(lhs: "1288490191", rhs: "-1288490192", expecting: "2576980383") + self.subTest(lhs: "1288490191", rhs: "1073741827", expecting: "214748364") + self.subTest(lhs: "1288490191", rhs: "-1073741828", expecting: "2362232019") + self.subTest(lhs: "1288490191", rhs: "858993463", expecting: "429496728") + self.subTest(lhs: "1288490191", rhs: "-858993464", expecting: "2147483655") + self.subTest(lhs: "1288490191", rhs: "644245099", expecting: "644245092") + self.subTest(lhs: "1288490191", rhs: "-644245100", expecting: "1932735291") + self.subTest(lhs: "1288490191", rhs: "429496735", expecting: "858993456") + self.subTest(lhs: "1288490191", rhs: "-429496736", expecting: "1717986927") + self.subTest(lhs: "1288490191", rhs: "214748371", expecting: "1073741820") + self.subTest(lhs: "1288490191", rhs: "-214748372", expecting: "1503238563") + self.subTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.subTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490193") + self.subTest(lhs: "-1288490192", rhs: "-1", expecting: "-1288490191") + self.subTest(lhs: "-1288490192", rhs: "2147483647", expecting: "-3435973839") + self.subTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "858993456") + self.subTest(lhs: "-1288490192", rhs: "1932735283", expecting: "-3221225475") + self.subTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "644245092") + self.subTest(lhs: "-1288490192", rhs: "1717986919", expecting: "-3006477111") + self.subTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "429496728") + self.subTest(lhs: "-1288490192", rhs: "1503238555", expecting: "-2791728747") + self.subTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "214748364") + self.subTest(lhs: "-1288490192", rhs: "1288490191", expecting: "-2576980383") + self.subTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "0") + self.subTest(lhs: "-1288490192", rhs: "1073741827", expecting: "-2362232019") + self.subTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "-214748364") + self.subTest(lhs: "-1288490192", rhs: "858993463", expecting: "-2147483655") + self.subTest(lhs: "-1288490192", rhs: "-858993464", expecting: "-429496728") + self.subTest(lhs: "-1288490192", rhs: "644245099", expecting: "-1932735291") + self.subTest(lhs: "-1288490192", rhs: "-644245100", expecting: "-644245092") + self.subTest(lhs: "-1288490192", rhs: "429496735", expecting: "-1717986927") + self.subTest(lhs: "-1288490192", rhs: "-429496736", expecting: "-858993456") + self.subTest(lhs: "-1288490192", rhs: "214748371", expecting: "-1503238563") + self.subTest(lhs: "-1288490192", rhs: "-214748372", expecting: "-1073741820") + self.subTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.subTest(lhs: "1073741827", rhs: "1", expecting: "1073741826") + self.subTest(lhs: "1073741827", rhs: "-1", expecting: "1073741828") + self.subTest(lhs: "1073741827", rhs: "2147483647", expecting: "-1073741820") + self.subTest(lhs: "1073741827", rhs: "-2147483648", expecting: "3221225475") + self.subTest(lhs: "1073741827", rhs: "1932735283", expecting: "-858993456") + self.subTest(lhs: "1073741827", rhs: "-1932735284", expecting: "3006477111") + self.subTest(lhs: "1073741827", rhs: "1717986919", expecting: "-644245092") + self.subTest(lhs: "1073741827", rhs: "-1717986920", expecting: "2791728747") + self.subTest(lhs: "1073741827", rhs: "1503238555", expecting: "-429496728") + self.subTest(lhs: "1073741827", rhs: "-1503238556", expecting: "2576980383") + self.subTest(lhs: "1073741827", rhs: "1288490191", expecting: "-214748364") + self.subTest(lhs: "1073741827", rhs: "-1288490192", expecting: "2362232019") + self.subTest(lhs: "1073741827", rhs: "1073741827", expecting: "0") + self.subTest(lhs: "1073741827", rhs: "-1073741828", expecting: "2147483655") + self.subTest(lhs: "1073741827", rhs: "858993463", expecting: "214748364") + self.subTest(lhs: "1073741827", rhs: "-858993464", expecting: "1932735291") + self.subTest(lhs: "1073741827", rhs: "644245099", expecting: "429496728") + self.subTest(lhs: "1073741827", rhs: "-644245100", expecting: "1717986927") + self.subTest(lhs: "1073741827", rhs: "429496735", expecting: "644245092") + self.subTest(lhs: "1073741827", rhs: "-429496736", expecting: "1503238563") + self.subTest(lhs: "1073741827", rhs: "214748371", expecting: "858993456") + self.subTest(lhs: "1073741827", rhs: "-214748372", expecting: "1288490199") + self.subTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.subTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741829") + self.subTest(lhs: "-1073741828", rhs: "-1", expecting: "-1073741827") + self.subTest(lhs: "-1073741828", rhs: "2147483647", expecting: "-3221225475") + self.subTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "1073741820") + self.subTest(lhs: "-1073741828", rhs: "1932735283", expecting: "-3006477111") + self.subTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "858993456") + self.subTest(lhs: "-1073741828", rhs: "1717986919", expecting: "-2791728747") + self.subTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "644245092") + self.subTest(lhs: "-1073741828", rhs: "1503238555", expecting: "-2576980383") + self.subTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "429496728") + self.subTest(lhs: "-1073741828", rhs: "1288490191", expecting: "-2362232019") + self.subTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "214748364") + self.subTest(lhs: "-1073741828", rhs: "1073741827", expecting: "-2147483655") + self.subTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "0") + self.subTest(lhs: "-1073741828", rhs: "858993463", expecting: "-1932735291") + self.subTest(lhs: "-1073741828", rhs: "-858993464", expecting: "-214748364") + self.subTest(lhs: "-1073741828", rhs: "644245099", expecting: "-1717986927") + self.subTest(lhs: "-1073741828", rhs: "-644245100", expecting: "-429496728") + self.subTest(lhs: "-1073741828", rhs: "429496735", expecting: "-1503238563") + self.subTest(lhs: "-1073741828", rhs: "-429496736", expecting: "-644245092") + self.subTest(lhs: "-1073741828", rhs: "214748371", expecting: "-1288490199") + self.subTest(lhs: "-1073741828", rhs: "-214748372", expecting: "-858993456") + self.subTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.subTest(lhs: "858993463", rhs: "1", expecting: "858993462") + self.subTest(lhs: "858993463", rhs: "-1", expecting: "858993464") + self.subTest(lhs: "858993463", rhs: "2147483647", expecting: "-1288490184") + self.subTest(lhs: "858993463", rhs: "-2147483648", expecting: "3006477111") + self.subTest(lhs: "858993463", rhs: "1932735283", expecting: "-1073741820") + self.subTest(lhs: "858993463", rhs: "-1932735284", expecting: "2791728747") + self.subTest(lhs: "858993463", rhs: "1717986919", expecting: "-858993456") + self.subTest(lhs: "858993463", rhs: "-1717986920", expecting: "2576980383") + self.subTest(lhs: "858993463", rhs: "1503238555", expecting: "-644245092") + self.subTest(lhs: "858993463", rhs: "-1503238556", expecting: "2362232019") + self.subTest(lhs: "858993463", rhs: "1288490191", expecting: "-429496728") + self.subTest(lhs: "858993463", rhs: "-1288490192", expecting: "2147483655") + self.subTest(lhs: "858993463", rhs: "1073741827", expecting: "-214748364") + self.subTest(lhs: "858993463", rhs: "-1073741828", expecting: "1932735291") + self.subTest(lhs: "858993463", rhs: "858993463", expecting: "0") + self.subTest(lhs: "858993463", rhs: "-858993464", expecting: "1717986927") + self.subTest(lhs: "858993463", rhs: "644245099", expecting: "214748364") + self.subTest(lhs: "858993463", rhs: "-644245100", expecting: "1503238563") + self.subTest(lhs: "858993463", rhs: "429496735", expecting: "429496728") + self.subTest(lhs: "858993463", rhs: "-429496736", expecting: "1288490199") + self.subTest(lhs: "858993463", rhs: "214748371", expecting: "644245092") + self.subTest(lhs: "858993463", rhs: "-214748372", expecting: "1073741835") + self.subTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.subTest(lhs: "-858993464", rhs: "1", expecting: "-858993465") + self.subTest(lhs: "-858993464", rhs: "-1", expecting: "-858993463") + self.subTest(lhs: "-858993464", rhs: "2147483647", expecting: "-3006477111") + self.subTest(lhs: "-858993464", rhs: "-2147483648", expecting: "1288490184") + self.subTest(lhs: "-858993464", rhs: "1932735283", expecting: "-2791728747") + self.subTest(lhs: "-858993464", rhs: "-1932735284", expecting: "1073741820") + self.subTest(lhs: "-858993464", rhs: "1717986919", expecting: "-2576980383") + self.subTest(lhs: "-858993464", rhs: "-1717986920", expecting: "858993456") + self.subTest(lhs: "-858993464", rhs: "1503238555", expecting: "-2362232019") + self.subTest(lhs: "-858993464", rhs: "-1503238556", expecting: "644245092") + self.subTest(lhs: "-858993464", rhs: "1288490191", expecting: "-2147483655") + self.subTest(lhs: "-858993464", rhs: "-1288490192", expecting: "429496728") + self.subTest(lhs: "-858993464", rhs: "1073741827", expecting: "-1932735291") + self.subTest(lhs: "-858993464", rhs: "-1073741828", expecting: "214748364") + self.subTest(lhs: "-858993464", rhs: "858993463", expecting: "-1717986927") + self.subTest(lhs: "-858993464", rhs: "-858993464", expecting: "0") + self.subTest(lhs: "-858993464", rhs: "644245099", expecting: "-1503238563") + self.subTest(lhs: "-858993464", rhs: "-644245100", expecting: "-214748364") + self.subTest(lhs: "-858993464", rhs: "429496735", expecting: "-1288490199") + self.subTest(lhs: "-858993464", rhs: "-429496736", expecting: "-429496728") + self.subTest(lhs: "-858993464", rhs: "214748371", expecting: "-1073741835") + self.subTest(lhs: "-858993464", rhs: "-214748372", expecting: "-644245092") + self.subTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.subTest(lhs: "644245099", rhs: "1", expecting: "644245098") + self.subTest(lhs: "644245099", rhs: "-1", expecting: "644245100") + self.subTest(lhs: "644245099", rhs: "2147483647", expecting: "-1503238548") + self.subTest(lhs: "644245099", rhs: "-2147483648", expecting: "2791728747") + self.subTest(lhs: "644245099", rhs: "1932735283", expecting: "-1288490184") + self.subTest(lhs: "644245099", rhs: "-1932735284", expecting: "2576980383") + self.subTest(lhs: "644245099", rhs: "1717986919", expecting: "-1073741820") + self.subTest(lhs: "644245099", rhs: "-1717986920", expecting: "2362232019") + self.subTest(lhs: "644245099", rhs: "1503238555", expecting: "-858993456") + self.subTest(lhs: "644245099", rhs: "-1503238556", expecting: "2147483655") + self.subTest(lhs: "644245099", rhs: "1288490191", expecting: "-644245092") + self.subTest(lhs: "644245099", rhs: "-1288490192", expecting: "1932735291") + self.subTest(lhs: "644245099", rhs: "1073741827", expecting: "-429496728") + self.subTest(lhs: "644245099", rhs: "-1073741828", expecting: "1717986927") + self.subTest(lhs: "644245099", rhs: "858993463", expecting: "-214748364") + self.subTest(lhs: "644245099", rhs: "-858993464", expecting: "1503238563") + self.subTest(lhs: "644245099", rhs: "644245099", expecting: "0") + self.subTest(lhs: "644245099", rhs: "-644245100", expecting: "1288490199") + self.subTest(lhs: "644245099", rhs: "429496735", expecting: "214748364") + self.subTest(lhs: "644245099", rhs: "-429496736", expecting: "1073741835") + self.subTest(lhs: "644245099", rhs: "214748371", expecting: "429496728") + self.subTest(lhs: "644245099", rhs: "-214748372", expecting: "858993471") + self.subTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.subTest(lhs: "-644245100", rhs: "1", expecting: "-644245101") + self.subTest(lhs: "-644245100", rhs: "-1", expecting: "-644245099") + self.subTest(lhs: "-644245100", rhs: "2147483647", expecting: "-2791728747") + self.subTest(lhs: "-644245100", rhs: "-2147483648", expecting: "1503238548") + self.subTest(lhs: "-644245100", rhs: "1932735283", expecting: "-2576980383") + self.subTest(lhs: "-644245100", rhs: "-1932735284", expecting: "1288490184") + self.subTest(lhs: "-644245100", rhs: "1717986919", expecting: "-2362232019") + self.subTest(lhs: "-644245100", rhs: "-1717986920", expecting: "1073741820") + self.subTest(lhs: "-644245100", rhs: "1503238555", expecting: "-2147483655") + self.subTest(lhs: "-644245100", rhs: "-1503238556", expecting: "858993456") + self.subTest(lhs: "-644245100", rhs: "1288490191", expecting: "-1932735291") + self.subTest(lhs: "-644245100", rhs: "-1288490192", expecting: "644245092") + self.subTest(lhs: "-644245100", rhs: "1073741827", expecting: "-1717986927") + self.subTest(lhs: "-644245100", rhs: "-1073741828", expecting: "429496728") + self.subTest(lhs: "-644245100", rhs: "858993463", expecting: "-1503238563") + self.subTest(lhs: "-644245100", rhs: "-858993464", expecting: "214748364") + self.subTest(lhs: "-644245100", rhs: "644245099", expecting: "-1288490199") + self.subTest(lhs: "-644245100", rhs: "-644245100", expecting: "0") + self.subTest(lhs: "-644245100", rhs: "429496735", expecting: "-1073741835") + self.subTest(lhs: "-644245100", rhs: "-429496736", expecting: "-214748364") + self.subTest(lhs: "-644245100", rhs: "214748371", expecting: "-858993471") + self.subTest(lhs: "-644245100", rhs: "-214748372", expecting: "-429496728") + self.subTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.subTest(lhs: "429496735", rhs: "1", expecting: "429496734") + self.subTest(lhs: "429496735", rhs: "-1", expecting: "429496736") + self.subTest(lhs: "429496735", rhs: "2147483647", expecting: "-1717986912") + self.subTest(lhs: "429496735", rhs: "-2147483648", expecting: "2576980383") + self.subTest(lhs: "429496735", rhs: "1932735283", expecting: "-1503238548") + self.subTest(lhs: "429496735", rhs: "-1932735284", expecting: "2362232019") + self.subTest(lhs: "429496735", rhs: "1717986919", expecting: "-1288490184") + self.subTest(lhs: "429496735", rhs: "-1717986920", expecting: "2147483655") + self.subTest(lhs: "429496735", rhs: "1503238555", expecting: "-1073741820") + self.subTest(lhs: "429496735", rhs: "-1503238556", expecting: "1932735291") + self.subTest(lhs: "429496735", rhs: "1288490191", expecting: "-858993456") + self.subTest(lhs: "429496735", rhs: "-1288490192", expecting: "1717986927") + self.subTest(lhs: "429496735", rhs: "1073741827", expecting: "-644245092") + self.subTest(lhs: "429496735", rhs: "-1073741828", expecting: "1503238563") + self.subTest(lhs: "429496735", rhs: "858993463", expecting: "-429496728") + self.subTest(lhs: "429496735", rhs: "-858993464", expecting: "1288490199") + self.subTest(lhs: "429496735", rhs: "644245099", expecting: "-214748364") + self.subTest(lhs: "429496735", rhs: "-644245100", expecting: "1073741835") + self.subTest(lhs: "429496735", rhs: "429496735", expecting: "0") + self.subTest(lhs: "429496735", rhs: "-429496736", expecting: "858993471") + self.subTest(lhs: "429496735", rhs: "214748371", expecting: "214748364") + self.subTest(lhs: "429496735", rhs: "-214748372", expecting: "644245107") + self.subTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.subTest(lhs: "-429496736", rhs: "1", expecting: "-429496737") + self.subTest(lhs: "-429496736", rhs: "-1", expecting: "-429496735") + self.subTest(lhs: "-429496736", rhs: "2147483647", expecting: "-2576980383") + self.subTest(lhs: "-429496736", rhs: "-2147483648", expecting: "1717986912") + self.subTest(lhs: "-429496736", rhs: "1932735283", expecting: "-2362232019") + self.subTest(lhs: "-429496736", rhs: "-1932735284", expecting: "1503238548") + self.subTest(lhs: "-429496736", rhs: "1717986919", expecting: "-2147483655") + self.subTest(lhs: "-429496736", rhs: "-1717986920", expecting: "1288490184") + self.subTest(lhs: "-429496736", rhs: "1503238555", expecting: "-1932735291") + self.subTest(lhs: "-429496736", rhs: "-1503238556", expecting: "1073741820") + self.subTest(lhs: "-429496736", rhs: "1288490191", expecting: "-1717986927") + self.subTest(lhs: "-429496736", rhs: "-1288490192", expecting: "858993456") + self.subTest(lhs: "-429496736", rhs: "1073741827", expecting: "-1503238563") + self.subTest(lhs: "-429496736", rhs: "-1073741828", expecting: "644245092") + self.subTest(lhs: "-429496736", rhs: "858993463", expecting: "-1288490199") + self.subTest(lhs: "-429496736", rhs: "-858993464", expecting: "429496728") + self.subTest(lhs: "-429496736", rhs: "644245099", expecting: "-1073741835") + self.subTest(lhs: "-429496736", rhs: "-644245100", expecting: "214748364") + self.subTest(lhs: "-429496736", rhs: "429496735", expecting: "-858993471") + self.subTest(lhs: "-429496736", rhs: "-429496736", expecting: "0") + self.subTest(lhs: "-429496736", rhs: "214748371", expecting: "-644245107") + self.subTest(lhs: "-429496736", rhs: "-214748372", expecting: "-214748364") + self.subTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.subTest(lhs: "214748371", rhs: "1", expecting: "214748370") + self.subTest(lhs: "214748371", rhs: "-1", expecting: "214748372") + self.subTest(lhs: "214748371", rhs: "2147483647", expecting: "-1932735276") + self.subTest(lhs: "214748371", rhs: "-2147483648", expecting: "2362232019") + self.subTest(lhs: "214748371", rhs: "1932735283", expecting: "-1717986912") + self.subTest(lhs: "214748371", rhs: "-1932735284", expecting: "2147483655") + self.subTest(lhs: "214748371", rhs: "1717986919", expecting: "-1503238548") + self.subTest(lhs: "214748371", rhs: "-1717986920", expecting: "1932735291") + self.subTest(lhs: "214748371", rhs: "1503238555", expecting: "-1288490184") + self.subTest(lhs: "214748371", rhs: "-1503238556", expecting: "1717986927") + self.subTest(lhs: "214748371", rhs: "1288490191", expecting: "-1073741820") + self.subTest(lhs: "214748371", rhs: "-1288490192", expecting: "1503238563") + self.subTest(lhs: "214748371", rhs: "1073741827", expecting: "-858993456") + self.subTest(lhs: "214748371", rhs: "-1073741828", expecting: "1288490199") + self.subTest(lhs: "214748371", rhs: "858993463", expecting: "-644245092") + self.subTest(lhs: "214748371", rhs: "-858993464", expecting: "1073741835") + self.subTest(lhs: "214748371", rhs: "644245099", expecting: "-429496728") + self.subTest(lhs: "214748371", rhs: "-644245100", expecting: "858993471") + self.subTest(lhs: "214748371", rhs: "429496735", expecting: "-214748364") + self.subTest(lhs: "214748371", rhs: "-429496736", expecting: "644245107") + self.subTest(lhs: "214748371", rhs: "214748371", expecting: "0") + self.subTest(lhs: "214748371", rhs: "-214748372", expecting: "429496743") + self.subTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.subTest(lhs: "-214748372", rhs: "1", expecting: "-214748373") + self.subTest(lhs: "-214748372", rhs: "-1", expecting: "-214748371") + self.subTest(lhs: "-214748372", rhs: "2147483647", expecting: "-2362232019") + self.subTest(lhs: "-214748372", rhs: "-2147483648", expecting: "1932735276") + self.subTest(lhs: "-214748372", rhs: "1932735283", expecting: "-2147483655") + self.subTest(lhs: "-214748372", rhs: "-1932735284", expecting: "1717986912") + self.subTest(lhs: "-214748372", rhs: "1717986919", expecting: "-1932735291") + self.subTest(lhs: "-214748372", rhs: "-1717986920", expecting: "1503238548") + self.subTest(lhs: "-214748372", rhs: "1503238555", expecting: "-1717986927") + self.subTest(lhs: "-214748372", rhs: "-1503238556", expecting: "1288490184") + self.subTest(lhs: "-214748372", rhs: "1288490191", expecting: "-1503238563") + self.subTest(lhs: "-214748372", rhs: "-1288490192", expecting: "1073741820") + self.subTest(lhs: "-214748372", rhs: "1073741827", expecting: "-1288490199") + self.subTest(lhs: "-214748372", rhs: "-1073741828", expecting: "858993456") + self.subTest(lhs: "-214748372", rhs: "858993463", expecting: "-1073741835") + self.subTest(lhs: "-214748372", rhs: "-858993464", expecting: "644245092") + self.subTest(lhs: "-214748372", rhs: "644245099", expecting: "-858993471") + self.subTest(lhs: "-214748372", rhs: "-644245100", expecting: "429496728") + self.subTest(lhs: "-214748372", rhs: "429496735", expecting: "-644245107") + self.subTest(lhs: "-214748372", rhs: "-429496736", expecting: "214748364") + self.subTest(lhs: "-214748372", rhs: "214748371", expecting: "-429496743") + self.subTest(lhs: "-214748372", rhs: "-214748372", expecting: "0") + } + + func test_sub_smi_heap() { + self.subTest(lhs: "0", rhs: "0", expecting: "0") + self.subTest(lhs: "0", rhs: "1", expecting: "-1") + self.subTest(lhs: "0", rhs: "-1", expecting: "1") + self.subTest(lhs: "0", rhs: "18446744073709551615", expecting: "-18446744073709551615") + self.subTest(lhs: "0", rhs: "-18446744073709551615", expecting: "18446744073709551615") + self.subTest(lhs: "0", rhs: "18446744073709551617", expecting: "-18446744073709551617") + self.subTest(lhs: "0", rhs: "-18446744073709551617", expecting: "18446744073709551617") + self.subTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.subTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.subTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "0", rhs: "18446744073709551623", expecting: "-18446744073709551623") + self.subTest(lhs: "0", rhs: "-18446744073709551623", expecting: "18446744073709551623") + self.subTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.subTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.subTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "0", rhs: "18446744073709551629", expecting: "-18446744073709551629") + self.subTest(lhs: "0", rhs: "-18446744073709551629", expecting: "18446744073709551629") + self.subTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.subTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.subTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "0", rhs: "18446744073709551635", expecting: "-18446744073709551635") + self.subTest(lhs: "0", rhs: "-18446744073709551635", expecting: "18446744073709551635") + self.subTest(lhs: "1", rhs: "0", expecting: "1") + self.subTest(lhs: "1", rhs: "1", expecting: "0") + self.subTest(lhs: "1", rhs: "-1", expecting: "2") + self.subTest(lhs: "1", rhs: "18446744073709551615", expecting: "-18446744073709551614") + self.subTest(lhs: "1", rhs: "-18446744073709551615", expecting: "18446744073709551616") + self.subTest(lhs: "1", rhs: "18446744073709551617", expecting: "-18446744073709551616") + self.subTest(lhs: "1", rhs: "-18446744073709551617", expecting: "18446744073709551618") + self.subTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.subTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.subTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "1", rhs: "18446744073709551623", expecting: "-18446744073709551622") + self.subTest(lhs: "1", rhs: "-18446744073709551623", expecting: "18446744073709551624") + self.subTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.subTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.subTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "1", rhs: "18446744073709551629", expecting: "-18446744073709551628") + self.subTest(lhs: "1", rhs: "-18446744073709551629", expecting: "18446744073709551630") + self.subTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.subTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.subTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "1", rhs: "18446744073709551635", expecting: "-18446744073709551634") + self.subTest(lhs: "1", rhs: "-18446744073709551635", expecting: "18446744073709551636") + self.subTest(lhs: "-1", rhs: "0", expecting: "-1") + self.subTest(lhs: "-1", rhs: "1", expecting: "-2") + self.subTest(lhs: "-1", rhs: "-1", expecting: "0") + self.subTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-18446744073709551616") + self.subTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "18446744073709551614") + self.subTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-18446744073709551618") + self.subTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "18446744073709551616") + self.subTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763075") + self.subTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763073") + self.subTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-18446744073709551624") + self.subTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "18446744073709551622") + self.subTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072771") + self.subTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072769") + self.subTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-18446744073709551630") + self.subTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "18446744073709551628") + self.subTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382467") + self.subTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382465") + self.subTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-18446744073709551636") + self.subTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "18446744073709551634") + self.subTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.subTest(lhs: "2147483647", rhs: "1", expecting: "2147483646") + self.subTest(lhs: "2147483647", rhs: "-1", expecting: "2147483648") + self.subTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "-18446744071562067968") + self.subTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "18446744075857035262") + self.subTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "-18446744071562067970") + self.subTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "18446744075857035264") + self.subTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503330279427") + self.subTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351507625246721") + self.subTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915251713900550") + self.subTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256008867844") + self.subTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "-18446744071562067976") + self.subTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "18446744075857035270") + self.subTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815945587589123") + self.subTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949882556417") + self.subTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400065859596") + self.subTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404360826890") + self.subTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "-18446744071562067982") + self.subTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "18446744075857035276") + self.subTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280387844898819") + self.subTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280392139866113") + self.subTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548417818642") + self.subTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552712785936") + self.subTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "-18446744071562067988") + self.subTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "18446744075857035282") + self.subTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.subTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483649") + self.subTest(lhs: "-2147483648", rhs: "-1", expecting: "-2147483647") + self.subTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "-18446744075857035263") + self.subTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "18446744071562067967") + self.subTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "-18446744075857035265") + self.subTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "18446744071562067969") + self.subTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507625246722") + self.subTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351503330279426") + self.subTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256008867845") + self.subTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915251713900549") + self.subTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "-18446744075857035271") + self.subTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "18446744071562067975") + self.subTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949882556418") + self.subTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815945587589122") + self.subTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404360826891") + self.subTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400065859595") + self.subTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "-18446744075857035277") + self.subTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "18446744071562067981") + self.subTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392139866114") + self.subTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280387844898818") + self.subTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552712785937") + self.subTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275548417818641") + self.subTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "-18446744075857035283") + self.subTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "18446744071562067987") + self.subTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.subTest(lhs: "1932735283", rhs: "1", expecting: "1932735282") + self.subTest(lhs: "1932735283", rhs: "-1", expecting: "1932735284") + self.subTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "-18446744071776816332") + self.subTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "18446744075642286898") + self.subTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "-18446744071776816334") + self.subTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "18446744075642286900") + self.subTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503545027791") + self.subTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351507410498357") + self.subTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915251928648914") + self.subTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255794119480") + self.subTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "-18446744071776816340") + self.subTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "18446744075642286906") + self.subTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815945802337487") + self.subTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949667808053") + self.subTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400280607960") + self.subTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404146078526") + self.subTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "-18446744071776816346") + self.subTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "18446744075642286912") + self.subTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388059647183") + self.subTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391925117749") + self.subTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548632567006") + self.subTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552498037572") + self.subTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "-18446744071776816352") + self.subTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "18446744075642286918") + self.subTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.subTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735285") + self.subTest(lhs: "-1932735284", rhs: "-1", expecting: "-1932735283") + self.subTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "-18446744075642286899") + self.subTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "18446744071776816331") + self.subTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "-18446744075642286901") + self.subTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "18446744071776816333") + self.subTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507410498358") + self.subTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351503545027790") + self.subTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255794119481") + self.subTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915251928648913") + self.subTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "-18446744075642286907") + self.subTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "18446744071776816339") + self.subTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949667808054") + self.subTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815945802337486") + self.subTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404146078527") + self.subTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400280607959") + self.subTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "-18446744075642286913") + self.subTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "18446744071776816345") + self.subTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391925117750") + self.subTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280388059647182") + self.subTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552498037573") + self.subTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275548632567005") + self.subTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "-18446744075642286919") + self.subTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "18446744071776816351") + self.subTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.subTest(lhs: "1717986919", rhs: "1", expecting: "1717986918") + self.subTest(lhs: "1717986919", rhs: "-1", expecting: "1717986920") + self.subTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "-18446744071991564696") + self.subTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "18446744075427538534") + self.subTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "-18446744071991564698") + self.subTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "18446744075427538536") + self.subTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503759776155") + self.subTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749993") + self.subTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252143397278") + self.subTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371116") + self.subTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "-18446744071991564704") + self.subTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "18446744075427538542") + self.subTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946017085851") + self.subTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059689") + self.subTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400495356324") + self.subTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330162") + self.subTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "-18446744071991564710") + self.subTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "18446744075427538548") + self.subTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388274395547") + self.subTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369385") + self.subTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548847315370") + self.subTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289208") + self.subTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "-18446744071991564716") + self.subTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "18446744075427538554") + self.subTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.subTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986921") + self.subTest(lhs: "-1717986920", rhs: "-1", expecting: "-1717986919") + self.subTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "-18446744075427538535") + self.subTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "18446744071991564695") + self.subTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "-18446744075427538537") + self.subTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "18446744071991564697") + self.subTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507195749994") + self.subTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351503759776154") + self.subTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255579371117") + self.subTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252143397277") + self.subTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "-18446744075427538543") + self.subTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "18446744071991564703") + self.subTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949453059690") + self.subTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815946017085850") + self.subTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403931330163") + self.subTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400495356323") + self.subTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "-18446744075427538549") + self.subTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "18446744071991564709") + self.subTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391710369386") + self.subTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280388274395546") + self.subTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552283289209") + self.subTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275548847315369") + self.subTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "-18446744075427538555") + self.subTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "18446744071991564715") + self.subTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.subTest(lhs: "1503238555", rhs: "1", expecting: "1503238554") + self.subTest(lhs: "1503238555", rhs: "-1", expecting: "1503238556") + self.subTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "-18446744072206313060") + self.subTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "18446744075212790170") + self.subTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "-18446744072206313062") + self.subTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "18446744075212790172") + self.subTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503974524519") + self.subTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506981001629") + self.subTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252358145642") + self.subTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255364622752") + self.subTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "-18446744072206313068") + self.subTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "18446744075212790178") + self.subTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946231834215") + self.subTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949238311325") + self.subTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400710104688") + self.subTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403716581798") + self.subTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "-18446744072206313074") + self.subTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "18446744075212790184") + self.subTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388489143911") + self.subTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391495621021") + self.subTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549062063734") + self.subTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552068540844") + self.subTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "-18446744072206313080") + self.subTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "18446744075212790190") + self.subTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.subTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238557") + self.subTest(lhs: "-1503238556", rhs: "-1", expecting: "-1503238555") + self.subTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "-18446744075212790171") + self.subTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "18446744072206313059") + self.subTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "-18446744075212790173") + self.subTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "18446744072206313061") + self.subTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506981001630") + self.subTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351503974524518") + self.subTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255364622753") + self.subTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252358145641") + self.subTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "-18446744075212790179") + self.subTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "18446744072206313067") + self.subTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949238311326") + self.subTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815946231834214") + self.subTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403716581799") + self.subTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400710104687") + self.subTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "-18446744075212790185") + self.subTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "18446744072206313073") + self.subTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391495621022") + self.subTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280388489143910") + self.subTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552068540845") + self.subTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549062063733") + self.subTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "-18446744075212790191") + self.subTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "18446744072206313079") + self.subTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.subTest(lhs: "1288490191", rhs: "1", expecting: "1288490190") + self.subTest(lhs: "1288490191", rhs: "-1", expecting: "1288490192") + self.subTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "-18446744072421061424") + self.subTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "18446744074998041806") + self.subTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "-18446744072421061426") + self.subTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "18446744074998041808") + self.subTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504189272883") + self.subTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506766253265") + self.subTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252572894006") + self.subTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255149874388") + self.subTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "-18446744072421061432") + self.subTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "18446744074998041814") + self.subTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946446582579") + self.subTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949023562961") + self.subTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400924853052") + self.subTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403501833434") + self.subTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "-18446744072421061438") + self.subTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "18446744074998041820") + self.subTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388703892275") + self.subTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391280872657") + self.subTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549276812098") + self.subTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551853792480") + self.subTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "-18446744072421061444") + self.subTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "18446744074998041826") + self.subTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.subTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490193") + self.subTest(lhs: "-1288490192", rhs: "-1", expecting: "-1288490191") + self.subTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "-18446744074998041807") + self.subTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "18446744072421061423") + self.subTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "-18446744074998041809") + self.subTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "18446744072421061425") + self.subTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506766253266") + self.subTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351504189272882") + self.subTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255149874389") + self.subTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252572894005") + self.subTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "-18446744074998041815") + self.subTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "18446744072421061431") + self.subTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949023562962") + self.subTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815946446582578") + self.subTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403501833435") + self.subTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095400924853051") + self.subTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "-18446744074998041821") + self.subTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "18446744072421061437") + self.subTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391280872658") + self.subTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280388703892274") + self.subTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551853792481") + self.subTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549276812097") + self.subTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "-18446744074998041827") + self.subTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "18446744072421061443") + self.subTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.subTest(lhs: "1073741827", rhs: "1", expecting: "1073741826") + self.subTest(lhs: "1073741827", rhs: "-1", expecting: "1073741828") + self.subTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "-18446744072635809788") + self.subTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "18446744074783293442") + self.subTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "-18446744072635809790") + self.subTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "18446744074783293444") + self.subTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504404021247") + self.subTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506551504901") + self.subTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252787642370") + self.subTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254935126024") + self.subTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "-18446744072635809796") + self.subTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "18446744074783293450") + self.subTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946661330943") + self.subTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948808814597") + self.subTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401139601416") + self.subTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403287085070") + self.subTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "-18446744072635809802") + self.subTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "18446744074783293456") + self.subTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388918640639") + self.subTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391066124293") + self.subTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549491560462") + self.subTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551639044116") + self.subTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "-18446744072635809808") + self.subTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "18446744074783293462") + self.subTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.subTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741829") + self.subTest(lhs: "-1073741828", rhs: "-1", expecting: "-1073741827") + self.subTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "-18446744074783293443") + self.subTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "18446744072635809787") + self.subTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "-18446744074783293445") + self.subTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "18446744072635809789") + self.subTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506551504902") + self.subTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351504404021246") + self.subTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254935126025") + self.subTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915252787642369") + self.subTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "-18446744074783293451") + self.subTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "18446744072635809795") + self.subTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948808814598") + self.subTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815946661330942") + self.subTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403287085071") + self.subTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401139601415") + self.subTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "-18446744074783293457") + self.subTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "18446744072635809801") + self.subTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391066124294") + self.subTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280388918640638") + self.subTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551639044117") + self.subTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549491560461") + self.subTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "-18446744074783293463") + self.subTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "18446744072635809807") + self.subTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.subTest(lhs: "858993463", rhs: "1", expecting: "858993462") + self.subTest(lhs: "858993463", rhs: "-1", expecting: "858993464") + self.subTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "-18446744072850558152") + self.subTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "18446744074568545078") + self.subTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "-18446744072850558154") + self.subTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "18446744074568545080") + self.subTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504618769611") + self.subTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756537") + self.subTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253002390734") + self.subTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377660") + self.subTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "-18446744072850558160") + self.subTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "18446744074568545086") + self.subTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946876079307") + self.subTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066233") + self.subTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401354349780") + self.subTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336706") + self.subTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "-18446744072850558166") + self.subTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "18446744074568545092") + self.subTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389133389003") + self.subTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375929") + self.subTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549706308826") + self.subTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295752") + self.subTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "-18446744072850558172") + self.subTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "18446744074568545098") + self.subTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.subTest(lhs: "-858993464", rhs: "1", expecting: "-858993465") + self.subTest(lhs: "-858993464", rhs: "-1", expecting: "-858993463") + self.subTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "-18446744074568545079") + self.subTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "18446744072850558151") + self.subTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "-18446744074568545081") + self.subTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "18446744072850558153") + self.subTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756538") + self.subTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351504618769610") + self.subTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377661") + self.subTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253002390733") + self.subTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "-18446744074568545087") + self.subTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "18446744072850558159") + self.subTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066234") + self.subTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815946876079306") + self.subTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336707") + self.subTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401354349779") + self.subTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "-18446744074568545093") + self.subTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "18446744072850558165") + self.subTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375930") + self.subTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389133389002") + self.subTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295753") + self.subTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549706308825") + self.subTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "-18446744074568545099") + self.subTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "18446744072850558171") + self.subTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.subTest(lhs: "644245099", rhs: "1", expecting: "644245098") + self.subTest(lhs: "644245099", rhs: "-1", expecting: "644245100") + self.subTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "-18446744073065306516") + self.subTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "18446744074353796714") + self.subTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "-18446744073065306518") + self.subTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "18446744074353796716") + self.subTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504833517975") + self.subTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506122008173") + self.subTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253217139098") + self.subTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254505629296") + self.subTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "-18446744073065306524") + self.subTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "18446744074353796722") + self.subTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947090827671") + self.subTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948379317869") + self.subTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401569098144") + self.subTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402857588342") + self.subTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "-18446744073065306530") + self.subTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "18446744074353796728") + self.subTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389348137367") + self.subTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390636627565") + self.subTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549921057190") + self.subTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551209547388") + self.subTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "-18446744073065306536") + self.subTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "18446744074353796734") + self.subTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.subTest(lhs: "-644245100", rhs: "1", expecting: "-644245101") + self.subTest(lhs: "-644245100", rhs: "-1", expecting: "-644245099") + self.subTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "-18446744074353796715") + self.subTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "18446744073065306515") + self.subTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "-18446744074353796717") + self.subTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "18446744073065306517") + self.subTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506122008174") + self.subTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351504833517974") + self.subTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254505629297") + self.subTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253217139097") + self.subTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "-18446744074353796723") + self.subTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "18446744073065306523") + self.subTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948379317870") + self.subTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947090827670") + self.subTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402857588343") + self.subTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401569098143") + self.subTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "-18446744074353796729") + self.subTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "18446744073065306529") + self.subTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390636627566") + self.subTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389348137366") + self.subTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551209547389") + self.subTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549921057189") + self.subTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "-18446744074353796735") + self.subTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "18446744073065306535") + self.subTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.subTest(lhs: "429496735", rhs: "1", expecting: "429496734") + self.subTest(lhs: "429496735", rhs: "-1", expecting: "429496736") + self.subTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "-18446744073280054880") + self.subTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "18446744074139048350") + self.subTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "-18446744073280054882") + self.subTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "18446744074139048352") + self.subTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505048266339") + self.subTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505907259809") + self.subTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253431887462") + self.subTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254290880932") + self.subTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "-18446744073280054888") + self.subTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "18446744074139048358") + self.subTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947305576035") + self.subTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948164569505") + self.subTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401783846508") + self.subTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402642839978") + self.subTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "-18446744073280054894") + self.subTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "18446744074139048364") + self.subTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389562885731") + self.subTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390421879201") + self.subTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550135805554") + self.subTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550994799024") + self.subTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "-18446744073280054900") + self.subTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "18446744074139048370") + self.subTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.subTest(lhs: "-429496736", rhs: "1", expecting: "-429496737") + self.subTest(lhs: "-429496736", rhs: "-1", expecting: "-429496735") + self.subTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "-18446744074139048351") + self.subTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "18446744073280054879") + self.subTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "-18446744074139048353") + self.subTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "18446744073280054881") + self.subTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505907259810") + self.subTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505048266338") + self.subTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254290880933") + self.subTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253431887461") + self.subTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "-18446744074139048359") + self.subTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "18446744073280054887") + self.subTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948164569506") + self.subTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947305576034") + self.subTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402642839979") + self.subTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401783846507") + self.subTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "-18446744074139048365") + self.subTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "18446744073280054893") + self.subTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390421879202") + self.subTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389562885730") + self.subTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550994799025") + self.subTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550135805553") + self.subTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "-18446744074139048371") + self.subTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "18446744073280054899") + self.subTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.subTest(lhs: "214748371", rhs: "1", expecting: "214748370") + self.subTest(lhs: "214748371", rhs: "-1", expecting: "214748372") + self.subTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "-18446744073494803244") + self.subTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "18446744073924299986") + self.subTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "-18446744073494803246") + self.subTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "18446744073924299988") + self.subTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505263014703") + self.subTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505692511445") + self.subTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253646635826") + self.subTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254076132568") + self.subTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "-18446744073494803252") + self.subTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "18446744073924299994") + self.subTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947520324399") + self.subTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947949821141") + self.subTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401998594872") + self.subTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402428091614") + self.subTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "-18446744073494803258") + self.subTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "18446744073924300000") + self.subTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389777634095") + self.subTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390207130837") + self.subTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550350553918") + self.subTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550780050660") + self.subTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "-18446744073494803264") + self.subTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "18446744073924300006") + self.subTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.subTest(lhs: "-214748372", rhs: "1", expecting: "-214748373") + self.subTest(lhs: "-214748372", rhs: "-1", expecting: "-214748371") + self.subTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "-18446744073924299987") + self.subTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "18446744073494803243") + self.subTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "-18446744073924299989") + self.subTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "18446744073494803245") + self.subTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505692511446") + self.subTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505263014702") + self.subTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254076132569") + self.subTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253646635825") + self.subTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "-18446744073924299995") + self.subTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "18446744073494803251") + self.subTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947949821142") + self.subTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947520324398") + self.subTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402428091615") + self.subTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401998594871") + self.subTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "-18446744073924300001") + self.subTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "18446744073494803257") + self.subTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390207130838") + self.subTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389777634094") + self.subTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550780050661") + self.subTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550350553917") + self.subTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "-18446744073924300007") + self.subTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "18446744073494803263") + } + + func test_sub_heap_smi() { + self.subTest(lhs: "0", rhs: "0", expecting: "0") + self.subTest(lhs: "0", rhs: "1", expecting: "-1") + self.subTest(lhs: "0", rhs: "-1", expecting: "1") + self.subTest(lhs: "0", rhs: "2147483647", expecting: "-2147483647") + self.subTest(lhs: "0", rhs: "-2147483648", expecting: "2147483648") + self.subTest(lhs: "0", rhs: "1932735283", expecting: "-1932735283") + self.subTest(lhs: "0", rhs: "-1932735284", expecting: "1932735284") + self.subTest(lhs: "0", rhs: "1717986919", expecting: "-1717986919") + self.subTest(lhs: "0", rhs: "-1717986920", expecting: "1717986920") + self.subTest(lhs: "0", rhs: "1503238555", expecting: "-1503238555") + self.subTest(lhs: "0", rhs: "-1503238556", expecting: "1503238556") + self.subTest(lhs: "0", rhs: "1288490191", expecting: "-1288490191") + self.subTest(lhs: "0", rhs: "-1288490192", expecting: "1288490192") + self.subTest(lhs: "0", rhs: "1073741827", expecting: "-1073741827") + self.subTest(lhs: "0", rhs: "-1073741828", expecting: "1073741828") + self.subTest(lhs: "0", rhs: "858993463", expecting: "-858993463") + self.subTest(lhs: "0", rhs: "-858993464", expecting: "858993464") + self.subTest(lhs: "0", rhs: "644245099", expecting: "-644245099") + self.subTest(lhs: "0", rhs: "-644245100", expecting: "644245100") + self.subTest(lhs: "0", rhs: "429496735", expecting: "-429496735") + self.subTest(lhs: "0", rhs: "-429496736", expecting: "429496736") + self.subTest(lhs: "0", rhs: "214748371", expecting: "-214748371") + self.subTest(lhs: "0", rhs: "-214748372", expecting: "214748372") + self.subTest(lhs: "1", rhs: "0", expecting: "1") + self.subTest(lhs: "1", rhs: "1", expecting: "0") + self.subTest(lhs: "1", rhs: "-1", expecting: "2") + self.subTest(lhs: "1", rhs: "2147483647", expecting: "-2147483646") + self.subTest(lhs: "1", rhs: "-2147483648", expecting: "2147483649") + self.subTest(lhs: "1", rhs: "1932735283", expecting: "-1932735282") + self.subTest(lhs: "1", rhs: "-1932735284", expecting: "1932735285") + self.subTest(lhs: "1", rhs: "1717986919", expecting: "-1717986918") + self.subTest(lhs: "1", rhs: "-1717986920", expecting: "1717986921") + self.subTest(lhs: "1", rhs: "1503238555", expecting: "-1503238554") + self.subTest(lhs: "1", rhs: "-1503238556", expecting: "1503238557") + self.subTest(lhs: "1", rhs: "1288490191", expecting: "-1288490190") + self.subTest(lhs: "1", rhs: "-1288490192", expecting: "1288490193") + self.subTest(lhs: "1", rhs: "1073741827", expecting: "-1073741826") + self.subTest(lhs: "1", rhs: "-1073741828", expecting: "1073741829") + self.subTest(lhs: "1", rhs: "858993463", expecting: "-858993462") + self.subTest(lhs: "1", rhs: "-858993464", expecting: "858993465") + self.subTest(lhs: "1", rhs: "644245099", expecting: "-644245098") + self.subTest(lhs: "1", rhs: "-644245100", expecting: "644245101") + self.subTest(lhs: "1", rhs: "429496735", expecting: "-429496734") + self.subTest(lhs: "1", rhs: "-429496736", expecting: "429496737") + self.subTest(lhs: "1", rhs: "214748371", expecting: "-214748370") + self.subTest(lhs: "1", rhs: "-214748372", expecting: "214748373") + self.subTest(lhs: "-1", rhs: "0", expecting: "-1") + self.subTest(lhs: "-1", rhs: "1", expecting: "-2") + self.subTest(lhs: "-1", rhs: "-1", expecting: "0") + self.subTest(lhs: "-1", rhs: "2147483647", expecting: "-2147483648") + self.subTest(lhs: "-1", rhs: "-2147483648", expecting: "2147483647") + self.subTest(lhs: "-1", rhs: "1932735283", expecting: "-1932735284") + self.subTest(lhs: "-1", rhs: "-1932735284", expecting: "1932735283") + self.subTest(lhs: "-1", rhs: "1717986919", expecting: "-1717986920") + self.subTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.subTest(lhs: "-1", rhs: "1503238555", expecting: "-1503238556") + self.subTest(lhs: "-1", rhs: "-1503238556", expecting: "1503238555") + self.subTest(lhs: "-1", rhs: "1288490191", expecting: "-1288490192") + self.subTest(lhs: "-1", rhs: "-1288490192", expecting: "1288490191") + self.subTest(lhs: "-1", rhs: "1073741827", expecting: "-1073741828") + self.subTest(lhs: "-1", rhs: "-1073741828", expecting: "1073741827") + self.subTest(lhs: "-1", rhs: "858993463", expecting: "-858993464") + self.subTest(lhs: "-1", rhs: "-858993464", expecting: "858993463") + self.subTest(lhs: "-1", rhs: "644245099", expecting: "-644245100") + self.subTest(lhs: "-1", rhs: "-644245100", expecting: "644245099") + self.subTest(lhs: "-1", rhs: "429496735", expecting: "-429496736") + self.subTest(lhs: "-1", rhs: "-429496736", expecting: "429496735") + self.subTest(lhs: "-1", rhs: "214748371", expecting: "-214748372") + self.subTest(lhs: "-1", rhs: "-214748372", expecting: "214748371") + self.subTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.subTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551614") + self.subTest(lhs: "18446744073709551615", rhs: "-1", expecting: "18446744073709551616") + self.subTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "18446744071562067968") + self.subTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "18446744075857035263") + self.subTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "18446744071776816332") + self.subTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "18446744075642286899") + self.subTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "18446744071991564696") + self.subTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "18446744075427538535") + self.subTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "18446744072206313060") + self.subTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "18446744075212790171") + self.subTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "18446744072421061424") + self.subTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "18446744074998041807") + self.subTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "18446744072635809788") + self.subTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "18446744074783293443") + self.subTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "18446744072850558152") + self.subTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "18446744074568545079") + self.subTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "18446744073065306516") + self.subTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "18446744074353796715") + self.subTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "18446744073280054880") + self.subTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "18446744074139048351") + self.subTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "18446744073494803244") + self.subTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "18446744073924299987") + self.subTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.subTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551616") + self.subTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-18446744073709551614") + self.subTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "-18446744075857035262") + self.subTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "-18446744071562067967") + self.subTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "-18446744075642286898") + self.subTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "-18446744071776816331") + self.subTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "-18446744075427538534") + self.subTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-18446744071991564695") + self.subTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "-18446744075212790170") + self.subTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "-18446744072206313059") + self.subTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "-18446744074998041806") + self.subTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "-18446744072421061423") + self.subTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "-18446744074783293442") + self.subTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "-18446744072635809787") + self.subTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "-18446744074568545078") + self.subTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "-18446744072850558151") + self.subTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "-18446744074353796714") + self.subTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "-18446744073065306515") + self.subTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "-18446744074139048350") + self.subTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "-18446744073280054879") + self.subTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "-18446744073924299986") + self.subTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "-18446744073494803243") + self.subTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.subTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551616") + self.subTest(lhs: "18446744073709551617", rhs: "-1", expecting: "18446744073709551618") + self.subTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "18446744071562067970") + self.subTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "18446744075857035265") + self.subTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "18446744071776816334") + self.subTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "18446744075642286901") + self.subTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "18446744071991564698") + self.subTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "18446744075427538537") + self.subTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "18446744072206313062") + self.subTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "18446744075212790173") + self.subTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "18446744072421061426") + self.subTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "18446744074998041809") + self.subTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "18446744072635809790") + self.subTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "18446744074783293445") + self.subTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "18446744072850558154") + self.subTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "18446744074568545081") + self.subTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "18446744073065306518") + self.subTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "18446744074353796717") + self.subTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "18446744073280054882") + self.subTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "18446744074139048353") + self.subTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "18446744073494803246") + self.subTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "18446744073924299989") + self.subTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.subTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551618") + self.subTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-18446744073709551616") + self.subTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "-18446744075857035264") + self.subTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "-18446744071562067969") + self.subTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "-18446744075642286900") + self.subTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "-18446744071776816333") + self.subTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "-18446744075427538536") + self.subTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-18446744071991564697") + self.subTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "-18446744075212790172") + self.subTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "-18446744072206313061") + self.subTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "-18446744074998041808") + self.subTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "-18446744072421061425") + self.subTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "-18446744074783293444") + self.subTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "-18446744072635809789") + self.subTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "-18446744074568545080") + self.subTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "-18446744072850558153") + self.subTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "-18446744074353796716") + self.subTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "-18446744073065306517") + self.subTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "-18446744074139048352") + self.subTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "-18446744073280054881") + self.subTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "-18446744073924299988") + self.subTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "-18446744073494803245") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763073") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763075") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "340282366920938463481821351503330279427") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "340282366920938463481821351507625246722") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "340282366920938463481821351503545027791") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "340282366920938463481821351507410498358") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "340282366920938463481821351503759776155") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351507195749994") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "340282366920938463481821351503974524519") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "340282366920938463481821351506981001630") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "340282366920938463481821351504189272883") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "340282366920938463481821351506766253266") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "340282366920938463481821351504404021247") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "340282366920938463481821351506551504902") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "340282366920938463481821351504618769611") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "340282366920938463481821351506336756538") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "340282366920938463481821351504833517975") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "340282366920938463481821351506122008174") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "340282366920938463481821351505048266339") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "340282366920938463481821351505907259810") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "340282366920938463481821351505263014703") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "340282366920938463481821351505692511446") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763075") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763073") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "-340282366920938463481821351507625246721") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-340282366920938463481821351503330279426") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "-340282366920938463481821351507410498357") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-340282366920938463481821351503545027790") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "-340282366920938463481821351507195749993") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351503759776154") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "-340282366920938463481821351506981001629") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-340282366920938463481821351503974524518") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "-340282366920938463481821351506766253265") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-340282366920938463481821351504189272882") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "-340282366920938463481821351506551504901") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-340282366920938463481821351504404021246") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "-340282366920938463481821351506336756537") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-340282366920938463481821351504618769610") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "-340282366920938463481821351506122008173") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-340282366920938463481821351504833517974") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "-340282366920938463481821351505907259809") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-340282366920938463481821351505048266338") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "-340282366920938463481821351505692511445") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-340282366920938463481821351505263014702") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "6277101735386680764516354157049543343010657915251713900550") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "6277101735386680764516354157049543343010657915256008867845") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "6277101735386680764516354157049543343010657915251928648914") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "6277101735386680764516354157049543343010657915255794119481") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "6277101735386680764516354157049543343010657915252143397278") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "6277101735386680764516354157049543343010657915252358145642") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "6277101735386680764516354157049543343010657915255364622753") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "6277101735386680764516354157049543343010657915252572894006") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "6277101735386680764516354157049543343010657915255149874389") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "6277101735386680764516354157049543343010657915252787642370") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "6277101735386680764516354157049543343010657915254935126025") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "6277101735386680764516354157049543343010657915253002390734") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "6277101735386680764516354157049543343010657915254720377661") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "6277101735386680764516354157049543343010657915253217139098") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "6277101735386680764516354157049543343010657915254505629297") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "6277101735386680764516354157049543343010657915253431887462") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "6277101735386680764516354157049543343010657915254290880933") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "6277101735386680764516354157049543343010657915253646635826") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "6277101735386680764516354157049543343010657915254076132569") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "-6277101735386680764516354157049543343010657915256008867844") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-6277101735386680764516354157049543343010657915251713900549") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "-6277101735386680764516354157049543343010657915255794119480") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-6277101735386680764516354157049543343010657915251928648913") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "-6277101735386680764516354157049543343010657915255579371116") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915252143397277") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "-6277101735386680764516354157049543343010657915255364622752") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-6277101735386680764516354157049543343010657915252358145641") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "-6277101735386680764516354157049543343010657915255149874388") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-6277101735386680764516354157049543343010657915252572894005") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "-6277101735386680764516354157049543343010657915254935126024") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-6277101735386680764516354157049543343010657915252787642369") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "-6277101735386680764516354157049543343010657915254720377660") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-6277101735386680764516354157049543343010657915253002390733") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "-6277101735386680764516354157049543343010657915254505629296") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-6277101735386680764516354157049543343010657915253217139097") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "-6277101735386680764516354157049543343010657915254290880932") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-6277101735386680764516354157049543343010657915253431887461") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "-6277101735386680764516354157049543343010657915254076132568") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-6277101735386680764516354157049543343010657915253646635825") + self.subTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.subTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551622") + self.subTest(lhs: "18446744073709551623", rhs: "-1", expecting: "18446744073709551624") + self.subTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "18446744071562067976") + self.subTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "18446744075857035271") + self.subTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "18446744071776816340") + self.subTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "18446744075642286907") + self.subTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "18446744071991564704") + self.subTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "18446744075427538543") + self.subTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "18446744072206313068") + self.subTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "18446744075212790179") + self.subTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "18446744072421061432") + self.subTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "18446744074998041815") + self.subTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "18446744072635809796") + self.subTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "18446744074783293451") + self.subTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "18446744072850558160") + self.subTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "18446744074568545087") + self.subTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "18446744073065306524") + self.subTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "18446744074353796723") + self.subTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "18446744073280054888") + self.subTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "18446744074139048359") + self.subTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "18446744073494803252") + self.subTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "18446744073924299995") + self.subTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.subTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551624") + self.subTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-18446744073709551622") + self.subTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "-18446744075857035270") + self.subTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "-18446744071562067975") + self.subTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "-18446744075642286906") + self.subTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "-18446744071776816339") + self.subTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "-18446744075427538542") + self.subTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-18446744071991564703") + self.subTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "-18446744075212790178") + self.subTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "-18446744072206313067") + self.subTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "-18446744074998041814") + self.subTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "-18446744072421061431") + self.subTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "-18446744074783293450") + self.subTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "-18446744072635809795") + self.subTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "-18446744074568545086") + self.subTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "-18446744072850558159") + self.subTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "-18446744074353796722") + self.subTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "-18446744073065306523") + self.subTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "-18446744074139048358") + self.subTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "-18446744073280054887") + self.subTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "-18446744073924299994") + self.subTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "-18446744073494803251") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072769") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072771") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "340282366920938463592501815945587589123") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "340282366920938463592501815949882556418") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "340282366920938463592501815945802337487") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "340282366920938463592501815949667808054") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "340282366920938463592501815946017085851") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815949453059690") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "340282366920938463592501815946231834215") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "340282366920938463592501815949238311326") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "340282366920938463592501815946446582579") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "340282366920938463592501815949023562962") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "340282366920938463592501815946661330943") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "340282366920938463592501815948808814598") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "340282366920938463592501815946876079307") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "340282366920938463592501815948594066234") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "340282366920938463592501815947090827671") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "340282366920938463592501815948379317870") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "340282366920938463592501815947305576035") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "340282366920938463592501815948164569506") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "340282366920938463592501815947520324399") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "340282366920938463592501815947949821142") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072771") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072769") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "-340282366920938463592501815949882556417") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-340282366920938463592501815945587589122") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "-340282366920938463592501815949667808053") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-340282366920938463592501815945802337486") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "-340282366920938463592501815949453059689") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815946017085850") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "-340282366920938463592501815949238311325") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-340282366920938463592501815946231834214") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "-340282366920938463592501815949023562961") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-340282366920938463592501815946446582578") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "-340282366920938463592501815948808814597") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-340282366920938463592501815946661330942") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "-340282366920938463592501815948594066233") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-340282366920938463592501815946876079306") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "-340282366920938463592501815948379317869") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-340282366920938463592501815947090827670") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "-340282366920938463592501815948164569505") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-340282366920938463592501815947305576034") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "-340282366920938463592501815947949821141") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-340282366920938463592501815947520324398") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "6277101735386680766558048358575174123680225095400065859596") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "6277101735386680766558048358575174123680225095404360826891") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "6277101735386680766558048358575174123680225095400280607960") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "6277101735386680766558048358575174123680225095404146078527") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "6277101735386680766558048358575174123680225095400495356324") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095403931330163") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "6277101735386680766558048358575174123680225095400710104688") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "6277101735386680766558048358575174123680225095403716581799") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "6277101735386680766558048358575174123680225095400924853052") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "6277101735386680766558048358575174123680225095403501833435") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "6277101735386680766558048358575174123680225095401139601416") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "6277101735386680766558048358575174123680225095403287085071") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "6277101735386680766558048358575174123680225095401354349780") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "6277101735386680766558048358575174123680225095403072336707") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "6277101735386680766558048358575174123680225095401569098144") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "6277101735386680766558048358575174123680225095402857588343") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "6277101735386680766558048358575174123680225095401783846508") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "6277101735386680766558048358575174123680225095402642839979") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "6277101735386680766558048358575174123680225095401998594872") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "6277101735386680766558048358575174123680225095402428091615") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "-6277101735386680766558048358575174123680225095404360826890") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-6277101735386680766558048358575174123680225095400065859595") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "-6277101735386680766558048358575174123680225095404146078526") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-6277101735386680766558048358575174123680225095400280607959") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "-6277101735386680766558048358575174123680225095403931330162") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095400495356323") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "-6277101735386680766558048358575174123680225095403716581798") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-6277101735386680766558048358575174123680225095400710104687") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "-6277101735386680766558048358575174123680225095403501833434") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-6277101735386680766558048358575174123680225095400924853051") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "-6277101735386680766558048358575174123680225095403287085070") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-6277101735386680766558048358575174123680225095401139601415") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "-6277101735386680766558048358575174123680225095403072336706") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-6277101735386680766558048358575174123680225095401354349779") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "-6277101735386680766558048358575174123680225095402857588342") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-6277101735386680766558048358575174123680225095401569098143") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "-6277101735386680766558048358575174123680225095402642839978") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-6277101735386680766558048358575174123680225095401783846507") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "-6277101735386680766558048358575174123680225095402428091614") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-6277101735386680766558048358575174123680225095401998594871") + self.subTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.subTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551628") + self.subTest(lhs: "18446744073709551629", rhs: "-1", expecting: "18446744073709551630") + self.subTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "18446744071562067982") + self.subTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "18446744075857035277") + self.subTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "18446744071776816346") + self.subTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "18446744075642286913") + self.subTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "18446744071991564710") + self.subTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "18446744075427538549") + self.subTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "18446744072206313074") + self.subTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "18446744075212790185") + self.subTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "18446744072421061438") + self.subTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "18446744074998041821") + self.subTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "18446744072635809802") + self.subTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "18446744074783293457") + self.subTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "18446744072850558166") + self.subTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "18446744074568545093") + self.subTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "18446744073065306530") + self.subTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "18446744074353796729") + self.subTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "18446744073280054894") + self.subTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "18446744074139048365") + self.subTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "18446744073494803258") + self.subTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "18446744073924300001") + self.subTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.subTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551630") + self.subTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-18446744073709551628") + self.subTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "-18446744075857035276") + self.subTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "-18446744071562067981") + self.subTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "-18446744075642286912") + self.subTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "-18446744071776816345") + self.subTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "-18446744075427538548") + self.subTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-18446744071991564709") + self.subTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "-18446744075212790184") + self.subTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "-18446744072206313073") + self.subTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "-18446744074998041820") + self.subTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "-18446744072421061437") + self.subTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "-18446744074783293456") + self.subTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "-18446744072635809801") + self.subTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "-18446744074568545092") + self.subTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "-18446744072850558165") + self.subTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "-18446744074353796728") + self.subTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "-18446744073065306529") + self.subTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "-18446744074139048364") + self.subTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "-18446744073280054893") + self.subTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "-18446744073924300000") + self.subTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "-18446744073494803257") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382465") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382467") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "340282366920938463703182280387844898819") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "340282366920938463703182280392139866114") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "340282366920938463703182280388059647183") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "340282366920938463703182280391925117750") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "340282366920938463703182280388274395547") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280391710369386") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "340282366920938463703182280388489143911") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "340282366920938463703182280391495621022") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "340282366920938463703182280388703892275") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "340282366920938463703182280391280872658") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "340282366920938463703182280388918640639") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "340282366920938463703182280391066124294") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "340282366920938463703182280389133389003") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "340282366920938463703182280390851375930") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "340282366920938463703182280389348137367") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "340282366920938463703182280390636627566") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "340282366920938463703182280389562885731") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "340282366920938463703182280390421879202") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "340282366920938463703182280389777634095") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "340282366920938463703182280390207130838") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382467") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382465") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "-340282366920938463703182280392139866113") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-340282366920938463703182280387844898818") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "-340282366920938463703182280391925117749") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-340282366920938463703182280388059647182") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "-340282366920938463703182280391710369385") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280388274395546") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "-340282366920938463703182280391495621021") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-340282366920938463703182280388489143910") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "-340282366920938463703182280391280872657") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-340282366920938463703182280388703892274") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "-340282366920938463703182280391066124293") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-340282366920938463703182280388918640638") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "-340282366920938463703182280390851375929") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-340282366920938463703182280389133389002") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "-340282366920938463703182280390636627565") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-340282366920938463703182280389348137366") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "-340282366920938463703182280390421879201") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-340282366920938463703182280389562885730") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "-340282366920938463703182280390207130837") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-340282366920938463703182280389777634094") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "6277101735386680768599742560100804904349792275548417818642") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "6277101735386680768599742560100804904349792275552712785937") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "6277101735386680768599742560100804904349792275548632567006") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "6277101735386680768599742560100804904349792275552498037573") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "6277101735386680768599742560100804904349792275548847315370") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "6277101735386680768599742560100804904349792275549062063734") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "6277101735386680768599742560100804904349792275552068540845") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "6277101735386680768599742560100804904349792275549276812098") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "6277101735386680768599742560100804904349792275551853792481") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "6277101735386680768599742560100804904349792275549491560462") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "6277101735386680768599742560100804904349792275551639044117") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "6277101735386680768599742560100804904349792275549706308826") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "6277101735386680768599742560100804904349792275551424295753") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "6277101735386680768599742560100804904349792275549921057190") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "6277101735386680768599742560100804904349792275551209547389") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "6277101735386680768599742560100804904349792275550135805554") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "6277101735386680768599742560100804904349792275550994799025") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "6277101735386680768599742560100804904349792275550350553918") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "6277101735386680768599742560100804904349792275550780050661") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "-6277101735386680768599742560100804904349792275552712785936") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-6277101735386680768599742560100804904349792275548417818641") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "-6277101735386680768599742560100804904349792275552498037572") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-6277101735386680768599742560100804904349792275548632567005") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "-6277101735386680768599742560100804904349792275552283289208") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275548847315369") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "-6277101735386680768599742560100804904349792275552068540844") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-6277101735386680768599742560100804904349792275549062063733") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "-6277101735386680768599742560100804904349792275551853792480") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-6277101735386680768599742560100804904349792275549276812097") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "-6277101735386680768599742560100804904349792275551639044116") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-6277101735386680768599742560100804904349792275549491560461") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "-6277101735386680768599742560100804904349792275551424295752") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-6277101735386680768599742560100804904349792275549706308825") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "-6277101735386680768599742560100804904349792275551209547388") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-6277101735386680768599742560100804904349792275549921057189") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "-6277101735386680768599742560100804904349792275550994799024") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-6277101735386680768599742560100804904349792275550135805553") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "-6277101735386680768599742560100804904349792275550780050660") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-6277101735386680768599742560100804904349792275550350553917") + self.subTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.subTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551634") + self.subTest(lhs: "18446744073709551635", rhs: "-1", expecting: "18446744073709551636") + self.subTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "18446744071562067988") + self.subTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "18446744075857035283") + self.subTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "18446744071776816352") + self.subTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "18446744075642286919") + self.subTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "18446744071991564716") + self.subTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "18446744075427538555") + self.subTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "18446744072206313080") + self.subTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "18446744075212790191") + self.subTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "18446744072421061444") + self.subTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "18446744074998041827") + self.subTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "18446744072635809808") + self.subTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "18446744074783293463") + self.subTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "18446744072850558172") + self.subTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "18446744074568545099") + self.subTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "18446744073065306536") + self.subTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "18446744074353796735") + self.subTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "18446744073280054900") + self.subTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "18446744074139048371") + self.subTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "18446744073494803264") + self.subTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "18446744073924300007") + self.subTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.subTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551636") + self.subTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-18446744073709551634") + self.subTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "-18446744075857035282") + self.subTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "-18446744071562067987") + self.subTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "-18446744075642286918") + self.subTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "-18446744071776816351") + self.subTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "-18446744075427538554") + self.subTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-18446744071991564715") + self.subTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "-18446744075212790190") + self.subTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "-18446744072206313079") + self.subTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "-18446744074998041826") + self.subTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "-18446744072421061443") + self.subTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "-18446744074783293462") + self.subTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "-18446744072635809807") + self.subTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "-18446744074568545098") + self.subTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "-18446744072850558171") + self.subTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "-18446744074353796734") + self.subTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "-18446744073065306535") + self.subTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "-18446744074139048370") + self.subTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "-18446744073280054899") + self.subTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "-18446744073924300006") + self.subTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "-18446744073494803263") + } + + func test_sub_heap_heap() { + self.subTest(lhs: "0", rhs: "0", expecting: "0") + self.subTest(lhs: "0", rhs: "1", expecting: "-1") + self.subTest(lhs: "0", rhs: "-1", expecting: "1") + self.subTest(lhs: "0", rhs: "18446744073709551615", expecting: "-18446744073709551615") + self.subTest(lhs: "0", rhs: "-18446744073709551615", expecting: "18446744073709551615") + self.subTest(lhs: "0", rhs: "18446744073709551617", expecting: "-18446744073709551617") + self.subTest(lhs: "0", rhs: "-18446744073709551617", expecting: "18446744073709551617") + self.subTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.subTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.subTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "0", rhs: "18446744073709551623", expecting: "-18446744073709551623") + self.subTest(lhs: "0", rhs: "-18446744073709551623", expecting: "18446744073709551623") + self.subTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.subTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.subTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "0", rhs: "18446744073709551629", expecting: "-18446744073709551629") + self.subTest(lhs: "0", rhs: "-18446744073709551629", expecting: "18446744073709551629") + self.subTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.subTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.subTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "0", rhs: "18446744073709551635", expecting: "-18446744073709551635") + self.subTest(lhs: "0", rhs: "-18446744073709551635", expecting: "18446744073709551635") + self.subTest(lhs: "1", rhs: "0", expecting: "1") + self.subTest(lhs: "1", rhs: "1", expecting: "0") + self.subTest(lhs: "1", rhs: "-1", expecting: "2") + self.subTest(lhs: "1", rhs: "18446744073709551615", expecting: "-18446744073709551614") + self.subTest(lhs: "1", rhs: "-18446744073709551615", expecting: "18446744073709551616") + self.subTest(lhs: "1", rhs: "18446744073709551617", expecting: "-18446744073709551616") + self.subTest(lhs: "1", rhs: "-18446744073709551617", expecting: "18446744073709551618") + self.subTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.subTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.subTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "1", rhs: "18446744073709551623", expecting: "-18446744073709551622") + self.subTest(lhs: "1", rhs: "-18446744073709551623", expecting: "18446744073709551624") + self.subTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.subTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.subTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "1", rhs: "18446744073709551629", expecting: "-18446744073709551628") + self.subTest(lhs: "1", rhs: "-18446744073709551629", expecting: "18446744073709551630") + self.subTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.subTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.subTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "1", rhs: "18446744073709551635", expecting: "-18446744073709551634") + self.subTest(lhs: "1", rhs: "-18446744073709551635", expecting: "18446744073709551636") + self.subTest(lhs: "-1", rhs: "0", expecting: "-1") + self.subTest(lhs: "-1", rhs: "1", expecting: "-2") + self.subTest(lhs: "-1", rhs: "-1", expecting: "0") + self.subTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-18446744073709551616") + self.subTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "18446744073709551614") + self.subTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-18446744073709551618") + self.subTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "18446744073709551616") + self.subTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763075") + self.subTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763073") + self.subTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-18446744073709551624") + self.subTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "18446744073709551622") + self.subTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072771") + self.subTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072769") + self.subTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-18446744073709551630") + self.subTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "18446744073709551628") + self.subTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382467") + self.subTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382465") + self.subTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-18446744073709551636") + self.subTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "18446744073709551634") + self.subTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.subTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551614") + self.subTest(lhs: "18446744073709551615", rhs: "-1", expecting: "18446744073709551616") + self.subTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "0") + self.subTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "36893488147419103230") + self.subTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "-2") + self.subTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "36893488147419103232") + self.subTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211459") + self.subTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314689") + self.subTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.subTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935812") + self.subTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "-8") + self.subTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "36893488147419103238") + self.subTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521155") + self.subTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624385") + self.subTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.subTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894858") + self.subTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "-14") + self.subTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "36893488147419103244") + self.subTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830851") + self.subTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934081") + self.subTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.subTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853904") + self.subTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "-20") + self.subTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "36893488147419103250") + self.subTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.subTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551616") + self.subTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-18446744073709551614") + self.subTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "-36893488147419103230") + self.subTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "0") + self.subTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "-36893488147419103232") + self.subTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "2") + self.subTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314689") + self.subTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211459") + self.subTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935812") + self.subTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832582") + self.subTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "-36893488147419103238") + self.subTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "8") + self.subTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624385") + self.subTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521155") + self.subTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894858") + self.subTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.subTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "-36893488147419103244") + self.subTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "14") + self.subTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934081") + self.subTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830851") + self.subTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853904") + self.subTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750674") + self.subTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "-36893488147419103250") + self.subTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "20") + self.subTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.subTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551616") + self.subTest(lhs: "18446744073709551617", rhs: "-1", expecting: "18446744073709551618") + self.subTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "2") + self.subTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "36893488147419103232") + self.subTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "0") + self.subTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "36893488147419103234") + self.subTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211457") + self.subTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314691") + self.subTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.subTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935814") + self.subTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "-6") + self.subTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "36893488147419103240") + self.subTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521153") + self.subTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624387") + self.subTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791626") + self.subTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894860") + self.subTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "-12") + self.subTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "36893488147419103246") + self.subTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830849") + self.subTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934083") + self.subTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750672") + self.subTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853906") + self.subTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "-18") + self.subTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "36893488147419103252") + self.subTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.subTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551618") + self.subTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-18446744073709551616") + self.subTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "-36893488147419103232") + self.subTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "-2") + self.subTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "-36893488147419103234") + self.subTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "0") + self.subTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314691") + self.subTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211457") + self.subTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935814") + self.subTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.subTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "-36893488147419103240") + self.subTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "6") + self.subTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624387") + self.subTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521153") + self.subTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894860") + self.subTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.subTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "-36893488147419103246") + self.subTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "12") + self.subTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934083") + self.subTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830849") + self.subTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853906") + self.subTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.subTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "-36893488147419103252") + self.subTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "18") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763073") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763075") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "340282366920938463463374607431768211459") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "340282366920938463500268095579187314689") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "340282366920938463463374607431768211457") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "340282366920938463500268095579187314691") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "680564733841876926963642703010955526148") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879528836563748383621123") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764856636523970481806492479266759339147271") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "340282366920938463463374607431768211451") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "340282366920938463500268095579187314697") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "-110680464442257309696") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "680564733841876927074323167453212835844") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766898330725496112587162046446907691106317") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "340282366920938463463374607431768211445") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "340282366920938463500268095579187314703") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "-221360928884514619392") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "680564733841876927185003631895470145540") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440867970924045087539215") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768940024927021743367831613627056043065363") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "340282366920938463463374607431768211439") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "340282366920938463500268095579187314709") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763075") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763073") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "-340282366920938463500268095579187314689") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-340282366920938463463374607431768211459") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "-340282366920938463500268095579187314691") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-340282366920938463463374607431768211457") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "-680564733841876926963642703010955526148") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764856636523970481806492479266759339147271") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879528836563748383621123") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "-340282366920938463500268095579187314697") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-340282366920938463463374607431768211451") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "-680564733841876927074323167453212835844") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766898330725496112587162046446907691106317") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660198403743896735580169") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "-340282366920938463500268095579187314703") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-340282366920938463463374607431768211445") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "-680564733841876927185003631895470145540") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "221360928884514619392") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768940024927021743367831613627056043065363") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440867970924045087539215") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "-340282366920938463500268095579187314709") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-340282366920938463463374607431768211439") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "6277101735386680764516354157049543342992211171180151832582") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "6277101735386680764516354157049543343029104659327570935812") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "6277101735386680764516354157049543343029104659327570935814") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680764176071790128604879528836563748383621123") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680764856636523970481806492479266759339147271") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "12554203470773361529032708314099086686021315830507722768394") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "6277101735386680764516354157049543342992211171180151832574") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "6277101735386680764516354157049543343029104659327570935820") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680764176071790128604879418156099306126311427") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680764856636523970481806603159731201596456967") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780669567180148351959046") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "12554203470773361531074402515624717466690883010656074727440") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "6277101735386680764516354157049543342992211171180151832568") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "6277101735386680764516354157049543343029104659327570935826") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680764176071790128604879307475634863869001731") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680764856636523970481806713840195643853766663") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-4083388403051261561339134360296703918092") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "12554203470773361533116096717150348247360450190804426686486") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "6277101735386680764516354157049543342992211171180151832562") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "6277101735386680764516354157049543343029104659327570935832") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384196") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "-6277101735386680764516354157049543343029104659327570935812") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "-6277101735386680764516354157049543343029104659327570935814") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680764856636523970481806492479266759339147271") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680764176071790128604879528836563748383621123") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-12554203470773361529032708314099086686021315830507722768394") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "-6277101735386680764516354157049543343029104659327570935820") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-6277101735386680764516354157049543342992211171180151832574") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680764856636523970481806603159731201596456967") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680764176071790128604879418156099306126311427") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-12554203470773361531074402515624717466690883010656074727440") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780669567180148351959046") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "-6277101735386680764516354157049543343029104659327570935826") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-6277101735386680764516354157049543342992211171180151832568") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680764856636523970481806713840195643853766663") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680764176071790128604879307475634863869001731") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-12554203470773361533116096717150348247360450190804426686486") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "4083388403051261561339134360296703918092") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "-6277101735386680764516354157049543343029104659327570935832") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-6277101735386680764516354157049543342992211171180151832562") + self.subTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.subTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551622") + self.subTest(lhs: "18446744073709551623", rhs: "-1", expecting: "18446744073709551624") + self.subTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "8") + self.subTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "36893488147419103238") + self.subTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "6") + self.subTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "36893488147419103240") + self.subTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211451") + self.subTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314697") + self.subTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832574") + self.subTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935820") + self.subTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "0") + self.subTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "36893488147419103246") + self.subTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521147") + self.subTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624393") + self.subTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791620") + self.subTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894866") + self.subTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "-6") + self.subTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "36893488147419103252") + self.subTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830843") + self.subTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934089") + self.subTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750666") + self.subTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853912") + self.subTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "-12") + self.subTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "36893488147419103258") + self.subTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.subTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551624") + self.subTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-18446744073709551622") + self.subTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "-36893488147419103238") + self.subTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "-8") + self.subTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "-36893488147419103240") + self.subTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "-6") + self.subTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314697") + self.subTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211451") + self.subTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935820") + self.subTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832574") + self.subTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "-36893488147419103246") + self.subTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "0") + self.subTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624393") + self.subTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521147") + self.subTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894866") + self.subTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791620") + self.subTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "-36893488147419103252") + self.subTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "6") + self.subTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934089") + self.subTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830843") + self.subTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853912") + self.subTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750666") + self.subTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "-36893488147419103258") + self.subTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "12") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072769") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072771") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "340282366920938463574055071874025521155") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "340282366920938463610948560021444624385") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "340282366920938463574055071874025521153") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "340282366920938463610948560021444624387") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "110680464442257309696") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "680564733841876927074323167453212835844") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879418156099306126311427") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764856636523970481806603159731201596456967") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "340282366920938463574055071874025521147") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "340282366920938463610948560021444624393") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "680564733841876927185003631895470145540") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660087723279454478270473") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766898330725496112587272726911349948416013") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "340282366920938463574055071874025521141") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "340282366920938463610948560021444624399") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "-110680464442257309696") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "680564733841876927295684096337727455236") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440757290459602830229519") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768940024927021743367942294091498300375059") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "340282366920938463574055071874025521135") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "340282366920938463610948560021444624405") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072771") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072769") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "-340282366920938463610948560021444624385") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-340282366920938463574055071874025521155") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "-340282366920938463610948560021444624387") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-340282366920938463574055071874025521153") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "-680564733841876927074323167453212835844") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-110680464442257309696") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764856636523970481806603159731201596456967") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879418156099306126311427") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "-340282366920938463610948560021444624393") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-340282366920938463574055071874025521147") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "-680564733841876927185003631895470145540") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766898330725496112587272726911349948416013") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660087723279454478270473") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "-340282366920938463610948560021444624399") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-340282366920938463574055071874025521141") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "-680564733841876927295684096337727455236") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "110680464442257309696") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768940024927021743367942294091498300375059") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440757290459602830229519") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "-340282366920938463610948560021444624405") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-340282366920938463574055071874025521135") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "6277101735386680766558048358575174123698671839475922894858") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "6277101735386680766558048358575174123698671839475922894860") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680766217765991654235660198403743896735580169") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680766898330725496112587162046446907691106317") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2041694201525630780669567180148351959046") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "12554203470773361531074402515624717466690883010656074727440") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "6277101735386680766558048358575174123661778351328503791620") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "6277101735386680766558048358575174123698671839475922894866") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680766217765991654235660087723279454478270473") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680766898330725496112587272726911349948416013") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "12554203470773361533116096717150348247360450190804426686486") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "6277101735386680766558048358575174123661778351328503791614") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "6277101735386680766558048358575174123698671839475922894872") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680766217765991654235659977042815012220960777") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680766898330725496112587383407375792205725709") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2041694201525630780669567180148351959046") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "12554203470773361535157790918675979028030017370952778645532") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "6277101735386680766558048358575174123661778351328503791608") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "6277101735386680766558048358575174123698671839475922894878") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343242") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "-6277101735386680766558048358575174123698671839475922894858") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "-6277101735386680766558048358575174123698671839475922894860") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-6277101735386680766558048358575174123661778351328503791626") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680766898330725496112587162046446907691106317") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-12554203470773361531074402515624717466690883010656074727440") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2041694201525630780669567180148351959046") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "-6277101735386680766558048358575174123698671839475922894866") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-6277101735386680766558048358575174123661778351328503791620") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680766898330725496112587272726911349948416013") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680766217765991654235660087723279454478270473") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-12554203470773361533116096717150348247360450190804426686486") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "-6277101735386680766558048358575174123698671839475922894872") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-6277101735386680766558048358575174123661778351328503791614") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680766898330725496112587383407375792205725709") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680766217765991654235659977042815012220960777") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-12554203470773361535157790918675979028030017370952778645532") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2041694201525630780669567180148351959046") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "-6277101735386680766558048358575174123698671839475922894878") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-6277101735386680766558048358575174123661778351328503791608") + self.subTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.subTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551628") + self.subTest(lhs: "18446744073709551629", rhs: "-1", expecting: "18446744073709551630") + self.subTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "14") + self.subTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "36893488147419103244") + self.subTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "12") + self.subTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "36893488147419103246") + self.subTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211445") + self.subTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314703") + self.subTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832568") + self.subTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935826") + self.subTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "6") + self.subTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "36893488147419103252") + self.subTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521141") + self.subTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624399") + self.subTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791614") + self.subTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894872") + self.subTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "0") + self.subTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "36893488147419103258") + self.subTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830837") + self.subTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934095") + self.subTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.subTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853918") + self.subTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "-6") + self.subTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "36893488147419103264") + self.subTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.subTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551630") + self.subTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-18446744073709551628") + self.subTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "-36893488147419103244") + self.subTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "-14") + self.subTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "-36893488147419103246") + self.subTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "-12") + self.subTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314703") + self.subTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211445") + self.subTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935826") + self.subTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832568") + self.subTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "-36893488147419103252") + self.subTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "-6") + self.subTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624399") + self.subTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521141") + self.subTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894872") + self.subTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791614") + self.subTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "-36893488147419103258") + self.subTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "0") + self.subTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934095") + self.subTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830837") + self.subTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853918") + self.subTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750660") + self.subTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "-36893488147419103264") + self.subTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "6") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382465") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382467") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "340282366920938463684735536316282830851") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "340282366920938463721629024463701934081") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "340282366920938463684735536316282830849") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "340282366920938463721629024463701934083") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "221360928884514619392") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "680564733841876927185003631895470145540") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879307475634863869001731") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764856636523970481806713840195643853766663") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "340282366920938463684735536316282830843") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "340282366920938463721629024463701934089") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "680564733841876927295684096337727455236") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235659977042815012220960777") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766898330725496112587383407375792205725709") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "340282366920938463684735536316282830837") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "340282366920938463721629024463701934095") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "680564733841876927406364560779984764932") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440646609995160572919823") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768940024927021743368052974555940557684755") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "340282366920938463684735536316282830831") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "340282366920938463721629024463701934101") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382467") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382465") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "-340282366920938463721629024463701934081") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-340282366920938463684735536316282830851") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "-340282366920938463721629024463701934083") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-340282366920938463684735536316282830849") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "-680564733841876927185003631895470145540") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-221360928884514619392") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764856636523970481806713840195643853766663") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879307475634863869001731") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "-340282366920938463721629024463701934089") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-340282366920938463684735536316282830843") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "-680564733841876927295684096337727455236") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-110680464442257309696") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766898330725496112587383407375792205725709") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235659977042815012220960777") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "-340282366920938463721629024463701934095") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-340282366920938463684735536316282830837") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "-680564733841876927406364560779984764932") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768940024927021743368052974555940557684755") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440646609995160572919823") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "-340282366920938463721629024463701934101") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-340282366920938463684735536316282830831") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "6277101735386680768599742560100804904331345531476855750674") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "6277101735386680768599742560100804904368239019624274853904") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "6277101735386680768599742560100804904368239019624274853906") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680768259460193179866440867970924045087539215") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680768940024927021743367831613627056043065363") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "4083388403051261561339134360296703918092") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "12554203470773361533116096717150348247360450190804426686486") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "6277101735386680768599742560100804904331345531476855750666") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "6277101735386680768599742560100804904368239019624274853912") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680768259460193179866440757290459602830229519") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680768940024927021743367942294091498300375059") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780669567180148351959046") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "12554203470773361535157790918675979028030017370952778645532") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "6277101735386680768599742560100804904331345531476855750660") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "6277101735386680768599742560100804904368239019624274853918") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680768259460193179866440646609995160572919823") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680768940024927021743368052974555940557684755") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "12554203470773361537199485120201609808699584551101130604578") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "6277101735386680768599742560100804904331345531476855750654") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "6277101735386680768599742560100804904368239019624274853924") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302288") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "-6277101735386680768599742560100804904368239019624274853904") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "-6277101735386680768599742560100804904368239019624274853906") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-6277101735386680768599742560100804904331345531476855750672") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680768940024927021743367831613627056043065363") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680768259460193179866440867970924045087539215") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-12554203470773361533116096717150348247360450190804426686486") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-4083388403051261561339134360296703918092") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "-6277101735386680768599742560100804904368239019624274853912") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-6277101735386680768599742560100804904331345531476855750666") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680768940024927021743367942294091498300375059") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680768259460193179866440757290459602830229519") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-12554203470773361535157790918675979028030017370952778645532") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780669567180148351959046") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "-6277101735386680768599742560100804904368239019624274853918") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680768940024927021743368052974555940557684755") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680768259460193179866440646609995160572919823") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-12554203470773361537199485120201609808699584551101130604578") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "-6277101735386680768599742560100804904368239019624274853924") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-6277101735386680768599742560100804904331345531476855750654") + self.subTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.subTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551634") + self.subTest(lhs: "18446744073709551635", rhs: "-1", expecting: "18446744073709551636") + self.subTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "20") + self.subTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "36893488147419103250") + self.subTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "18") + self.subTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "36893488147419103252") + self.subTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211439") + self.subTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314709") + self.subTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832562") + self.subTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935832") + self.subTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "12") + self.subTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "36893488147419103258") + self.subTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521135") + self.subTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624405") + self.subTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791608") + self.subTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894878") + self.subTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "6") + self.subTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "36893488147419103264") + self.subTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830831") + self.subTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934101") + self.subTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750654") + self.subTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853924") + self.subTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "0") + self.subTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "36893488147419103270") + self.subTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.subTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551636") + self.subTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-18446744073709551634") + self.subTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "-36893488147419103250") + self.subTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "-20") + self.subTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "-36893488147419103252") + self.subTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "-18") + self.subTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314709") + self.subTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211439") + self.subTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935832") + self.subTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832562") + self.subTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "-36893488147419103258") + self.subTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "-12") + self.subTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624405") + self.subTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521135") + self.subTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894878") + self.subTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791608") + self.subTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "-36893488147419103264") + self.subTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "-6") + self.subTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934101") + self.subTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830831") + self.subTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853924") + self.subTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750654") + self.subTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "-36893488147419103270") + self.subTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "0") + } + + // MARK: - Mul + + func test_mul_smi_smi() { + self.mulTest(lhs: "0", rhs: "0", expecting: "0") + self.mulTest(lhs: "0", rhs: "1", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1", expecting: "0") + self.mulTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.mulTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.mulTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.mulTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.mulTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.mulTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.mulTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.mulTest(lhs: "0", rhs: "858993463", expecting: "0") + self.mulTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.mulTest(lhs: "0", rhs: "644245099", expecting: "0") + self.mulTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.mulTest(lhs: "0", rhs: "429496735", expecting: "0") + self.mulTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.mulTest(lhs: "0", rhs: "214748371", expecting: "0") + self.mulTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.mulTest(lhs: "1", rhs: "0", expecting: "0") + self.mulTest(lhs: "1", rhs: "1", expecting: "1") + self.mulTest(lhs: "1", rhs: "-1", expecting: "-1") + self.mulTest(lhs: "1", rhs: "2147483647", expecting: "2147483647") + self.mulTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483648") + self.mulTest(lhs: "1", rhs: "1932735283", expecting: "1932735283") + self.mulTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735284") + self.mulTest(lhs: "1", rhs: "1717986919", expecting: "1717986919") + self.mulTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986920") + self.mulTest(lhs: "1", rhs: "1503238555", expecting: "1503238555") + self.mulTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238556") + self.mulTest(lhs: "1", rhs: "1288490191", expecting: "1288490191") + self.mulTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490192") + self.mulTest(lhs: "1", rhs: "1073741827", expecting: "1073741827") + self.mulTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741828") + self.mulTest(lhs: "1", rhs: "858993463", expecting: "858993463") + self.mulTest(lhs: "1", rhs: "-858993464", expecting: "-858993464") + self.mulTest(lhs: "1", rhs: "644245099", expecting: "644245099") + self.mulTest(lhs: "1", rhs: "-644245100", expecting: "-644245100") + self.mulTest(lhs: "1", rhs: "429496735", expecting: "429496735") + self.mulTest(lhs: "1", rhs: "-429496736", expecting: "-429496736") + self.mulTest(lhs: "1", rhs: "214748371", expecting: "214748371") + self.mulTest(lhs: "1", rhs: "-214748372", expecting: "-214748372") + self.mulTest(lhs: "-1", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1", rhs: "1", expecting: "-1") + self.mulTest(lhs: "-1", rhs: "-1", expecting: "1") + self.mulTest(lhs: "-1", rhs: "2147483647", expecting: "-2147483647") + self.mulTest(lhs: "-1", rhs: "-2147483648", expecting: "2147483648") + self.mulTest(lhs: "-1", rhs: "1932735283", expecting: "-1932735283") + self.mulTest(lhs: "-1", rhs: "-1932735284", expecting: "1932735284") + self.mulTest(lhs: "-1", rhs: "1717986919", expecting: "-1717986919") + self.mulTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986920") + self.mulTest(lhs: "-1", rhs: "1503238555", expecting: "-1503238555") + self.mulTest(lhs: "-1", rhs: "-1503238556", expecting: "1503238556") + self.mulTest(lhs: "-1", rhs: "1288490191", expecting: "-1288490191") + self.mulTest(lhs: "-1", rhs: "-1288490192", expecting: "1288490192") + self.mulTest(lhs: "-1", rhs: "1073741827", expecting: "-1073741827") + self.mulTest(lhs: "-1", rhs: "-1073741828", expecting: "1073741828") + self.mulTest(lhs: "-1", rhs: "858993463", expecting: "-858993463") + self.mulTest(lhs: "-1", rhs: "-858993464", expecting: "858993464") + self.mulTest(lhs: "-1", rhs: "644245099", expecting: "-644245099") + self.mulTest(lhs: "-1", rhs: "-644245100", expecting: "644245100") + self.mulTest(lhs: "-1", rhs: "429496735", expecting: "-429496735") + self.mulTest(lhs: "-1", rhs: "-429496736", expecting: "429496736") + self.mulTest(lhs: "-1", rhs: "214748371", expecting: "-214748371") + self.mulTest(lhs: "-1", rhs: "-214748372", expecting: "214748372") + self.mulTest(lhs: "2147483647", rhs: "0", expecting: "0") + self.mulTest(lhs: "2147483647", rhs: "1", expecting: "2147483647") + self.mulTest(lhs: "2147483647", rhs: "-1", expecting: "-2147483647") + self.mulTest(lhs: "2147483647", rhs: "2147483647", expecting: "4611686014132420609") + self.mulTest(lhs: "2147483647", rhs: "-2147483648", expecting: "-4611686016279904256") + self.mulTest(lhs: "2147483647", rhs: "1932735283", expecting: "4150517414222417101") + self.mulTest(lhs: "2147483647", rhs: "-1932735284", expecting: "-4150517416369900748") + self.mulTest(lhs: "2147483647", rhs: "1717986919", expecting: "3689348814312413593") + self.mulTest(lhs: "2147483647", rhs: "-1717986920", expecting: "-3689348816459897240") + self.mulTest(lhs: "2147483647", rhs: "1503238555", expecting: "3228180214402410085") + self.mulTest(lhs: "2147483647", rhs: "-1503238556", expecting: "-3228180216549893732") + self.mulTest(lhs: "2147483647", rhs: "1288490191", expecting: "2767011614492406577") + self.mulTest(lhs: "2147483647", rhs: "-1288490192", expecting: "-2767011616639890224") + self.mulTest(lhs: "2147483647", rhs: "1073741827", expecting: "2305843014582403069") + self.mulTest(lhs: "2147483647", rhs: "-1073741828", expecting: "-2305843016729886716") + self.mulTest(lhs: "2147483647", rhs: "858993463", expecting: "1844674414672399561") + self.mulTest(lhs: "2147483647", rhs: "-858993464", expecting: "-1844674416819883208") + self.mulTest(lhs: "2147483647", rhs: "644245099", expecting: "1383505814762396053") + self.mulTest(lhs: "2147483647", rhs: "-644245100", expecting: "-1383505816909879700") + self.mulTest(lhs: "2147483647", rhs: "429496735", expecting: "922337214852392545") + self.mulTest(lhs: "2147483647", rhs: "-429496736", expecting: "-922337216999876192") + self.mulTest(lhs: "2147483647", rhs: "214748371", expecting: "461168614942389037") + self.mulTest(lhs: "2147483647", rhs: "-214748372", expecting: "-461168617089872684") + self.mulTest(lhs: "-2147483648", rhs: "0", expecting: "0") + self.mulTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483648") + self.mulTest(lhs: "-2147483648", rhs: "-1", expecting: "2147483648") + self.mulTest(lhs: "-2147483648", rhs: "2147483647", expecting: "-4611686016279904256") + self.mulTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "4611686018427387904") + self.mulTest(lhs: "-2147483648", rhs: "1932735283", expecting: "-4150517416155152384") + self.mulTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "4150517418302636032") + self.mulTest(lhs: "-2147483648", rhs: "1717986919", expecting: "-3689348816030400512") + self.mulTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "3689348818177884160") + self.mulTest(lhs: "-2147483648", rhs: "1503238555", expecting: "-3228180215905648640") + self.mulTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "3228180218053132288") + self.mulTest(lhs: "-2147483648", rhs: "1288490191", expecting: "-2767011615780896768") + self.mulTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "2767011617928380416") + self.mulTest(lhs: "-2147483648", rhs: "1073741827", expecting: "-2305843015656144896") + self.mulTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "2305843017803628544") + self.mulTest(lhs: "-2147483648", rhs: "858993463", expecting: "-1844674415531393024") + self.mulTest(lhs: "-2147483648", rhs: "-858993464", expecting: "1844674417678876672") + self.mulTest(lhs: "-2147483648", rhs: "644245099", expecting: "-1383505815406641152") + self.mulTest(lhs: "-2147483648", rhs: "-644245100", expecting: "1383505817554124800") + self.mulTest(lhs: "-2147483648", rhs: "429496735", expecting: "-922337215281889280") + self.mulTest(lhs: "-2147483648", rhs: "-429496736", expecting: "922337217429372928") + self.mulTest(lhs: "-2147483648", rhs: "214748371", expecting: "-461168615157137408") + self.mulTest(lhs: "-2147483648", rhs: "-214748372", expecting: "461168617304621056") + self.mulTest(lhs: "1932735283", rhs: "0", expecting: "0") + self.mulTest(lhs: "1932735283", rhs: "1", expecting: "1932735283") + self.mulTest(lhs: "1932735283", rhs: "-1", expecting: "-1932735283") + self.mulTest(lhs: "1932735283", rhs: "2147483647", expecting: "4150517414222417101") + self.mulTest(lhs: "1932735283", rhs: "-2147483648", expecting: "-4150517416155152384") + self.mulTest(lhs: "1932735283", rhs: "1932735283", expecting: "3735465674153090089") + self.mulTest(lhs: "1932735283", rhs: "-1932735284", expecting: "-3735465676085825372") + self.mulTest(lhs: "1932735283", rhs: "1717986919", expecting: "3320413934083763077") + self.mulTest(lhs: "1932735283", rhs: "-1717986920", expecting: "-3320413936016498360") + self.mulTest(lhs: "1932735283", rhs: "1503238555", expecting: "2905362194014436065") + self.mulTest(lhs: "1932735283", rhs: "-1503238556", expecting: "-2905362195947171348") + self.mulTest(lhs: "1932735283", rhs: "1288490191", expecting: "2490310453945109053") + self.mulTest(lhs: "1932735283", rhs: "-1288490192", expecting: "-2490310455877844336") + self.mulTest(lhs: "1932735283", rhs: "1073741827", expecting: "2075258713875782041") + self.mulTest(lhs: "1932735283", rhs: "-1073741828", expecting: "-2075258715808517324") + self.mulTest(lhs: "1932735283", rhs: "858993463", expecting: "1660206973806455029") + self.mulTest(lhs: "1932735283", rhs: "-858993464", expecting: "-1660206975739190312") + self.mulTest(lhs: "1932735283", rhs: "644245099", expecting: "1245155233737128017") + self.mulTest(lhs: "1932735283", rhs: "-644245100", expecting: "-1245155235669863300") + self.mulTest(lhs: "1932735283", rhs: "429496735", expecting: "830103493667801005") + self.mulTest(lhs: "1932735283", rhs: "-429496736", expecting: "-830103495600536288") + self.mulTest(lhs: "1932735283", rhs: "214748371", expecting: "415051753598473993") + self.mulTest(lhs: "1932735283", rhs: "-214748372", expecting: "-415051755531209276") + self.mulTest(lhs: "-1932735284", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735284") + self.mulTest(lhs: "-1932735284", rhs: "-1", expecting: "1932735284") + self.mulTest(lhs: "-1932735284", rhs: "2147483647", expecting: "-4150517416369900748") + self.mulTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "4150517418302636032") + self.mulTest(lhs: "-1932735284", rhs: "1932735283", expecting: "-3735465676085825372") + self.mulTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "3735465678018560656") + self.mulTest(lhs: "-1932735284", rhs: "1717986919", expecting: "-3320413935801749996") + self.mulTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "3320413937734485280") + self.mulTest(lhs: "-1932735284", rhs: "1503238555", expecting: "-2905362195517674620") + self.mulTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "2905362197450409904") + self.mulTest(lhs: "-1932735284", rhs: "1288490191", expecting: "-2490310455233599244") + self.mulTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "2490310457166334528") + self.mulTest(lhs: "-1932735284", rhs: "1073741827", expecting: "-2075258714949523868") + self.mulTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "2075258716882259152") + self.mulTest(lhs: "-1932735284", rhs: "858993463", expecting: "-1660206974665448492") + self.mulTest(lhs: "-1932735284", rhs: "-858993464", expecting: "1660206976598183776") + self.mulTest(lhs: "-1932735284", rhs: "644245099", expecting: "-1245155234381373116") + self.mulTest(lhs: "-1932735284", rhs: "-644245100", expecting: "1245155236314108400") + self.mulTest(lhs: "-1932735284", rhs: "429496735", expecting: "-830103494097297740") + self.mulTest(lhs: "-1932735284", rhs: "-429496736", expecting: "830103496030033024") + self.mulTest(lhs: "-1932735284", rhs: "214748371", expecting: "-415051753813222364") + self.mulTest(lhs: "-1932735284", rhs: "-214748372", expecting: "415051755745957648") + self.mulTest(lhs: "1717986919", rhs: "0", expecting: "0") + self.mulTest(lhs: "1717986919", rhs: "1", expecting: "1717986919") + self.mulTest(lhs: "1717986919", rhs: "-1", expecting: "-1717986919") + self.mulTest(lhs: "1717986919", rhs: "2147483647", expecting: "3689348814312413593") + self.mulTest(lhs: "1717986919", rhs: "-2147483648", expecting: "-3689348816030400512") + self.mulTest(lhs: "1717986919", rhs: "1932735283", expecting: "3320413934083763077") + self.mulTest(lhs: "1717986919", rhs: "-1932735284", expecting: "-3320413935801749996") + self.mulTest(lhs: "1717986919", rhs: "1717986919", expecting: "2951479053855112561") + self.mulTest(lhs: "1717986919", rhs: "-1717986920", expecting: "-2951479055573099480") + self.mulTest(lhs: "1717986919", rhs: "1503238555", expecting: "2582544173626462045") + self.mulTest(lhs: "1717986919", rhs: "-1503238556", expecting: "-2582544175344448964") + self.mulTest(lhs: "1717986919", rhs: "1288490191", expecting: "2213609293397811529") + self.mulTest(lhs: "1717986919", rhs: "-1288490192", expecting: "-2213609295115798448") + self.mulTest(lhs: "1717986919", rhs: "1073741827", expecting: "1844674413169161013") + self.mulTest(lhs: "1717986919", rhs: "-1073741828", expecting: "-1844674414887147932") + self.mulTest(lhs: "1717986919", rhs: "858993463", expecting: "1475739532940510497") + self.mulTest(lhs: "1717986919", rhs: "-858993464", expecting: "-1475739534658497416") + self.mulTest(lhs: "1717986919", rhs: "644245099", expecting: "1106804652711859981") + self.mulTest(lhs: "1717986919", rhs: "-644245100", expecting: "-1106804654429846900") + self.mulTest(lhs: "1717986919", rhs: "429496735", expecting: "737869772483209465") + self.mulTest(lhs: "1717986919", rhs: "-429496736", expecting: "-737869774201196384") + self.mulTest(lhs: "1717986919", rhs: "214748371", expecting: "368934892254558949") + self.mulTest(lhs: "1717986919", rhs: "-214748372", expecting: "-368934893972545868") + self.mulTest(lhs: "-1717986920", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986920") + self.mulTest(lhs: "-1717986920", rhs: "-1", expecting: "1717986920") + self.mulTest(lhs: "-1717986920", rhs: "2147483647", expecting: "-3689348816459897240") + self.mulTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "3689348818177884160") + self.mulTest(lhs: "-1717986920", rhs: "1932735283", expecting: "-3320413936016498360") + self.mulTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "3320413937734485280") + self.mulTest(lhs: "-1717986920", rhs: "1717986919", expecting: "-2951479055573099480") + self.mulTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "2951479057291086400") + self.mulTest(lhs: "-1717986920", rhs: "1503238555", expecting: "-2582544175129700600") + self.mulTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "2582544176847687520") + self.mulTest(lhs: "-1717986920", rhs: "1288490191", expecting: "-2213609294686301720") + self.mulTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "2213609296404288640") + self.mulTest(lhs: "-1717986920", rhs: "1073741827", expecting: "-1844674414242902840") + self.mulTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "1844674415960889760") + self.mulTest(lhs: "-1717986920", rhs: "858993463", expecting: "-1475739533799503960") + self.mulTest(lhs: "-1717986920", rhs: "-858993464", expecting: "1475739535517490880") + self.mulTest(lhs: "-1717986920", rhs: "644245099", expecting: "-1106804653356105080") + self.mulTest(lhs: "-1717986920", rhs: "-644245100", expecting: "1106804655074092000") + self.mulTest(lhs: "-1717986920", rhs: "429496735", expecting: "-737869772912706200") + self.mulTest(lhs: "-1717986920", rhs: "-429496736", expecting: "737869774630693120") + self.mulTest(lhs: "-1717986920", rhs: "214748371", expecting: "-368934892469307320") + self.mulTest(lhs: "-1717986920", rhs: "-214748372", expecting: "368934894187294240") + self.mulTest(lhs: "1503238555", rhs: "0", expecting: "0") + self.mulTest(lhs: "1503238555", rhs: "1", expecting: "1503238555") + self.mulTest(lhs: "1503238555", rhs: "-1", expecting: "-1503238555") + self.mulTest(lhs: "1503238555", rhs: "2147483647", expecting: "3228180214402410085") + self.mulTest(lhs: "1503238555", rhs: "-2147483648", expecting: "-3228180215905648640") + self.mulTest(lhs: "1503238555", rhs: "1932735283", expecting: "2905362194014436065") + self.mulTest(lhs: "1503238555", rhs: "-1932735284", expecting: "-2905362195517674620") + self.mulTest(lhs: "1503238555", rhs: "1717986919", expecting: "2582544173626462045") + self.mulTest(lhs: "1503238555", rhs: "-1717986920", expecting: "-2582544175129700600") + self.mulTest(lhs: "1503238555", rhs: "1503238555", expecting: "2259726153238488025") + self.mulTest(lhs: "1503238555", rhs: "-1503238556", expecting: "-2259726154741726580") + self.mulTest(lhs: "1503238555", rhs: "1288490191", expecting: "1936908132850514005") + self.mulTest(lhs: "1503238555", rhs: "-1288490192", expecting: "-1936908134353752560") + self.mulTest(lhs: "1503238555", rhs: "1073741827", expecting: "1614090112462539985") + self.mulTest(lhs: "1503238555", rhs: "-1073741828", expecting: "-1614090113965778540") + self.mulTest(lhs: "1503238555", rhs: "858993463", expecting: "1291272092074565965") + self.mulTest(lhs: "1503238555", rhs: "-858993464", expecting: "-1291272093577804520") + self.mulTest(lhs: "1503238555", rhs: "644245099", expecting: "968454071686591945") + self.mulTest(lhs: "1503238555", rhs: "-644245100", expecting: "-968454073189830500") + self.mulTest(lhs: "1503238555", rhs: "429496735", expecting: "645636051298617925") + self.mulTest(lhs: "1503238555", rhs: "-429496736", expecting: "-645636052801856480") + self.mulTest(lhs: "1503238555", rhs: "214748371", expecting: "322818030910643905") + self.mulTest(lhs: "1503238555", rhs: "-214748372", expecting: "-322818032413882460") + self.mulTest(lhs: "-1503238556", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238556") + self.mulTest(lhs: "-1503238556", rhs: "-1", expecting: "1503238556") + self.mulTest(lhs: "-1503238556", rhs: "2147483647", expecting: "-3228180216549893732") + self.mulTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "3228180218053132288") + self.mulTest(lhs: "-1503238556", rhs: "1932735283", expecting: "-2905362195947171348") + self.mulTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "2905362197450409904") + self.mulTest(lhs: "-1503238556", rhs: "1717986919", expecting: "-2582544175344448964") + self.mulTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "2582544176847687520") + self.mulTest(lhs: "-1503238556", rhs: "1503238555", expecting: "-2259726154741726580") + self.mulTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "2259726156244965136") + self.mulTest(lhs: "-1503238556", rhs: "1288490191", expecting: "-1936908134139004196") + self.mulTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "1936908135642242752") + self.mulTest(lhs: "-1503238556", rhs: "1073741827", expecting: "-1614090113536281812") + self.mulTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "1614090115039520368") + self.mulTest(lhs: "-1503238556", rhs: "858993463", expecting: "-1291272092933559428") + self.mulTest(lhs: "-1503238556", rhs: "-858993464", expecting: "1291272094436797984") + self.mulTest(lhs: "-1503238556", rhs: "644245099", expecting: "-968454072330837044") + self.mulTest(lhs: "-1503238556", rhs: "-644245100", expecting: "968454073834075600") + self.mulTest(lhs: "-1503238556", rhs: "429496735", expecting: "-645636051728114660") + self.mulTest(lhs: "-1503238556", rhs: "-429496736", expecting: "645636053231353216") + self.mulTest(lhs: "-1503238556", rhs: "214748371", expecting: "-322818031125392276") + self.mulTest(lhs: "-1503238556", rhs: "-214748372", expecting: "322818032628630832") + self.mulTest(lhs: "1288490191", rhs: "0", expecting: "0") + self.mulTest(lhs: "1288490191", rhs: "1", expecting: "1288490191") + self.mulTest(lhs: "1288490191", rhs: "-1", expecting: "-1288490191") + self.mulTest(lhs: "1288490191", rhs: "2147483647", expecting: "2767011614492406577") + self.mulTest(lhs: "1288490191", rhs: "-2147483648", expecting: "-2767011615780896768") + self.mulTest(lhs: "1288490191", rhs: "1932735283", expecting: "2490310453945109053") + self.mulTest(lhs: "1288490191", rhs: "-1932735284", expecting: "-2490310455233599244") + self.mulTest(lhs: "1288490191", rhs: "1717986919", expecting: "2213609293397811529") + self.mulTest(lhs: "1288490191", rhs: "-1717986920", expecting: "-2213609294686301720") + self.mulTest(lhs: "1288490191", rhs: "1503238555", expecting: "1936908132850514005") + self.mulTest(lhs: "1288490191", rhs: "-1503238556", expecting: "-1936908134139004196") + self.mulTest(lhs: "1288490191", rhs: "1288490191", expecting: "1660206972303216481") + self.mulTest(lhs: "1288490191", rhs: "-1288490192", expecting: "-1660206973591706672") + self.mulTest(lhs: "1288490191", rhs: "1073741827", expecting: "1383505811755918957") + self.mulTest(lhs: "1288490191", rhs: "-1073741828", expecting: "-1383505813044409148") + self.mulTest(lhs: "1288490191", rhs: "858993463", expecting: "1106804651208621433") + self.mulTest(lhs: "1288490191", rhs: "-858993464", expecting: "-1106804652497111624") + self.mulTest(lhs: "1288490191", rhs: "644245099", expecting: "830103490661323909") + self.mulTest(lhs: "1288490191", rhs: "-644245100", expecting: "-830103491949814100") + self.mulTest(lhs: "1288490191", rhs: "429496735", expecting: "553402330114026385") + self.mulTest(lhs: "1288490191", rhs: "-429496736", expecting: "-553402331402516576") + self.mulTest(lhs: "1288490191", rhs: "214748371", expecting: "276701169566728861") + self.mulTest(lhs: "1288490191", rhs: "-214748372", expecting: "-276701170855219052") + self.mulTest(lhs: "-1288490192", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490192") + self.mulTest(lhs: "-1288490192", rhs: "-1", expecting: "1288490192") + self.mulTest(lhs: "-1288490192", rhs: "2147483647", expecting: "-2767011616639890224") + self.mulTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "2767011617928380416") + self.mulTest(lhs: "-1288490192", rhs: "1932735283", expecting: "-2490310455877844336") + self.mulTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "2490310457166334528") + self.mulTest(lhs: "-1288490192", rhs: "1717986919", expecting: "-2213609295115798448") + self.mulTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "2213609296404288640") + self.mulTest(lhs: "-1288490192", rhs: "1503238555", expecting: "-1936908134353752560") + self.mulTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "1936908135642242752") + self.mulTest(lhs: "-1288490192", rhs: "1288490191", expecting: "-1660206973591706672") + self.mulTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "1660206974880196864") + self.mulTest(lhs: "-1288490192", rhs: "1073741827", expecting: "-1383505812829660784") + self.mulTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "1383505814118150976") + self.mulTest(lhs: "-1288490192", rhs: "858993463", expecting: "-1106804652067614896") + self.mulTest(lhs: "-1288490192", rhs: "-858993464", expecting: "1106804653356105088") + self.mulTest(lhs: "-1288490192", rhs: "644245099", expecting: "-830103491305569008") + self.mulTest(lhs: "-1288490192", rhs: "-644245100", expecting: "830103492594059200") + self.mulTest(lhs: "-1288490192", rhs: "429496735", expecting: "-553402330543523120") + self.mulTest(lhs: "-1288490192", rhs: "-429496736", expecting: "553402331832013312") + self.mulTest(lhs: "-1288490192", rhs: "214748371", expecting: "-276701169781477232") + self.mulTest(lhs: "-1288490192", rhs: "-214748372", expecting: "276701171069967424") + self.mulTest(lhs: "1073741827", rhs: "0", expecting: "0") + self.mulTest(lhs: "1073741827", rhs: "1", expecting: "1073741827") + self.mulTest(lhs: "1073741827", rhs: "-1", expecting: "-1073741827") + self.mulTest(lhs: "1073741827", rhs: "2147483647", expecting: "2305843014582403069") + self.mulTest(lhs: "1073741827", rhs: "-2147483648", expecting: "-2305843015656144896") + self.mulTest(lhs: "1073741827", rhs: "1932735283", expecting: "2075258713875782041") + self.mulTest(lhs: "1073741827", rhs: "-1932735284", expecting: "-2075258714949523868") + self.mulTest(lhs: "1073741827", rhs: "1717986919", expecting: "1844674413169161013") + self.mulTest(lhs: "1073741827", rhs: "-1717986920", expecting: "-1844674414242902840") + self.mulTest(lhs: "1073741827", rhs: "1503238555", expecting: "1614090112462539985") + self.mulTest(lhs: "1073741827", rhs: "-1503238556", expecting: "-1614090113536281812") + self.mulTest(lhs: "1073741827", rhs: "1288490191", expecting: "1383505811755918957") + self.mulTest(lhs: "1073741827", rhs: "-1288490192", expecting: "-1383505812829660784") + self.mulTest(lhs: "1073741827", rhs: "1073741827", expecting: "1152921511049297929") + self.mulTest(lhs: "1073741827", rhs: "-1073741828", expecting: "-1152921512123039756") + self.mulTest(lhs: "1073741827", rhs: "858993463", expecting: "922337210342676901") + self.mulTest(lhs: "1073741827", rhs: "-858993464", expecting: "-922337211416418728") + self.mulTest(lhs: "1073741827", rhs: "644245099", expecting: "691752909636055873") + self.mulTest(lhs: "1073741827", rhs: "-644245100", expecting: "-691752910709797700") + self.mulTest(lhs: "1073741827", rhs: "429496735", expecting: "461168608929434845") + self.mulTest(lhs: "1073741827", rhs: "-429496736", expecting: "-461168610003176672") + self.mulTest(lhs: "1073741827", rhs: "214748371", expecting: "230584308222813817") + self.mulTest(lhs: "1073741827", rhs: "-214748372", expecting: "-230584309296555644") + self.mulTest(lhs: "-1073741828", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741828") + self.mulTest(lhs: "-1073741828", rhs: "-1", expecting: "1073741828") + self.mulTest(lhs: "-1073741828", rhs: "2147483647", expecting: "-2305843016729886716") + self.mulTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "2305843017803628544") + self.mulTest(lhs: "-1073741828", rhs: "1932735283", expecting: "-2075258715808517324") + self.mulTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "2075258716882259152") + self.mulTest(lhs: "-1073741828", rhs: "1717986919", expecting: "-1844674414887147932") + self.mulTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "1844674415960889760") + self.mulTest(lhs: "-1073741828", rhs: "1503238555", expecting: "-1614090113965778540") + self.mulTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "1614090115039520368") + self.mulTest(lhs: "-1073741828", rhs: "1288490191", expecting: "-1383505813044409148") + self.mulTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "1383505814118150976") + self.mulTest(lhs: "-1073741828", rhs: "1073741827", expecting: "-1152921512123039756") + self.mulTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "1152921513196781584") + self.mulTest(lhs: "-1073741828", rhs: "858993463", expecting: "-922337211201670364") + self.mulTest(lhs: "-1073741828", rhs: "-858993464", expecting: "922337212275412192") + self.mulTest(lhs: "-1073741828", rhs: "644245099", expecting: "-691752910280300972") + self.mulTest(lhs: "-1073741828", rhs: "-644245100", expecting: "691752911354042800") + self.mulTest(lhs: "-1073741828", rhs: "429496735", expecting: "-461168609358931580") + self.mulTest(lhs: "-1073741828", rhs: "-429496736", expecting: "461168610432673408") + self.mulTest(lhs: "-1073741828", rhs: "214748371", expecting: "-230584308437562188") + self.mulTest(lhs: "-1073741828", rhs: "-214748372", expecting: "230584309511304016") + self.mulTest(lhs: "858993463", rhs: "0", expecting: "0") + self.mulTest(lhs: "858993463", rhs: "1", expecting: "858993463") + self.mulTest(lhs: "858993463", rhs: "-1", expecting: "-858993463") + self.mulTest(lhs: "858993463", rhs: "2147483647", expecting: "1844674414672399561") + self.mulTest(lhs: "858993463", rhs: "-2147483648", expecting: "-1844674415531393024") + self.mulTest(lhs: "858993463", rhs: "1932735283", expecting: "1660206973806455029") + self.mulTest(lhs: "858993463", rhs: "-1932735284", expecting: "-1660206974665448492") + self.mulTest(lhs: "858993463", rhs: "1717986919", expecting: "1475739532940510497") + self.mulTest(lhs: "858993463", rhs: "-1717986920", expecting: "-1475739533799503960") + self.mulTest(lhs: "858993463", rhs: "1503238555", expecting: "1291272092074565965") + self.mulTest(lhs: "858993463", rhs: "-1503238556", expecting: "-1291272092933559428") + self.mulTest(lhs: "858993463", rhs: "1288490191", expecting: "1106804651208621433") + self.mulTest(lhs: "858993463", rhs: "-1288490192", expecting: "-1106804652067614896") + self.mulTest(lhs: "858993463", rhs: "1073741827", expecting: "922337210342676901") + self.mulTest(lhs: "858993463", rhs: "-1073741828", expecting: "-922337211201670364") + self.mulTest(lhs: "858993463", rhs: "858993463", expecting: "737869769476732369") + self.mulTest(lhs: "858993463", rhs: "-858993464", expecting: "-737869770335725832") + self.mulTest(lhs: "858993463", rhs: "644245099", expecting: "553402328610787837") + self.mulTest(lhs: "858993463", rhs: "-644245100", expecting: "-553402329469781300") + self.mulTest(lhs: "858993463", rhs: "429496735", expecting: "368934887744843305") + self.mulTest(lhs: "858993463", rhs: "-429496736", expecting: "-368934888603836768") + self.mulTest(lhs: "858993463", rhs: "214748371", expecting: "184467446878898773") + self.mulTest(lhs: "858993463", rhs: "-214748372", expecting: "-184467447737892236") + self.mulTest(lhs: "-858993464", rhs: "0", expecting: "0") + self.mulTest(lhs: "-858993464", rhs: "1", expecting: "-858993464") + self.mulTest(lhs: "-858993464", rhs: "-1", expecting: "858993464") + self.mulTest(lhs: "-858993464", rhs: "2147483647", expecting: "-1844674416819883208") + self.mulTest(lhs: "-858993464", rhs: "-2147483648", expecting: "1844674417678876672") + self.mulTest(lhs: "-858993464", rhs: "1932735283", expecting: "-1660206975739190312") + self.mulTest(lhs: "-858993464", rhs: "-1932735284", expecting: "1660206976598183776") + self.mulTest(lhs: "-858993464", rhs: "1717986919", expecting: "-1475739534658497416") + self.mulTest(lhs: "-858993464", rhs: "-1717986920", expecting: "1475739535517490880") + self.mulTest(lhs: "-858993464", rhs: "1503238555", expecting: "-1291272093577804520") + self.mulTest(lhs: "-858993464", rhs: "-1503238556", expecting: "1291272094436797984") + self.mulTest(lhs: "-858993464", rhs: "1288490191", expecting: "-1106804652497111624") + self.mulTest(lhs: "-858993464", rhs: "-1288490192", expecting: "1106804653356105088") + self.mulTest(lhs: "-858993464", rhs: "1073741827", expecting: "-922337211416418728") + self.mulTest(lhs: "-858993464", rhs: "-1073741828", expecting: "922337212275412192") + self.mulTest(lhs: "-858993464", rhs: "858993463", expecting: "-737869770335725832") + self.mulTest(lhs: "-858993464", rhs: "-858993464", expecting: "737869771194719296") + self.mulTest(lhs: "-858993464", rhs: "644245099", expecting: "-553402329255032936") + self.mulTest(lhs: "-858993464", rhs: "-644245100", expecting: "553402330114026400") + self.mulTest(lhs: "-858993464", rhs: "429496735", expecting: "-368934888174340040") + self.mulTest(lhs: "-858993464", rhs: "-429496736", expecting: "368934889033333504") + self.mulTest(lhs: "-858993464", rhs: "214748371", expecting: "-184467447093647144") + self.mulTest(lhs: "-858993464", rhs: "-214748372", expecting: "184467447952640608") + self.mulTest(lhs: "644245099", rhs: "0", expecting: "0") + self.mulTest(lhs: "644245099", rhs: "1", expecting: "644245099") + self.mulTest(lhs: "644245099", rhs: "-1", expecting: "-644245099") + self.mulTest(lhs: "644245099", rhs: "2147483647", expecting: "1383505814762396053") + self.mulTest(lhs: "644245099", rhs: "-2147483648", expecting: "-1383505815406641152") + self.mulTest(lhs: "644245099", rhs: "1932735283", expecting: "1245155233737128017") + self.mulTest(lhs: "644245099", rhs: "-1932735284", expecting: "-1245155234381373116") + self.mulTest(lhs: "644245099", rhs: "1717986919", expecting: "1106804652711859981") + self.mulTest(lhs: "644245099", rhs: "-1717986920", expecting: "-1106804653356105080") + self.mulTest(lhs: "644245099", rhs: "1503238555", expecting: "968454071686591945") + self.mulTest(lhs: "644245099", rhs: "-1503238556", expecting: "-968454072330837044") + self.mulTest(lhs: "644245099", rhs: "1288490191", expecting: "830103490661323909") + self.mulTest(lhs: "644245099", rhs: "-1288490192", expecting: "-830103491305569008") + self.mulTest(lhs: "644245099", rhs: "1073741827", expecting: "691752909636055873") + self.mulTest(lhs: "644245099", rhs: "-1073741828", expecting: "-691752910280300972") + self.mulTest(lhs: "644245099", rhs: "858993463", expecting: "553402328610787837") + self.mulTest(lhs: "644245099", rhs: "-858993464", expecting: "-553402329255032936") + self.mulTest(lhs: "644245099", rhs: "644245099", expecting: "415051747585519801") + self.mulTest(lhs: "644245099", rhs: "-644245100", expecting: "-415051748229764900") + self.mulTest(lhs: "644245099", rhs: "429496735", expecting: "276701166560251765") + self.mulTest(lhs: "644245099", rhs: "-429496736", expecting: "-276701167204496864") + self.mulTest(lhs: "644245099", rhs: "214748371", expecting: "138350585534983729") + self.mulTest(lhs: "644245099", rhs: "-214748372", expecting: "-138350586179228828") + self.mulTest(lhs: "-644245100", rhs: "0", expecting: "0") + self.mulTest(lhs: "-644245100", rhs: "1", expecting: "-644245100") + self.mulTest(lhs: "-644245100", rhs: "-1", expecting: "644245100") + self.mulTest(lhs: "-644245100", rhs: "2147483647", expecting: "-1383505816909879700") + self.mulTest(lhs: "-644245100", rhs: "-2147483648", expecting: "1383505817554124800") + self.mulTest(lhs: "-644245100", rhs: "1932735283", expecting: "-1245155235669863300") + self.mulTest(lhs: "-644245100", rhs: "-1932735284", expecting: "1245155236314108400") + self.mulTest(lhs: "-644245100", rhs: "1717986919", expecting: "-1106804654429846900") + self.mulTest(lhs: "-644245100", rhs: "-1717986920", expecting: "1106804655074092000") + self.mulTest(lhs: "-644245100", rhs: "1503238555", expecting: "-968454073189830500") + self.mulTest(lhs: "-644245100", rhs: "-1503238556", expecting: "968454073834075600") + self.mulTest(lhs: "-644245100", rhs: "1288490191", expecting: "-830103491949814100") + self.mulTest(lhs: "-644245100", rhs: "-1288490192", expecting: "830103492594059200") + self.mulTest(lhs: "-644245100", rhs: "1073741827", expecting: "-691752910709797700") + self.mulTest(lhs: "-644245100", rhs: "-1073741828", expecting: "691752911354042800") + self.mulTest(lhs: "-644245100", rhs: "858993463", expecting: "-553402329469781300") + self.mulTest(lhs: "-644245100", rhs: "-858993464", expecting: "553402330114026400") + self.mulTest(lhs: "-644245100", rhs: "644245099", expecting: "-415051748229764900") + self.mulTest(lhs: "-644245100", rhs: "-644245100", expecting: "415051748874010000") + self.mulTest(lhs: "-644245100", rhs: "429496735", expecting: "-276701166989748500") + self.mulTest(lhs: "-644245100", rhs: "-429496736", expecting: "276701167633993600") + self.mulTest(lhs: "-644245100", rhs: "214748371", expecting: "-138350585749732100") + self.mulTest(lhs: "-644245100", rhs: "-214748372", expecting: "138350586393977200") + self.mulTest(lhs: "429496735", rhs: "0", expecting: "0") + self.mulTest(lhs: "429496735", rhs: "1", expecting: "429496735") + self.mulTest(lhs: "429496735", rhs: "-1", expecting: "-429496735") + self.mulTest(lhs: "429496735", rhs: "2147483647", expecting: "922337214852392545") + self.mulTest(lhs: "429496735", rhs: "-2147483648", expecting: "-922337215281889280") + self.mulTest(lhs: "429496735", rhs: "1932735283", expecting: "830103493667801005") + self.mulTest(lhs: "429496735", rhs: "-1932735284", expecting: "-830103494097297740") + self.mulTest(lhs: "429496735", rhs: "1717986919", expecting: "737869772483209465") + self.mulTest(lhs: "429496735", rhs: "-1717986920", expecting: "-737869772912706200") + self.mulTest(lhs: "429496735", rhs: "1503238555", expecting: "645636051298617925") + self.mulTest(lhs: "429496735", rhs: "-1503238556", expecting: "-645636051728114660") + self.mulTest(lhs: "429496735", rhs: "1288490191", expecting: "553402330114026385") + self.mulTest(lhs: "429496735", rhs: "-1288490192", expecting: "-553402330543523120") + self.mulTest(lhs: "429496735", rhs: "1073741827", expecting: "461168608929434845") + self.mulTest(lhs: "429496735", rhs: "-1073741828", expecting: "-461168609358931580") + self.mulTest(lhs: "429496735", rhs: "858993463", expecting: "368934887744843305") + self.mulTest(lhs: "429496735", rhs: "-858993464", expecting: "-368934888174340040") + self.mulTest(lhs: "429496735", rhs: "644245099", expecting: "276701166560251765") + self.mulTest(lhs: "429496735", rhs: "-644245100", expecting: "-276701166989748500") + self.mulTest(lhs: "429496735", rhs: "429496735", expecting: "184467445375660225") + self.mulTest(lhs: "429496735", rhs: "-429496736", expecting: "-184467445805156960") + self.mulTest(lhs: "429496735", rhs: "214748371", expecting: "92233724191068685") + self.mulTest(lhs: "429496735", rhs: "-214748372", expecting: "-92233724620565420") + self.mulTest(lhs: "-429496736", rhs: "0", expecting: "0") + self.mulTest(lhs: "-429496736", rhs: "1", expecting: "-429496736") + self.mulTest(lhs: "-429496736", rhs: "-1", expecting: "429496736") + self.mulTest(lhs: "-429496736", rhs: "2147483647", expecting: "-922337216999876192") + self.mulTest(lhs: "-429496736", rhs: "-2147483648", expecting: "922337217429372928") + self.mulTest(lhs: "-429496736", rhs: "1932735283", expecting: "-830103495600536288") + self.mulTest(lhs: "-429496736", rhs: "-1932735284", expecting: "830103496030033024") + self.mulTest(lhs: "-429496736", rhs: "1717986919", expecting: "-737869774201196384") + self.mulTest(lhs: "-429496736", rhs: "-1717986920", expecting: "737869774630693120") + self.mulTest(lhs: "-429496736", rhs: "1503238555", expecting: "-645636052801856480") + self.mulTest(lhs: "-429496736", rhs: "-1503238556", expecting: "645636053231353216") + self.mulTest(lhs: "-429496736", rhs: "1288490191", expecting: "-553402331402516576") + self.mulTest(lhs: "-429496736", rhs: "-1288490192", expecting: "553402331832013312") + self.mulTest(lhs: "-429496736", rhs: "1073741827", expecting: "-461168610003176672") + self.mulTest(lhs: "-429496736", rhs: "-1073741828", expecting: "461168610432673408") + self.mulTest(lhs: "-429496736", rhs: "858993463", expecting: "-368934888603836768") + self.mulTest(lhs: "-429496736", rhs: "-858993464", expecting: "368934889033333504") + self.mulTest(lhs: "-429496736", rhs: "644245099", expecting: "-276701167204496864") + self.mulTest(lhs: "-429496736", rhs: "-644245100", expecting: "276701167633993600") + self.mulTest(lhs: "-429496736", rhs: "429496735", expecting: "-184467445805156960") + self.mulTest(lhs: "-429496736", rhs: "-429496736", expecting: "184467446234653696") + self.mulTest(lhs: "-429496736", rhs: "214748371", expecting: "-92233724405817056") + self.mulTest(lhs: "-429496736", rhs: "-214748372", expecting: "92233724835313792") + self.mulTest(lhs: "214748371", rhs: "0", expecting: "0") + self.mulTest(lhs: "214748371", rhs: "1", expecting: "214748371") + self.mulTest(lhs: "214748371", rhs: "-1", expecting: "-214748371") + self.mulTest(lhs: "214748371", rhs: "2147483647", expecting: "461168614942389037") + self.mulTest(lhs: "214748371", rhs: "-2147483648", expecting: "-461168615157137408") + self.mulTest(lhs: "214748371", rhs: "1932735283", expecting: "415051753598473993") + self.mulTest(lhs: "214748371", rhs: "-1932735284", expecting: "-415051753813222364") + self.mulTest(lhs: "214748371", rhs: "1717986919", expecting: "368934892254558949") + self.mulTest(lhs: "214748371", rhs: "-1717986920", expecting: "-368934892469307320") + self.mulTest(lhs: "214748371", rhs: "1503238555", expecting: "322818030910643905") + self.mulTest(lhs: "214748371", rhs: "-1503238556", expecting: "-322818031125392276") + self.mulTest(lhs: "214748371", rhs: "1288490191", expecting: "276701169566728861") + self.mulTest(lhs: "214748371", rhs: "-1288490192", expecting: "-276701169781477232") + self.mulTest(lhs: "214748371", rhs: "1073741827", expecting: "230584308222813817") + self.mulTest(lhs: "214748371", rhs: "-1073741828", expecting: "-230584308437562188") + self.mulTest(lhs: "214748371", rhs: "858993463", expecting: "184467446878898773") + self.mulTest(lhs: "214748371", rhs: "-858993464", expecting: "-184467447093647144") + self.mulTest(lhs: "214748371", rhs: "644245099", expecting: "138350585534983729") + self.mulTest(lhs: "214748371", rhs: "-644245100", expecting: "-138350585749732100") + self.mulTest(lhs: "214748371", rhs: "429496735", expecting: "92233724191068685") + self.mulTest(lhs: "214748371", rhs: "-429496736", expecting: "-92233724405817056") + self.mulTest(lhs: "214748371", rhs: "214748371", expecting: "46116862847153641") + self.mulTest(lhs: "214748371", rhs: "-214748372", expecting: "-46116863061902012") + self.mulTest(lhs: "-214748372", rhs: "0", expecting: "0") + self.mulTest(lhs: "-214748372", rhs: "1", expecting: "-214748372") + self.mulTest(lhs: "-214748372", rhs: "-1", expecting: "214748372") + self.mulTest(lhs: "-214748372", rhs: "2147483647", expecting: "-461168617089872684") + self.mulTest(lhs: "-214748372", rhs: "-2147483648", expecting: "461168617304621056") + self.mulTest(lhs: "-214748372", rhs: "1932735283", expecting: "-415051755531209276") + self.mulTest(lhs: "-214748372", rhs: "-1932735284", expecting: "415051755745957648") + self.mulTest(lhs: "-214748372", rhs: "1717986919", expecting: "-368934893972545868") + self.mulTest(lhs: "-214748372", rhs: "-1717986920", expecting: "368934894187294240") + self.mulTest(lhs: "-214748372", rhs: "1503238555", expecting: "-322818032413882460") + self.mulTest(lhs: "-214748372", rhs: "-1503238556", expecting: "322818032628630832") + self.mulTest(lhs: "-214748372", rhs: "1288490191", expecting: "-276701170855219052") + self.mulTest(lhs: "-214748372", rhs: "-1288490192", expecting: "276701171069967424") + self.mulTest(lhs: "-214748372", rhs: "1073741827", expecting: "-230584309296555644") + self.mulTest(lhs: "-214748372", rhs: "-1073741828", expecting: "230584309511304016") + self.mulTest(lhs: "-214748372", rhs: "858993463", expecting: "-184467447737892236") + self.mulTest(lhs: "-214748372", rhs: "-858993464", expecting: "184467447952640608") + self.mulTest(lhs: "-214748372", rhs: "644245099", expecting: "-138350586179228828") + self.mulTest(lhs: "-214748372", rhs: "-644245100", expecting: "138350586393977200") + self.mulTest(lhs: "-214748372", rhs: "429496735", expecting: "-92233724620565420") + self.mulTest(lhs: "-214748372", rhs: "-429496736", expecting: "92233724835313792") + self.mulTest(lhs: "-214748372", rhs: "214748371", expecting: "-46116863061902012") + self.mulTest(lhs: "-214748372", rhs: "-214748372", expecting: "46116863276650384") + } + + func test_mul_smi_heap() { + self.mulTest(lhs: "0", rhs: "0", expecting: "0") + self.mulTest(lhs: "0", rhs: "1", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.mulTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.mulTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.mulTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.mulTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.mulTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.mulTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.mulTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.mulTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.mulTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.mulTest(lhs: "1", rhs: "0", expecting: "0") + self.mulTest(lhs: "1", rhs: "1", expecting: "1") + self.mulTest(lhs: "1", rhs: "-1", expecting: "-1") + self.mulTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.mulTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.mulTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.mulTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.mulTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.mulTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.mulTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.mulTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.mulTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.mulTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.mulTest(lhs: "-1", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1", rhs: "1", expecting: "-1") + self.mulTest(lhs: "-1", rhs: "-1", expecting: "1") + self.mulTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-18446744073709551615") + self.mulTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "18446744073709551615") + self.mulTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-18446744073709551617") + self.mulTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "18446744073709551617") + self.mulTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-18446744073709551623") + self.mulTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "18446744073709551623") + self.mulTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-18446744073709551629") + self.mulTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "18446744073709551629") + self.mulTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-18446744073709551635") + self.mulTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "18446744073709551635") + self.mulTest(lhs: "2147483647", rhs: "0", expecting: "0") + self.mulTest(lhs: "2147483647", rhs: "1", expecting: "2147483647") + self.mulTest(lhs: "2147483647", rhs: "-1", expecting: "-2147483647") + self.mulTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "39614081238685424720914939905") + self.mulTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "-39614081238685424720914939905") + self.mulTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "39614081238685424725209907199") + self.mulTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "-39614081238685424725209907199") + self.mulTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "730750818325169092220518034133452327123555450878") + self.mulTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "-730750818325169092220518034133452327123555450878") + self.mulTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "13479973327298218163408328416324364097933099619718779176167841726459") + self.mulTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-13479973327298218163408328416324364097933099619718779176167841726459") + self.mulTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "39614081238685424738094809081") + self.mulTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "-39614081238685424738094809081") + self.mulTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "730750818325169092458202521565564875461929992190") + self.mulTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "-730750818325169092458202521565564875461929992190") + self.mulTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "13479973327298218167792833326275378650780838849655268042219540447221") + self.mulTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-13479973327298218167792833326275378650780838849655268042219540447221") + self.mulTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "39614081238685424750979710963") + self.mulTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "-39614081238685424750979710963") + self.mulTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "730750818325169092695887008997677423800304533502") + self.mulTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "-730750818325169092695887008997677423800304533502") + self.mulTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "13479973327298218172177338236226393203628578079591756908271239167983") + self.mulTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-13479973327298218172177338236226393203628578079591756908271239167983") + self.mulTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "39614081238685424763864612845") + self.mulTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "-39614081238685424763864612845") + self.mulTest(lhs: "-2147483648", rhs: "0", expecting: "0") + self.mulTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483648") + self.mulTest(lhs: "-2147483648", rhs: "-1", expecting: "2147483648") + self.mulTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "-39614081257132168794624491520") + self.mulTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "39614081257132168794624491520") + self.mulTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "-39614081257132168798919458816") + self.mulTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "39614081257132168798919458816") + self.mulTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "-730750818665451459141456497615273678629033213952") + self.mulTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "730750818665451459141456497615273678629033213952") + self.mulTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-13479973333575319898795009180840718254982642962729437091421703110656") + self.mulTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "13479973333575319898795009180840718254982642962729437091421703110656") + self.mulTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "-39614081257132168811804360704") + self.mulTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "39614081257132168811804360704") + self.mulTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "-730750818665451459379140985158066691409665064960") + self.mulTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "730750818665451459379140985158066691409665064960") + self.mulTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-13479973333575319903179514092833427009356012973335493137621753790464") + self.mulTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "13479973333575319903179514092833427009356012973335493137621753790464") + self.mulTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "-39614081257132168824689262592") + self.mulTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "39614081257132168824689262592") + self.mulTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "-730750818665451459616825472700859704190296915968") + self.mulTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "730750818665451459616825472700859704190296915968") + self.mulTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-13479973333575319907564019004826135763729382983941549183821804470272") + self.mulTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "13479973333575319907564019004826135763729382983941549183821804470272") + self.mulTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "-39614081257132168837574164480") + self.mulTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "39614081257132168837574164480") + self.mulTest(lhs: "1932735283", rhs: "0", expecting: "0") + self.mulTest(lhs: "1932735283", rhs: "1", expecting: "1932735283") + self.mulTest(lhs: "1932735283", rhs: "-1", expecting: "-1932735283") + self.mulTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "35652673127729603100420132045") + self.mulTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "-35652673127729603100420132045") + self.mulTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "35652673127729603104285602611") + self.mulTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "-35652673127729603104285602611") + self.mulTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "657675736730849839843123155157382040465034339942") + self.mulTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "-657675736730849839843123155157382040465034339942") + self.mulTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "12131975998962367561838172109853375598074469997854361799228760522751") + self.mulTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-12131975998962367561838172109853375598074469997854361799228760522751") + self.mulTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "35652673127729603115882014309") + self.mulTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "-35652673127729603115882014309") + self.mulTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "657675736730849840057039193923759659079151543910") + self.mulTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "-657675736730849840057039193923759659079151543910") + self.mulTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "12131975998962367565784226530238474636705376851265898804779135742769") + self.mulTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-12131975998962367565784226530238474636705376851265898804779135742769") + self.mulTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "35652673127729603127478426007") + self.mulTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "-35652673127729603127478426007") + self.mulTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "657675736730849840270955232690137277693268747878") + self.mulTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "-657675736730849840270955232690137277693268747878") + self.mulTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "12131975998962367569730280950623573675336283704677435810329510962787") + self.mulTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-12131975998962367569730280950623573675336283704677435810329510962787") + self.mulTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "35652673127729603139074837705") + self.mulTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "-35652673127729603139074837705") + self.mulTest(lhs: "-1932735284", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735284") + self.mulTest(lhs: "-1932735284", rhs: "-1", expecting: "1932735284") + self.mulTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "-35652673146176347174129683660") + self.mulTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "35652673146176347174129683660") + self.mulTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "-35652673146176347177995154228") + self.mulTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "35652673146176347177995154228") + self.mulTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "-657675737071132206764061618639203391970512103016") + self.mulTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "657675737071132206764061618639203391970512103016") + self.mulTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-12131976005239469297224852874369729755124013340865019714482621906948") + self.mulTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "12131976005239469297224852874369729755124013340865019714482621906948") + self.mulTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "-35652673146176347189591565932") + self.mulTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "35652673146176347189591565932") + self.mulTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "-657675737071132206977977657516261475026886616680") + self.mulTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "657675737071132206977977657516261475026886616680") + self.mulTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-12131976005239469301170907296796522995280550974946123900181349086012") + self.mulTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "12131976005239469301170907296796522995280550974946123900181349086012") + self.mulTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "-35652673146176347201187977636") + self.mulTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "35652673146176347201187977636") + self.mulTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "-657675737071132207191893696393319558083261130344") + self.mulTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "657675737071132207191893696393319558083261130344") + self.mulTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-12131976005239469305116961719223316235437088609027228085880076265076") + self.mulTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "12131976005239469305116961719223316235437088609027228085880076265076") + self.mulTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "-35652673146176347212784389340") + self.mulTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "35652673146176347212784389340") + self.mulTest(lhs: "1717986919", rhs: "0", expecting: "0") + self.mulTest(lhs: "1717986919", rhs: "1", expecting: "1717986919") + self.mulTest(lhs: "1717986919", rhs: "-1", expecting: "-1717986919") + self.mulTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "31691265016773781479925324185") + self.mulTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "-31691265016773781479925324185") + self.mulTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "31691265016773781483361298023") + self.mulTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "-31691265016773781483361298023") + self.mulTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "584600655136530587465728276181311753806513229006") + self.mulTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "-584600655136530587465728276181311753806513229006") + self.mulTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "10783978670626516960268015803382387098215840375989944422289679319043") + self.mulTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-10783978670626516960268015803382387098215840375989944422289679319043") + self.mulTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "31691265016773781493669219537") + self.mulTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "-31691265016773781493669219537") + self.mulTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "584600655136530587655875866281954442696373095630") + self.mulTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "-584600655136530587655875866281954442696373095630") + self.mulTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "10783978670626516963775619734201570622629914852876529567338731038317") + self.mulTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-10783978670626516963775619734201570622629914852876529567338731038317") + self.mulTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "31691265016773781503977141051") + self.mulTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "-31691265016773781503977141051") + self.mulTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "584600655136530587846023456382597131586232962254") + self.mulTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "-584600655136530587846023456382597131586232962254") + self.mulTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "10783978670626516967283223665020754147043989329763114712387782757591") + self.mulTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-10783978670626516967283223665020754147043989329763114712387782757591") + self.mulTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "31691265016773781514285062565") + self.mulTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "-31691265016773781514285062565") + self.mulTest(lhs: "-1717986920", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986920") + self.mulTest(lhs: "-1717986920", rhs: "-1", expecting: "1717986920") + self.mulTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "-31691265035220525553634875800") + self.mulTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "31691265035220525553634875800") + self.mulTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "-31691265035220525557070849640") + self.mulTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "31691265035220525557070849640") + self.mulTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "-584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "-31691265035220525567378771160") + self.mulTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "31691265035220525567378771160") + self.mulTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "-584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "-31691265035220525577686692680") + self.mulTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "31691265035220525577686692680") + self.mulTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "-584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "-31691265035220525587994614200") + self.mulTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "31691265035220525587994614200") + self.mulTest(lhs: "1503238555", rhs: "0", expecting: "0") + self.mulTest(lhs: "1503238555", rhs: "1", expecting: "1503238555") + self.mulTest(lhs: "1503238555", rhs: "-1", expecting: "-1503238555") + self.mulTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "27729856905817959859430516325") + self.mulTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "-27729856905817959859430516325") + self.mulTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "27729856905817959862436993435") + self.mulTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "-27729856905817959862436993435") + self.mulTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "511525573542211335088333397205241467147992118070") + self.mulTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "-511525573542211335088333397205241467147992118070") + self.mulTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "9435981342290666358697859496911398598357210754125527045350598115335") + self.mulTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-9435981342290666358697859496911398598357210754125527045350598115335") + self.mulTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "27729856905817959871456424765") + self.mulTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "-27729856905817959871456424765") + self.mulTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "511525573542211335254712538640149226313594647350") + self.mulTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "-511525573542211335254712538640149226313594647350") + self.mulTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "9435981342290666361767012938164666608554452854487160329898326333865") + self.mulTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-9435981342290666361767012938164666608554452854487160329898326333865") + self.mulTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "27729856905817959880475856095") + self.mulTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "-27729856905817959880475856095") + self.mulTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "511525573542211335421091680075056985479197176630") + self.mulTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "-511525573542211335421091680075056985479197176630") + self.mulTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "9435981342290666364836166379417934618751694954848793614446054552395") + self.mulTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-9435981342290666364836166379417934618751694954848793614446054552395") + self.mulTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "27729856905817959889495287425") + self.mulTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "-27729856905817959889495287425") + self.mulTest(lhs: "-1503238556", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238556") + self.mulTest(lhs: "-1503238556", rhs: "-1", expecting: "1503238556") + self.mulTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "-27729856924264703933140067940") + self.mulTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "27729856924264703933140067940") + self.mulTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "-27729856924264703936146545052") + self.mulTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "27729856924264703936146545052") + self.mulTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "-511525573882493702009271860687062818653469881144") + self.mulTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "511525573882493702009271860687062818653469881144") + self.mulTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-9435981348567768094084540261427752755406754097136184960604459499532") + self.mulTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "9435981348567768094084540261427752755406754097136184960604459499532") + self.mulTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "-27729856924264703945165976388") + self.mulTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "27729856924264703945165976388") + self.mulTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "-511525573882493702175651002232651042261329720120") + self.mulTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "511525573882493702175651002232651042261329720120") + self.mulTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-9435981348567768097153693704722714967129626978167385425300539677108") + self.mulTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "9435981348567768097153693704722714967129626978167385425300539677108") + self.mulTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "-27729856924264703954185407724") + self.mulTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "27729856924264703954185407724") + self.mulTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "-511525573882493702342030143778239265869189559096") + self.mulTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "511525573882493702342030143778239265869189559096") + self.mulTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-9435981348567768100222847148017677178852499859198585889996619854684") + self.mulTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "9435981348567768100222847148017677178852499859198585889996619854684") + self.mulTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "-27729856924264703963204839060") + self.mulTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "27729856924264703963204839060") + self.mulTest(lhs: "1288490191", rhs: "0", expecting: "0") + self.mulTest(lhs: "1288490191", rhs: "1", expecting: "1288490191") + self.mulTest(lhs: "1288490191", rhs: "-1", expecting: "-1288490191") + self.mulTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "23768448794862138238935708465") + self.mulTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "-23768448794862138238935708465") + self.mulTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "23768448794862138241512688847") + self.mulTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "-23768448794862138241512688847") + self.mulTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "438450491947892082710938518229171180489471007134") + self.mulTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "-438450491947892082710938518229171180489471007134") + self.mulTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "8087984013954815757127703190440410098498581132261109668411516911627") + self.mulTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-8087984013954815757127703190440410098498581132261109668411516911627") + self.mulTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "23768448794862138249243629993") + self.mulTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "-23768448794862138249243629993") + self.mulTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "438450491947892082853549210998344009930816199070") + self.mulTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "-438450491947892082853549210998344009930816199070") + self.mulTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "8087984013954815759758406142127762594478990856097791092457921629413") + self.mulTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-8087984013954815759758406142127762594478990856097791092457921629413") + self.mulTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "23768448794862138256974571139") + self.mulTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "-23768448794862138256974571139") + self.mulTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "438450491947892082996159903767516839372161391006") + self.mulTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "-438450491947892082996159903767516839372161391006") + self.mulTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "8087984013954815762389109093815115090459400579934472516504326347199") + self.mulTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-8087984013954815762389109093815115090459400579934472516504326347199") + self.mulTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "23768448794862138264705512285") + self.mulTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "-23768448794862138264705512285") + self.mulTest(lhs: "-1288490192", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490192") + self.mulTest(lhs: "-1288490192", rhs: "-1", expecting: "1288490192") + self.mulTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "-23768448813308882312645260080") + self.mulTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "23768448813308882312645260080") + self.mulTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "-23768448813308882315222240464") + self.mulTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "23768448813308882315222240464") + self.mulTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "-438450492288174449631876981710992531994948770208") + self.mulTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "438450492288174449631876981710992531994948770208") + self.mulTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-8087984020231917492514383954956764255548124475271767583665378295824") + self.mulTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "8087984020231917492514383954956764255548124475271767583665378295824") + self.mulTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "-23768448813308882322953181616") + self.mulTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "23768448813308882322953181616") + self.mulTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "-438450492288174449774487674590845825878551271840") + self.mulTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "438450492288174449774487674590845825878551271840") + self.mulTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-8087984020231917495145086908685810953054164979778016187860134972656") + self.mulTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "8087984020231917495145086908685810953054164979778016187860134972656") + self.mulTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "-23768448813308882330684122768") + self.mulTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "23768448813308882330684122768") + self.mulTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "-438450492288174449917098367470699119762153773472") + self.mulTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "438450492288174449917098367470699119762153773472") + self.mulTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-8087984020231917497775789862414857650560205484284264792054891649488") + self.mulTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "8087984020231917497775789862414857650560205484284264792054891649488") + self.mulTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "-23768448813308882338415063920") + self.mulTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "23768448813308882338415063920") + self.mulTest(lhs: "1073741827", rhs: "0", expecting: "0") + self.mulTest(lhs: "1073741827", rhs: "1", expecting: "1073741827") + self.mulTest(lhs: "1073741827", rhs: "-1", expecting: "-1073741827") + self.mulTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "19807040683906316618440900605") + self.mulTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "-19807040683906316618440900605") + self.mulTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "19807040683906316620588384259") + self.mulTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "-19807040683906316620588384259") + self.mulTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "365375410353572830333543639253100893830949896198") + self.mulTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "-365375410353572830333543639253100893830949896198") + self.mulTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6739986685618965155557546883969421598639951510396692291472435707919") + self.mulTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6739986685618965155557546883969421598639951510396692291472435707919") + self.mulTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "19807040683906316627030835221") + self.mulTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "-19807040683906316627030835221") + self.mulTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "365375410353572830452385883356538793548037750790") + self.mulTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "-365375410353572830452385883356538793548037750790") + self.mulTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6739986685618965157749799346090858580403528857708421855017516924961") + self.mulTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6739986685618965157749799346090858580403528857708421855017516924961") + self.mulTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "19807040683906316633473286183") + self.mulTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "-19807040683906316633473286183") + self.mulTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "365375410353572830571228127459976693265125605382") + self.mulTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "-365375410353572830571228127459976693265125605382") + self.mulTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6739986685618965159942051808212295562167106205020151418562598142003") + self.mulTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6739986685618965159942051808212295562167106205020151418562598142003") + self.mulTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "19807040683906316639915737145") + self.mulTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "-19807040683906316639915737145") + self.mulTest(lhs: "-1073741828", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741828") + self.mulTest(lhs: "-1073741828", rhs: "-1", expecting: "1073741828") + self.mulTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "-19807040702353060692150452220") + self.mulTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "19807040702353060692150452220") + self.mulTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "-19807040702353060694297935876") + self.mulTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "19807040702353060694297935876") + self.mulTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "-365375410693855197254482102734922245336427659272") + self.mulTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "365375410693855197254482102734922245336427659272") + self.mulTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6739986691896066890944227648485775755689494853407350206726297092116") + self.mulTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6739986691896066890944227648485775755689494853407350206726297092116") + self.mulTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "-19807040702353060700740386844") + self.mulTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "19807040702353060700740386844") + self.mulTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "-365375410693855197373324346949040609495772823560") + self.mulTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "365375410693855197373324346949040609495772823560") + self.mulTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6739986691896066893136480112648906938978702981388646950419730268204") + self.mulTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6739986691896066893136480112648906938978702981388646950419730268204") + self.mulTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "-19807040702353060707182837812") + self.mulTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "19807040702353060707182837812") + self.mulTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "-365375410693855197492166591163158973655117987848") + self.mulTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "365375410693855197492166591163158973655117987848") + self.mulTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6739986691896066895328732576812038122267911109369943694113163444292") + self.mulTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6739986691896066895328732576812038122267911109369943694113163444292") + self.mulTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "-19807040702353060713625288780") + self.mulTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "19807040702353060713625288780") + self.mulTest(lhs: "858993463", rhs: "0", expecting: "0") + self.mulTest(lhs: "858993463", rhs: "1", expecting: "858993463") + self.mulTest(lhs: "858993463", rhs: "-1", expecting: "-858993463") + self.mulTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "15845632572950494997946092745") + self.mulTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "-15845632572950494997946092745") + self.mulTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "15845632572950494999664079671") + self.mulTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "-15845632572950494999664079671") + self.mulTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "292300328759253577956148760277030607172428785262") + self.mulTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "-292300328759253577956148760277030607172428785262") + self.mulTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5391989357283114553987390577498433098781321888532274914533354504211") + self.mulTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5391989357283114553987390577498433098781321888532274914533354504211") + self.mulTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "15845632572950495004818040449") + self.mulTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "-15845632572950495004818040449") + self.mulTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "292300328759253578051222555714733577165259302510") + self.mulTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "-292300328759253578051222555714733577165259302510") + self.mulTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "5391989357283114555741192550053954566328066859319052617577112220509") + self.mulTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-5391989357283114555741192550053954566328066859319052617577112220509") + self.mulTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "15845632572950495009972001227") + self.mulTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "-15845632572950495009972001227") + self.mulTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "292300328759253578146296351152436547158089819758") + self.mulTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "-292300328759253578146296351152436547158089819758") + self.mulTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "5391989357283114557494994522609476033874811830105830320620869936807") + self.mulTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-5391989357283114557494994522609476033874811830105830320620869936807") + self.mulTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "15845632572950495015125962005") + self.mulTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "-15845632572950495015125962005") + self.mulTest(lhs: "-858993464", rhs: "0", expecting: "0") + self.mulTest(lhs: "-858993464", rhs: "1", expecting: "-858993464") + self.mulTest(lhs: "-858993464", rhs: "-1", expecting: "858993464") + self.mulTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "-15845632591397239071655644360") + self.mulTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "15845632591397239071655644360") + self.mulTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "-15845632591397239073373631288") + self.mulTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "15845632591397239073373631288") + self.mulTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "-292300329099535944877087223758851958677906548336") + self.mulTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "292300329099535944877087223758851958677906548336") + self.mulTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-5391989363560216289374071342014787255830865231542932829787215888408") + self.mulTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "5391989363560216289374071342014787255830865231542932829787215888408") + self.mulTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "-15845632591397239078527592072") + self.mulTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "15845632591397239078527592072") + self.mulTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "-292300329099535944972161019307235393112994375280") + self.mulTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "292300329099535944972161019307235393112994375280") + self.mulTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-5391989363560216291127873316612002924903240982999277712979325563752") + self.mulTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "5391989363560216291127873316612002924903240982999277712979325563752") + self.mulTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "-15845632591397239083681552856") + self.mulTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "15845632591397239083681552856") + self.mulTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "-292300329099535945067234814855618827548082202224") + self.mulTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "292300329099535945067234814855618827548082202224") + self.mulTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-5391989363560216292881675291209218593975616734455622596171435239096") + self.mulTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "5391989363560216292881675291209218593975616734455622596171435239096") + self.mulTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "-15845632591397239088835513640") + self.mulTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "15845632591397239088835513640") + self.mulTest(lhs: "644245099", rhs: "0", expecting: "0") + self.mulTest(lhs: "644245099", rhs: "1", expecting: "644245099") + self.mulTest(lhs: "644245099", rhs: "-1", expecting: "-644245099") + self.mulTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "11884224461994673377451284885") + self.mulTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "-11884224461994673377451284885") + self.mulTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "11884224461994673378739775083") + self.mulTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "-11884224461994673378739775083") + self.mulTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "219225247164934325578753881300960320513907674326") + self.mulTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "-219225247164934325578753881300960320513907674326") + self.mulTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "4043992028947263952417234271027444598922692266667857537594273300503") + self.mulTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-4043992028947263952417234271027444598922692266667857537594273300503") + self.mulTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "11884224461994673382605245677") + self.mulTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "-11884224461994673382605245677") + self.mulTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "219225247164934325650059228072928360782480854230") + self.mulTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "-219225247164934325650059228072928360782480854230") + self.mulTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "4043992028947263953732585754017050552252604860929683380136707516057") + self.mulTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-4043992028947263953732585754017050552252604860929683380136707516057") + self.mulTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "11884224461994673386470716271") + self.mulTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "-11884224461994673386470716271") + self.mulTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "219225247164934325721364574844896401051054034134") + self.mulTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "-219225247164934325721364574844896401051054034134") + self.mulTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "4043992028947263955047937237006656505582517455191509222679141731611") + self.mulTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-4043992028947263955047937237006656505582517455191509222679141731611") + self.mulTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "11884224461994673390336186865") + self.mulTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "-11884224461994673390336186865") + self.mulTest(lhs: "-644245100", rhs: "0", expecting: "0") + self.mulTest(lhs: "-644245100", rhs: "1", expecting: "-644245100") + self.mulTest(lhs: "-644245100", rhs: "-1", expecting: "644245100") + self.mulTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "-11884224480441417451160836500") + self.mulTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "11884224480441417451160836500") + self.mulTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "-11884224480441417452449326700") + self.mulTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "11884224480441417452449326700") + self.mulTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "-219225247505216692499692344782781672019385437400") + self.mulTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "219225247505216692499692344782781672019385437400") + self.mulTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-4043992035224365687803915035543798755972235609678515452848134684700") + self.mulTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "4043992035224365687803915035543798755972235609678515452848134684700") + self.mulTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "-11884224480441417456314797300") + self.mulTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "11884224480441417456314797300") + self.mulTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "-219225247505216692570997691665430176730215927000") + self.mulTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "219225247505216692570997691665430176730215927000") + self.mulTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-4043992035224365689119266520575098910827778984609908475538920859300") + self.mulTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "4043992035224365689119266520575098910827778984609908475538920859300") + self.mulTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "-11884224480441417460180267900") + self.mulTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "11884224480441417460180267900") + self.mulTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "-219225247505216692642303038548078681441046416600") + self.mulTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "219225247505216692642303038548078681441046416600") + self.mulTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-4043992035224365690434618005606399065683322359541301498229707033900") + self.mulTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "4043992035224365690434618005606399065683322359541301498229707033900") + self.mulTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "-11884224480441417464045738500") + self.mulTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "11884224480441417464045738500") + self.mulTest(lhs: "429496735", rhs: "0", expecting: "0") + self.mulTest(lhs: "429496735", rhs: "1", expecting: "429496735") + self.mulTest(lhs: "429496735", rhs: "-1", expecting: "-429496735") + self.mulTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "7922816351038851756956477025") + self.mulTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "-7922816351038851756956477025") + self.mulTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "7922816351038851757815470495") + self.mulTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "-7922816351038851757815470495") + self.mulTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "146150165570615073201359002324890033855386563390") + self.mulTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "-146150165570615073201359002324890033855386563390") + self.mulTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2695994700611413350847077964556456099064062644803440160655192096795") + self.mulTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2695994700611413350847077964556456099064062644803440160655192096795") + self.mulTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "7922816351038851760392450905") + self.mulTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "-7922816351038851760392450905") + self.mulTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "146150165570615073248895900431123144399702405950") + self.mulTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "-146150165570615073248895900431123144399702405950") + self.mulTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2695994700611413351723978957980146538177142862540314142696302811605") + self.mulTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2695994700611413351723978957980146538177142862540314142696302811605") + self.mulTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "7922816351038851762969431315") + self.mulTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "-7922816351038851762969431315") + self.mulTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "146150165570615073296432798537356254944018248510") + self.mulTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "-146150165570615073296432798537356254944018248510") + self.mulTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2695994700611413352600879951403836977290223080277188124737413526415") + self.mulTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2695994700611413352600879951403836977290223080277188124737413526415") + self.mulTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "7922816351038851765546411725") + self.mulTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "-7922816351038851765546411725") + self.mulTest(lhs: "-429496736", rhs: "0", expecting: "0") + self.mulTest(lhs: "-429496736", rhs: "1", expecting: "-429496736") + self.mulTest(lhs: "-429496736", rhs: "-1", expecting: "429496736") + self.mulTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "-7922816369485595830666028640") + self.mulTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "7922816369485595830666028640") + self.mulTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "-7922816369485595831525022112") + self.mulTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "7922816369485595831525022112") + self.mulTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "-146150165910897440122297465806711385360864326464") + self.mulTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "146150165910897440122297465806711385360864326464") + self.mulTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2695994706888515086233758729072810256113605987814098075909053480992") + self.mulTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2695994706888515086233758729072810256113605987814098075909053480992") + self.mulTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "-7922816369485595834102002528") + self.mulTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "7922816369485595834102002528") + self.mulTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "-146150165910897440169834364023624960347437478720") + self.mulTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "146150165910897440169834364023624960347437478720") + self.mulTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2695994706888515087110659724538194896752316986220539238098516154848") + self.mulTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2695994706888515087110659724538194896752316986220539238098516154848") + self.mulTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "-7922816369485595836678982944") + self.mulTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "7922816369485595836678982944") + self.mulTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "-146150165910897440217371262240538535334010630976") + self.mulTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "146150165910897440217371262240538535334010630976") + self.mulTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2695994706888515087987560720003579537391027984626980400287978828704") + self.mulTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2695994706888515087987560720003579537391027984626980400287978828704") + self.mulTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "-7922816369485595839255963360") + self.mulTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "7922816369485595839255963360") + self.mulTest(lhs: "214748371", rhs: "0", expecting: "0") + self.mulTest(lhs: "214748371", rhs: "1", expecting: "214748371") + self.mulTest(lhs: "214748371", rhs: "-1", expecting: "-214748371") + self.mulTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "3961408240083030136461669165") + self.mulTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "-3961408240083030136461669165") + self.mulTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "3961408240083030136891165907") + self.mulTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "-3961408240083030136891165907") + self.mulTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "73075083976295820823964123348819747196865452454") + self.mulTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "-73075083976295820823964123348819747196865452454") + self.mulTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1347997372275562749276921658085467599205433022939022783716110893087") + self.mulTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1347997372275562749276921658085467599205433022939022783716110893087") + self.mulTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "3961408240083030138179656133") + self.mulTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "-3961408240083030138179656133") + self.mulTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "73075083976295820847732572789317928016923957670") + self.mulTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "-73075083976295820847732572789317928016923957670") + self.mulTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1347997372275562749715372161943242524101680864150944905255898107153") + self.mulTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1347997372275562749715372161943242524101680864150944905255898107153") + self.mulTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "3961408240083030139468146359") + self.mulTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "-3961408240083030139468146359") + self.mulTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "73075083976295820871501022229816108836982462886") + self.mulTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "-73075083976295820871501022229816108836982462886") + self.mulTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1347997372275562750153822665801017448997928705362867026795685321219") + self.mulTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1347997372275562750153822665801017448997928705362867026795685321219") + self.mulTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "3961408240083030140756636585") + self.mulTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "-3961408240083030140756636585") + self.mulTest(lhs: "-214748372", rhs: "0", expecting: "0") + self.mulTest(lhs: "-214748372", rhs: "1", expecting: "-214748372") + self.mulTest(lhs: "-214748372", rhs: "-1", expecting: "214748372") + self.mulTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "-3961408258529774210171220780") + self.mulTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "3961408258529774210171220780") + self.mulTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "-3961408258529774210600717524") + self.mulTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "3961408258529774210600717524") + self.mulTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "-73075084316578187744902586830641098702343215528") + self.mulTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "73075084316578187744902586830641098702343215528") + self.mulTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1347997378552664484663602422601821756254976365949680698969972277284") + self.mulTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1347997378552664484663602422601821756254976365949680698969972277284") + self.mulTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "-3961408258529774211889207756") + self.mulTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "3961408258529774211889207756") + self.mulTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "-73075084316578187768671036381819743964659030440") + self.mulTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "73075084316578187768671036381819743964659030440") + self.mulTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1347997378552664485102052928501290882676854987831170000658111450396") + self.mulTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1347997378552664485102052928501290882676854987831170000658111450396") + self.mulTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "-3961408258529774213177697988") + self.mulTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "3961408258529774213177697988") + self.mulTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "-73075084316578187792439485932998389226974845352") + self.mulTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "73075084316578187792439485932998389226974845352") + self.mulTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1347997378552664485540503434400760009098733609712659302346250623508") + self.mulTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1347997378552664485540503434400760009098733609712659302346250623508") + self.mulTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "-3961408258529774214466188220") + self.mulTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "3961408258529774214466188220") + } + + func test_mul_heap_smi() { + self.mulTest(lhs: "0", rhs: "0", expecting: "0") + self.mulTest(lhs: "0", rhs: "1", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1", expecting: "0") + self.mulTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.mulTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.mulTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.mulTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.mulTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.mulTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.mulTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.mulTest(lhs: "0", rhs: "858993463", expecting: "0") + self.mulTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.mulTest(lhs: "0", rhs: "644245099", expecting: "0") + self.mulTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.mulTest(lhs: "0", rhs: "429496735", expecting: "0") + self.mulTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.mulTest(lhs: "0", rhs: "214748371", expecting: "0") + self.mulTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.mulTest(lhs: "1", rhs: "0", expecting: "0") + self.mulTest(lhs: "1", rhs: "1", expecting: "1") + self.mulTest(lhs: "1", rhs: "-1", expecting: "-1") + self.mulTest(lhs: "1", rhs: "2147483647", expecting: "2147483647") + self.mulTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483648") + self.mulTest(lhs: "1", rhs: "1932735283", expecting: "1932735283") + self.mulTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735284") + self.mulTest(lhs: "1", rhs: "1717986919", expecting: "1717986919") + self.mulTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986920") + self.mulTest(lhs: "1", rhs: "1503238555", expecting: "1503238555") + self.mulTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238556") + self.mulTest(lhs: "1", rhs: "1288490191", expecting: "1288490191") + self.mulTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490192") + self.mulTest(lhs: "1", rhs: "1073741827", expecting: "1073741827") + self.mulTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741828") + self.mulTest(lhs: "1", rhs: "858993463", expecting: "858993463") + self.mulTest(lhs: "1", rhs: "-858993464", expecting: "-858993464") + self.mulTest(lhs: "1", rhs: "644245099", expecting: "644245099") + self.mulTest(lhs: "1", rhs: "-644245100", expecting: "-644245100") + self.mulTest(lhs: "1", rhs: "429496735", expecting: "429496735") + self.mulTest(lhs: "1", rhs: "-429496736", expecting: "-429496736") + self.mulTest(lhs: "1", rhs: "214748371", expecting: "214748371") + self.mulTest(lhs: "1", rhs: "-214748372", expecting: "-214748372") + self.mulTest(lhs: "-1", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1", rhs: "1", expecting: "-1") + self.mulTest(lhs: "-1", rhs: "-1", expecting: "1") + self.mulTest(lhs: "-1", rhs: "2147483647", expecting: "-2147483647") + self.mulTest(lhs: "-1", rhs: "-2147483648", expecting: "2147483648") + self.mulTest(lhs: "-1", rhs: "1932735283", expecting: "-1932735283") + self.mulTest(lhs: "-1", rhs: "-1932735284", expecting: "1932735284") + self.mulTest(lhs: "-1", rhs: "1717986919", expecting: "-1717986919") + self.mulTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986920") + self.mulTest(lhs: "-1", rhs: "1503238555", expecting: "-1503238555") + self.mulTest(lhs: "-1", rhs: "-1503238556", expecting: "1503238556") + self.mulTest(lhs: "-1", rhs: "1288490191", expecting: "-1288490191") + self.mulTest(lhs: "-1", rhs: "-1288490192", expecting: "1288490192") + self.mulTest(lhs: "-1", rhs: "1073741827", expecting: "-1073741827") + self.mulTest(lhs: "-1", rhs: "-1073741828", expecting: "1073741828") + self.mulTest(lhs: "-1", rhs: "858993463", expecting: "-858993463") + self.mulTest(lhs: "-1", rhs: "-858993464", expecting: "858993464") + self.mulTest(lhs: "-1", rhs: "644245099", expecting: "-644245099") + self.mulTest(lhs: "-1", rhs: "-644245100", expecting: "644245100") + self.mulTest(lhs: "-1", rhs: "429496735", expecting: "-429496735") + self.mulTest(lhs: "-1", rhs: "-429496736", expecting: "429496736") + self.mulTest(lhs: "-1", rhs: "214748371", expecting: "-214748371") + self.mulTest(lhs: "-1", rhs: "-214748372", expecting: "214748372") + self.mulTest(lhs: "18446744073709551615", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551615") + self.mulTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-18446744073709551615") + self.mulTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "39614081238685424720914939905") + self.mulTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "-39614081257132168794624491520") + self.mulTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "35652673127729603100420132045") + self.mulTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "-35652673146176347174129683660") + self.mulTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "31691265016773781479925324185") + self.mulTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-31691265035220525553634875800") + self.mulTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "27729856905817959859430516325") + self.mulTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "-27729856924264703933140067940") + self.mulTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "23768448794862138238935708465") + self.mulTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "-23768448813308882312645260080") + self.mulTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "19807040683906316618440900605") + self.mulTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "-19807040702353060692150452220") + self.mulTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "15845632572950494997946092745") + self.mulTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "-15845632591397239071655644360") + self.mulTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "11884224461994673377451284885") + self.mulTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "-11884224480441417451160836500") + self.mulTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "7922816351038851756956477025") + self.mulTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "-7922816369485595830666028640") + self.mulTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "3961408240083030136461669165") + self.mulTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "-3961408258529774210171220780") + self.mulTest(lhs: "-18446744073709551615", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551615") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "18446744073709551615") + self.mulTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "-39614081238685424720914939905") + self.mulTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "39614081257132168794624491520") + self.mulTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "-35652673127729603100420132045") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "35652673146176347174129683660") + self.mulTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "-31691265016773781479925324185") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "31691265035220525553634875800") + self.mulTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "-27729856905817959859430516325") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "27729856924264703933140067940") + self.mulTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "-23768448794862138238935708465") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "23768448813308882312645260080") + self.mulTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "-19807040683906316618440900605") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "19807040702353060692150452220") + self.mulTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "-15845632572950494997946092745") + self.mulTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "15845632591397239071655644360") + self.mulTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "-11884224461994673377451284885") + self.mulTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "11884224480441417451160836500") + self.mulTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "-7922816351038851756956477025") + self.mulTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "7922816369485595830666028640") + self.mulTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "-3961408240083030136461669165") + self.mulTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "3961408258529774210171220780") + self.mulTest(lhs: "18446744073709551617", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551617") + self.mulTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-18446744073709551617") + self.mulTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "39614081238685424725209907199") + self.mulTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "-39614081257132168798919458816") + self.mulTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "35652673127729603104285602611") + self.mulTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "-35652673146176347177995154228") + self.mulTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "31691265016773781483361298023") + self.mulTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-31691265035220525557070849640") + self.mulTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "27729856905817959862436993435") + self.mulTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "-27729856924264703936146545052") + self.mulTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "23768448794862138241512688847") + self.mulTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "-23768448813308882315222240464") + self.mulTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "19807040683906316620588384259") + self.mulTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "-19807040702353060694297935876") + self.mulTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "15845632572950494999664079671") + self.mulTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "-15845632591397239073373631288") + self.mulTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "11884224461994673378739775083") + self.mulTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "-11884224480441417452449326700") + self.mulTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "7922816351038851757815470495") + self.mulTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "-7922816369485595831525022112") + self.mulTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "3961408240083030136891165907") + self.mulTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "-3961408258529774210600717524") + self.mulTest(lhs: "-18446744073709551617", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551617") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "18446744073709551617") + self.mulTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "-39614081238685424725209907199") + self.mulTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "39614081257132168798919458816") + self.mulTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "-35652673127729603104285602611") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "35652673146176347177995154228") + self.mulTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "-31691265016773781483361298023") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "31691265035220525557070849640") + self.mulTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "-27729856905817959862436993435") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "27729856924264703936146545052") + self.mulTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "-23768448794862138241512688847") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "23768448813308882315222240464") + self.mulTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "-19807040683906316620588384259") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "19807040702353060694297935876") + self.mulTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "-15845632572950494999664079671") + self.mulTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "15845632591397239073373631288") + self.mulTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "-11884224461994673378739775083") + self.mulTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "11884224480441417452449326700") + self.mulTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "-7922816351038851757815470495") + self.mulTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "7922816369485595831525022112") + self.mulTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "-3961408240083030136891165907") + self.mulTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "3961408258529774210600717524") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "730750818325169092220518034133452327123555450878") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-730750818665451459141456497615273678629033213952") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "657675736730849839843123155157382040465034339942") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-657675737071132206764061618639203391970512103016") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "584600655136530587465728276181311753806513229006") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "511525573542211335088333397205241467147992118070") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-511525573882493702009271860687062818653469881144") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "438450491947892082710938518229171180489471007134") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-438450492288174449631876981710992531994948770208") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "365375410353572830333543639253100893830949896198") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-365375410693855197254482102734922245336427659272") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "292300328759253577956148760277030607172428785262") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-292300329099535944877087223758851958677906548336") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "219225247164934325578753881300960320513907674326") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-219225247505216692499692344782781672019385437400") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "146150165570615073201359002324890033855386563390") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-146150165910897440122297465806711385360864326464") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "73075083976295820823964123348819747196865452454") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-73075084316578187744902586830641098702343215528") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "-730750818325169092220518034133452327123555450878") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "730750818665451459141456497615273678629033213952") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "-657675736730849839843123155157382040465034339942") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "657675737071132206764061618639203391970512103016") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "-584600655136530587465728276181311753806513229006") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "-511525573542211335088333397205241467147992118070") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "511525573882493702009271860687062818653469881144") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "-438450491947892082710938518229171180489471007134") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "438450492288174449631876981710992531994948770208") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "-365375410353572830333543639253100893830949896198") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "365375410693855197254482102734922245336427659272") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "-292300328759253577956148760277030607172428785262") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "292300329099535944877087223758851958677906548336") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "-219225247164934325578753881300960320513907674326") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "219225247505216692499692344782781672019385437400") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "-146150165570615073201359002324890033855386563390") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "146150165910897440122297465806711385360864326464") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "-73075083976295820823964123348819747196865452454") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "73075084316578187744902586830641098702343215528") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "13479973327298218163408328416324364097933099619718779176167841726459") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-13479973333575319898795009180840718254982642962729437091421703110656") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "12131975998962367561838172109853375598074469997854361799228760522751") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-12131976005239469297224852874369729755124013340865019714482621906948") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "10783978670626516960268015803382387098215840375989944422289679319043") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "9435981342290666358697859496911398598357210754125527045350598115335") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-9435981348567768094084540261427752755406754097136184960604459499532") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "8087984013954815757127703190440410098498581132261109668411516911627") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-8087984020231917492514383954956764255548124475271767583665378295824") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "6739986685618965155557546883969421598639951510396692291472435707919") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-6739986691896066890944227648485775755689494853407350206726297092116") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "5391989357283114553987390577498433098781321888532274914533354504211") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-5391989363560216289374071342014787255830865231542932829787215888408") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "4043992028947263952417234271027444598922692266667857537594273300503") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-4043992035224365687803915035543798755972235609678515452848134684700") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "2695994700611413350847077964556456099064062644803440160655192096795") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-2695994706888515086233758729072810256113605987814098075909053480992") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "1347997372275562749276921658085467599205433022939022783716110893087") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-1347997378552664484663602422601821756254976365949680698969972277284") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "-13479973327298218163408328416324364097933099619718779176167841726459") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "13479973333575319898795009180840718254982642962729437091421703110656") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "-12131975998962367561838172109853375598074469997854361799228760522751") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "12131976005239469297224852874369729755124013340865019714482621906948") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "-10783978670626516960268015803382387098215840375989944422289679319043") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "-9435981342290666358697859496911398598357210754125527045350598115335") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "9435981348567768094084540261427752755406754097136184960604459499532") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "-8087984013954815757127703190440410098498581132261109668411516911627") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "8087984020231917492514383954956764255548124475271767583665378295824") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "-6739986685618965155557546883969421598639951510396692291472435707919") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "6739986691896066890944227648485775755689494853407350206726297092116") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "-5391989357283114553987390577498433098781321888532274914533354504211") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "5391989363560216289374071342014787255830865231542932829787215888408") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "-4043992028947263952417234271027444598922692266667857537594273300503") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "4043992035224365687803915035543798755972235609678515452848134684700") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "-2695994700611413350847077964556456099064062644803440160655192096795") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "2695994706888515086233758729072810256113605987814098075909053480992") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "-1347997372275562749276921658085467599205433022939022783716110893087") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "1347997378552664484663602422601821756254976365949680698969972277284") + self.mulTest(lhs: "18446744073709551623", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551623") + self.mulTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-18446744073709551623") + self.mulTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "39614081238685424738094809081") + self.mulTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "-39614081257132168811804360704") + self.mulTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "35652673127729603115882014309") + self.mulTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "-35652673146176347189591565932") + self.mulTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "31691265016773781493669219537") + self.mulTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-31691265035220525567378771160") + self.mulTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "27729856905817959871456424765") + self.mulTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "-27729856924264703945165976388") + self.mulTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "23768448794862138249243629993") + self.mulTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "-23768448813308882322953181616") + self.mulTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "19807040683906316627030835221") + self.mulTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "-19807040702353060700740386844") + self.mulTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "15845632572950495004818040449") + self.mulTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "-15845632591397239078527592072") + self.mulTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "11884224461994673382605245677") + self.mulTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "-11884224480441417456314797300") + self.mulTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "7922816351038851760392450905") + self.mulTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "-7922816369485595834102002528") + self.mulTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "3961408240083030138179656133") + self.mulTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "-3961408258529774211889207756") + self.mulTest(lhs: "-18446744073709551623", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551623") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "18446744073709551623") + self.mulTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "-39614081238685424738094809081") + self.mulTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "39614081257132168811804360704") + self.mulTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "-35652673127729603115882014309") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "35652673146176347189591565932") + self.mulTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "-31691265016773781493669219537") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "31691265035220525567378771160") + self.mulTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "-27729856905817959871456424765") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "27729856924264703945165976388") + self.mulTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "-23768448794862138249243629993") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "23768448813308882322953181616") + self.mulTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "-19807040683906316627030835221") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "19807040702353060700740386844") + self.mulTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "-15845632572950495004818040449") + self.mulTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "15845632591397239078527592072") + self.mulTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "-11884224461994673382605245677") + self.mulTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "11884224480441417456314797300") + self.mulTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "-7922816351038851760392450905") + self.mulTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "7922816369485595834102002528") + self.mulTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "-3961408240083030138179656133") + self.mulTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "3961408258529774211889207756") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "730750818325169092458202521565564875461929992190") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-730750818665451459379140985158066691409665064960") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "657675736730849840057039193923759659079151543910") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-657675737071132206977977657516261475026886616680") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "584600655136530587655875866281954442696373095630") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "511525573542211335254712538640149226313594647350") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-511525573882493702175651002232651042261329720120") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "438450491947892082853549210998344009930816199070") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-438450492288174449774487674590845825878551271840") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "365375410353572830452385883356538793548037750790") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-365375410693855197373324346949040609495772823560") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "292300328759253578051222555714733577165259302510") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-292300329099535944972161019307235393112994375280") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "219225247164934325650059228072928360782480854230") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-219225247505216692570997691665430176730215927000") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "146150165570615073248895900431123144399702405950") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-146150165910897440169834364023624960347437478720") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "73075083976295820847732572789317928016923957670") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-73075084316578187768671036381819743964659030440") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "-730750818325169092458202521565564875461929992190") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "730750818665451459379140985158066691409665064960") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "-657675736730849840057039193923759659079151543910") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "657675737071132206977977657516261475026886616680") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "-584600655136530587655875866281954442696373095630") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "-511525573542211335254712538640149226313594647350") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "511525573882493702175651002232651042261329720120") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "-438450491947892082853549210998344009930816199070") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "438450492288174449774487674590845825878551271840") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "-365375410353572830452385883356538793548037750790") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "365375410693855197373324346949040609495772823560") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "-292300328759253578051222555714733577165259302510") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "292300329099535944972161019307235393112994375280") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "-219225247164934325650059228072928360782480854230") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "219225247505216692570997691665430176730215927000") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "-146150165570615073248895900431123144399702405950") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "146150165910897440169834364023624960347437478720") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "-73075083976295820847732572789317928016923957670") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "73075084316578187768671036381819743964659030440") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "13479973327298218167792833326275378650780838849655268042219540447221") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-13479973333575319903179514092833427009356012973335493137621753790464") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "12131975998962367565784226530238474636705376851265898804779135742769") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-12131976005239469301170907296796522995280550974946123900181349086012") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "10783978670626516963775619734201570622629914852876529567338731038317") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "9435981342290666361767012938164666608554452854487160329898326333865") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-9435981348567768097153693704722714967129626978167385425300539677108") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "8087984013954815759758406142127762594478990856097791092457921629413") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-8087984020231917495145086908685810953054164979778016187860134972656") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "6739986685618965157749799346090858580403528857708421855017516924961") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-6739986691896066893136480112648906938978702981388646950419730268204") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "5391989357283114555741192550053954566328066859319052617577112220509") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-5391989363560216291127873316612002924903240982999277712979325563752") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "4043992028947263953732585754017050552252604860929683380136707516057") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-4043992035224365689119266520575098910827778984609908475538920859300") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "2695994700611413351723978957980146538177142862540314142696302811605") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-2695994706888515087110659724538194896752316986220539238098516154848") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "1347997372275562749715372161943242524101680864150944905255898107153") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-1347997378552664485102052928501290882676854987831170000658111450396") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "-13479973327298218167792833326275378650780838849655268042219540447221") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "13479973333575319903179514092833427009356012973335493137621753790464") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "-12131975998962367565784226530238474636705376851265898804779135742769") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "12131976005239469301170907296796522995280550974946123900181349086012") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "-10783978670626516963775619734201570622629914852876529567338731038317") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "-9435981342290666361767012938164666608554452854487160329898326333865") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "9435981348567768097153693704722714967129626978167385425300539677108") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "-8087984013954815759758406142127762594478990856097791092457921629413") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "8087984020231917495145086908685810953054164979778016187860134972656") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "-6739986685618965157749799346090858580403528857708421855017516924961") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "6739986691896066893136480112648906938978702981388646950419730268204") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "-5391989357283114555741192550053954566328066859319052617577112220509") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "5391989363560216291127873316612002924903240982999277712979325563752") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "-4043992028947263953732585754017050552252604860929683380136707516057") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "4043992035224365689119266520575098910827778984609908475538920859300") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "-2695994700611413351723978957980146538177142862540314142696302811605") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "2695994706888515087110659724538194896752316986220539238098516154848") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "-1347997372275562749715372161943242524101680864150944905255898107153") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "1347997378552664485102052928501290882676854987831170000658111450396") + self.mulTest(lhs: "18446744073709551629", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551629") + self.mulTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-18446744073709551629") + self.mulTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "39614081238685424750979710963") + self.mulTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "-39614081257132168824689262592") + self.mulTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "35652673127729603127478426007") + self.mulTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "-35652673146176347201187977636") + self.mulTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "31691265016773781503977141051") + self.mulTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-31691265035220525577686692680") + self.mulTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "27729856905817959880475856095") + self.mulTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "-27729856924264703954185407724") + self.mulTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "23768448794862138256974571139") + self.mulTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "-23768448813308882330684122768") + self.mulTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "19807040683906316633473286183") + self.mulTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "-19807040702353060707182837812") + self.mulTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "15845632572950495009972001227") + self.mulTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "-15845632591397239083681552856") + self.mulTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "11884224461994673386470716271") + self.mulTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "-11884224480441417460180267900") + self.mulTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "7922816351038851762969431315") + self.mulTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "-7922816369485595836678982944") + self.mulTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "3961408240083030139468146359") + self.mulTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "-3961408258529774213177697988") + self.mulTest(lhs: "-18446744073709551629", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551629") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "18446744073709551629") + self.mulTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "-39614081238685424750979710963") + self.mulTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "39614081257132168824689262592") + self.mulTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "-35652673127729603127478426007") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "35652673146176347201187977636") + self.mulTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "-31691265016773781503977141051") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "31691265035220525577686692680") + self.mulTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "-27729856905817959880475856095") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "27729856924264703954185407724") + self.mulTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "-23768448794862138256974571139") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "23768448813308882330684122768") + self.mulTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "-19807040683906316633473286183") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "19807040702353060707182837812") + self.mulTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "-15845632572950495009972001227") + self.mulTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "15845632591397239083681552856") + self.mulTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "-11884224461994673386470716271") + self.mulTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "11884224480441417460180267900") + self.mulTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "-7922816351038851762969431315") + self.mulTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "7922816369485595836678982944") + self.mulTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "-3961408240083030139468146359") + self.mulTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "3961408258529774213177697988") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "730750818325169092695887008997677423800304533502") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-730750818665451459616825472700859704190296915968") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "657675736730849840270955232690137277693268747878") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-657675737071132207191893696393319558083261130344") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "584600655136530587846023456382597131586232962254") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "511525573542211335421091680075056985479197176630") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-511525573882493702342030143778239265869189559096") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "438450491947892082996159903767516839372161391006") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-438450492288174449917098367470699119762153773472") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "365375410353572830571228127459976693265125605382") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-365375410693855197492166591163158973655117987848") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "292300328759253578146296351152436547158089819758") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-292300329099535945067234814855618827548082202224") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "219225247164934325721364574844896401051054034134") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-219225247505216692642303038548078681441046416600") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "146150165570615073296432798537356254944018248510") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-146150165910897440217371262240538535334010630976") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "73075083976295820871501022229816108836982462886") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-73075084316578187792439485932998389226974845352") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "-730750818325169092695887008997677423800304533502") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "730750818665451459616825472700859704190296915968") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "-657675736730849840270955232690137277693268747878") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "657675737071132207191893696393319558083261130344") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "-584600655136530587846023456382597131586232962254") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "-511525573542211335421091680075056985479197176630") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "511525573882493702342030143778239265869189559096") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "-438450491947892082996159903767516839372161391006") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "438450492288174449917098367470699119762153773472") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "-365375410353572830571228127459976693265125605382") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "365375410693855197492166591163158973655117987848") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "-292300328759253578146296351152436547158089819758") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "292300329099535945067234814855618827548082202224") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "-219225247164934325721364574844896401051054034134") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "219225247505216692642303038548078681441046416600") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "-146150165570615073296432798537356254944018248510") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "146150165910897440217371262240538535334010630976") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "-73075083976295820871501022229816108836982462886") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "73075084316578187792439485932998389226974845352") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "13479973327298218172177338236226393203628578079591756908271239167983") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-13479973333575319907564019004826135763729382983941549183821804470272") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "12131975998962367569730280950623573675336283704677435810329510962787") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-12131976005239469305116961719223316235437088609027228085880076265076") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "10783978670626516967283223665020754147043989329763114712387782757591") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "9435981342290666364836166379417934618751694954848793614446054552395") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-9435981348567768100222847148017677178852499859198585889996619854684") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "8087984013954815762389109093815115090459400579934472516504326347199") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-8087984020231917497775789862414857650560205484284264792054891649488") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "6739986685618965159942051808212295562167106205020151418562598142003") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-6739986691896066895328732576812038122267911109369943694113163444292") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "5391989357283114557494994522609476033874811830105830320620869936807") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-5391989363560216292881675291209218593975616734455622596171435239096") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "4043992028947263955047937237006656505582517455191509222679141731611") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-4043992035224365690434618005606399065683322359541301498229707033900") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "2695994700611413352600879951403836977290223080277188124737413526415") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-2695994706888515087987560720003579537391027984626980400287978828704") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "1347997372275562750153822665801017448997928705362867026795685321219") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-1347997378552664485540503434400760009098733609712659302346250623508") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "-13479973327298218172177338236226393203628578079591756908271239167983") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "13479973333575319907564019004826135763729382983941549183821804470272") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "-12131975998962367569730280950623573675336283704677435810329510962787") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "12131976005239469305116961719223316235437088609027228085880076265076") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "-10783978670626516967283223665020754147043989329763114712387782757591") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "-9435981342290666364836166379417934618751694954848793614446054552395") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "9435981348567768100222847148017677178852499859198585889996619854684") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "-8087984013954815762389109093815115090459400579934472516504326347199") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "8087984020231917497775789862414857650560205484284264792054891649488") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "-6739986685618965159942051808212295562167106205020151418562598142003") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "6739986691896066895328732576812038122267911109369943694113163444292") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "-5391989357283114557494994522609476033874811830105830320620869936807") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "5391989363560216292881675291209218593975616734455622596171435239096") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "-4043992028947263955047937237006656505582517455191509222679141731611") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "4043992035224365690434618005606399065683322359541301498229707033900") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "-2695994700611413352600879951403836977290223080277188124737413526415") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "2695994706888515087987560720003579537391027984626980400287978828704") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "-1347997372275562750153822665801017448997928705362867026795685321219") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "1347997378552664485540503434400760009098733609712659302346250623508") + self.mulTest(lhs: "18446744073709551635", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551635") + self.mulTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-18446744073709551635") + self.mulTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "39614081238685424763864612845") + self.mulTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "-39614081257132168837574164480") + self.mulTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "35652673127729603139074837705") + self.mulTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "-35652673146176347212784389340") + self.mulTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "31691265016773781514285062565") + self.mulTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-31691265035220525587994614200") + self.mulTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "27729856905817959889495287425") + self.mulTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "-27729856924264703963204839060") + self.mulTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "23768448794862138264705512285") + self.mulTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "-23768448813308882338415063920") + self.mulTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "19807040683906316639915737145") + self.mulTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "-19807040702353060713625288780") + self.mulTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "15845632572950495015125962005") + self.mulTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "-15845632591397239088835513640") + self.mulTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "11884224461994673390336186865") + self.mulTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "-11884224480441417464045738500") + self.mulTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "7922816351038851765546411725") + self.mulTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "-7922816369485595839255963360") + self.mulTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "3961408240083030140756636585") + self.mulTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "-3961408258529774214466188220") + self.mulTest(lhs: "-18446744073709551635", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551635") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "18446744073709551635") + self.mulTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "-39614081238685424763864612845") + self.mulTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "39614081257132168837574164480") + self.mulTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "-35652673127729603139074837705") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "35652673146176347212784389340") + self.mulTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "-31691265016773781514285062565") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "31691265035220525587994614200") + self.mulTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "-27729856905817959889495287425") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "27729856924264703963204839060") + self.mulTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "-23768448794862138264705512285") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "23768448813308882338415063920") + self.mulTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "-19807040683906316639915737145") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "19807040702353060713625288780") + self.mulTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "-15845632572950495015125962005") + self.mulTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "15845632591397239088835513640") + self.mulTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "-11884224461994673390336186865") + self.mulTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "11884224480441417464045738500") + self.mulTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "-7922816351038851765546411725") + self.mulTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "7922816369485595839255963360") + self.mulTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "-3961408240083030140756636585") + self.mulTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "3961408258529774214466188220") + } + + func test_mul_heap_heap() { + self.mulTest(lhs: "0", rhs: "0", expecting: "0") + self.mulTest(lhs: "0", rhs: "1", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.mulTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.mulTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.mulTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.mulTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.mulTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.mulTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.mulTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.mulTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.mulTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.mulTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.mulTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.mulTest(lhs: "1", rhs: "0", expecting: "0") + self.mulTest(lhs: "1", rhs: "1", expecting: "1") + self.mulTest(lhs: "1", rhs: "-1", expecting: "-1") + self.mulTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.mulTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.mulTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.mulTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.mulTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.mulTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.mulTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.mulTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.mulTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.mulTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.mulTest(lhs: "-1", rhs: "0", expecting: "0") + self.mulTest(lhs: "-1", rhs: "1", expecting: "-1") + self.mulTest(lhs: "-1", rhs: "-1", expecting: "1") + self.mulTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-18446744073709551615") + self.mulTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "18446744073709551615") + self.mulTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-18446744073709551617") + self.mulTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "18446744073709551617") + self.mulTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-18446744073709551623") + self.mulTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "18446744073709551623") + self.mulTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-18446744073709551629") + self.mulTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "18446744073709551629") + self.mulTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-18446744073709551635") + self.mulTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "18446744073709551635") + self.mulTest(lhs: "18446744073709551615", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551615") + self.mulTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-18446744073709551615") + self.mulTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "340282366920938463426481119284349108225") + self.mulTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "-340282366920938463426481119284349108225") + self.mulTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "340282366920938463463374607431768211455") + self.mulTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "-340282366920938463463374607431768211455") + self.mulTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "340282366920938463574055071874025521145") + self.mulTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "-340282366920938463574055071874025521145") + self.mulTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "340282366920938463684735536316282830835") + self.mulTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "-340282366920938463684735536316282830835") + self.mulTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "340282366920938463795416000758540140525") + self.mulTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "-340282366920938463795416000758540140525") + self.mulTest(lhs: "-18446744073709551615", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551615") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "18446744073709551615") + self.mulTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "-340282366920938463426481119284349108225") + self.mulTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "340282366920938463426481119284349108225") + self.mulTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "-340282366920938463463374607431768211455") + self.mulTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "340282366920938463463374607431768211455") + self.mulTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "-340282366920938463574055071874025521145") + self.mulTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "340282366920938463574055071874025521145") + self.mulTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "-340282366920938463684735536316282830835") + self.mulTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "340282366920938463684735536316282830835") + self.mulTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "-340282366920938463795416000758540140525") + self.mulTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "340282366920938463795416000758540140525") + self.mulTest(lhs: "18446744073709551617", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551617") + self.mulTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-18446744073709551617") + self.mulTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "340282366920938463463374607431768211455") + self.mulTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "-340282366920938463463374607431768211455") + self.mulTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "340282366920938463500268095579187314689") + self.mulTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "-340282366920938463500268095579187314689") + self.mulTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "340282366920938463610948560021444624391") + self.mulTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "-340282366920938463610948560021444624391") + self.mulTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "340282366920938463721629024463701934093") + self.mulTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "-340282366920938463721629024463701934093") + self.mulTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "340282366920938463832309488905959243795") + self.mulTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "-340282366920938463832309488905959243795") + self.mulTest(lhs: "-18446744073709551617", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551617") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "18446744073709551617") + self.mulTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "-340282366920938463463374607431768211455") + self.mulTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "340282366920938463463374607431768211455") + self.mulTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "-340282366920938463500268095579187314689") + self.mulTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "340282366920938463500268095579187314689") + self.mulTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "-340282366920938463610948560021444624391") + self.mulTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "340282366920938463610948560021444624391") + self.mulTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "-340282366920938463721629024463701934093") + self.mulTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "340282366920938463721629024463701934093") + self.mulTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "-340282366920938463832309488905959243795") + self.mulTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "340282366920938463832309488905959243795") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "115792089237316195436125188479461269382642975346660589189052954910294877929476") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "-115792089237316195436125188479461269382642975346660589189052954910294877929476") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763074") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763074") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "-6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "6277101735386680763835789423207666416120802188537744064510") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "-6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "6277101735386680764516354157049543343084444891548699590658") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "-115792089237316195436125188479461269382642975346660589189052954910294877929476") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "115792089237316195436125188479461269382642975346660589189052954910294877929476") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "-6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "-115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "-6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "-115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "-6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "39402006196394479220822988243827254134891410273618287517243916074102028751582077678279011992315553540896416841334809") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-39402006196394479220822988243827254134891410273618287517243916074102028751582077678279011992315553540896416841334809") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "-115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "115792089237316195429848086744074588616084926988085415065280496094524116828155") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "-115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "115792089237316195442402290214847950145117635302184501751301811925031839596549") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "-2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "2135987035920910082742397973881500700892248782588876535801081189024131924855082705471768853741578") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-39402006196394479220822988243827254134891410273618287517243916074102028751582077678279011992315553540896416841334809") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "39402006196394479220822988243827254134891410273618287517243916074102028751582077678279011992315553540896416841334809") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "-115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "-2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "-115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "-2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "-115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "18446744073709551623", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551623") + self.mulTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-18446744073709551623") + self.mulTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "340282366920938463574055071874025521145") + self.mulTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "-340282366920938463574055071874025521145") + self.mulTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "340282366920938463610948560021444624391") + self.mulTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "-340282366920938463610948560021444624391") + self.mulTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "340282366920938463721629024463701934129") + self.mulTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "-340282366920938463721629024463701934129") + self.mulTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "340282366920938463832309488905959243867") + self.mulTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "-340282366920938463832309488905959243867") + self.mulTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "340282366920938463942989953348216553605") + self.mulTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "-340282366920938463942989953348216553605") + self.mulTest(lhs: "-18446744073709551623", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551623") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "18446744073709551623") + self.mulTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "-340282366920938463574055071874025521145") + self.mulTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "340282366920938463574055071874025521145") + self.mulTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "-340282366920938463610948560021444624391") + self.mulTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "340282366920938463610948560021444624391") + self.mulTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680766558048358575174123975373000581566169102") + self.mulTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195480064900627168034732215760244481761809365759416555007901731") + self.mulTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "-340282366920938463721629024463701934129") + self.mulTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "340282366920938463721629024463701934129") + self.mulTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "-340282366920938463832309488905959243867") + self.mulTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "340282366920938463832309488905959243867") + self.mulTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "-340282366920938463942989953348216553605") + self.mulTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "340282366920938463942989953348216553605") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "115792089237316195511450409304101438565006002037357632428965923258357195472900") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "-115792089237316195511450409304101438565006002037357632428965923258357195472900") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072770") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072770") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "-6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "6277101735386680765877483624733297196790369368686096023550") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "-6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "6277101735386680766558048358575174123975373000581566169090") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "-115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "115792089237316195473787798891781353967699406087432218466668696150554208894980") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2135987035920910083437150509305397873508999913465644152084688875894941675304829629530436723015690") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "-6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "6277101735386680768599742560100804905530383896267976605710") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "-115792089237316195511450409304101438565006002037357632428965923258357195472900") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "115792089237316195511450409304101438565006002037357632428965923258357195472900") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "-6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "-115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "-6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "39402006196394479246454832674878175129189691031044090272205175856201760214644718054320331246175250139652711333757049") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-39402006196394479246454832674878175129189691031044090272205175856201760214644718054320331246175250139652711333757049") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "-115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "115792089237316195467510697156394673195016275124280152000555494401011619987445") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "-115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "115792089237316195480064900627168034728132371841430500247915944591816046673931") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "-2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "2135987035920910083437150509305397873433674692641003982924784485421026570653278024343986592808982") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "39402006196394479233638910459352714629956293046059497377326243897469432649234251313739886780488491978118171056930871") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "-115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "115792089237316195517727511039488119327480661992881544989997295164229326733389") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "-2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "2135987035920910084131903044729295046276401485991692106694230426318158527398692341322469592793110") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-39402006196394479246454832674878175129189691031044090272205175856201760214644718054320331246175250139652711333757049") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "39402006196394479246454832674878175129189691031044090272205175856201760214644718054320331246175250139652711333757049") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "-115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "-2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "-115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "18446744073709551629", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551629") + self.mulTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-18446744073709551629") + self.mulTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "340282366920938463684735536316282830835") + self.mulTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "-340282366920938463684735536316282830835") + self.mulTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "340282366920938463721629024463701934093") + self.mulTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "-340282366920938463721629024463701934093") + self.mulTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "340282366920938463832309488905959243867") + self.mulTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "-340282366920938463832309488905959243867") + self.mulTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "340282366920938463942989953348216553641") + self.mulTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "-340282366920938463942989953348216553641") + self.mulTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "340282366920938464053670417790473863415") + self.mulTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "-340282366920938464053670417790473863415") + self.mulTest(lhs: "-18446744073709551629", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551629") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "18446744073709551629") + self.mulTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "-340282366920938463684735536316282830835") + self.mulTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "340282366920938463684735536316282830835") + self.mulTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "-340282366920938463721629024463701934093") + self.mulTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "340282366920938463721629024463701934093") + self.mulTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680768599742560100804904866301109614432747546") + self.mulTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195517727511039488119319313885186779021867429706908078176206913") + self.mulTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "-340282366920938463832309488905959243867") + self.mulTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "340282366920938463832309488905959243867") + self.mulTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680770641436761626435687085394791954387042330") + self.mulTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195555390121451808203926828952144332589732078645736642606792847") + self.mulTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "-340282366920938463942989953348216553641") + self.mulTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "340282366920938463942989953348216553641") + self.mulTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "-340282366920938464053670417790473863415") + self.mulTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "340282366920938464053670417790473863415") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "115792089237316195586775630128741607771869359146362245038241863341506824241156") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "-115792089237316195586775630128741607771869359146362245038241863341506824241156") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382466") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382466") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "-6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "6277101735386680767919177826258927977459936548834447982590") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "-6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "6277101735386680768599742560100804904866301109614432747522") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "-115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "115792089237316195511450409304101438552755836828203847744284437390813539860484") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2135987035920910084131903044729295046125751044342411768368296562765751425754576553589104592289802") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "-6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "6277101735386680770641436761626435687085394791954387042318") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "-115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "115792089237316195549113019716421523162312597987283046391263150366160182050820") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2135987035920910084826655580153192219119128279342380230463676367215290484144106658300952592777238") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "-6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "6277101735386680772683130963152066469304488474294341337114") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "-115792089237316195586775630128741607771869359146362245038241863341506824241156") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "115792089237316195586775630128741607771869359146362245038241863341506824241156") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "-6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "39402006196394479272086677105929096131825002213556659096759643909031339013223944640600789855062586187034577948639521") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-39402006196394479272086677105929096131825002213556659096759643909031339013223944640600789855062586187034577948639521") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "-115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "115792089237316195505173307568714757773947623260474888935830492707499123146735") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "-115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "115792089237316195517727511039488119311147108380676498744530077258600253751313") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "-2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "2135987035920910084131903044729295045975100602693131430048487781817921216451473343216204331876386") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "39402006196394479246454832674878175125021175818500707237408571720836836546886424949200761568661430415339925272526933") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "-115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "115792089237316195555390121451808203922745563741281328170628830911903645565047") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "-2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "2135987035920910084826655580153192219043803058517740061303771976741375379492555053114502462570530") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "39402006196394479259270754890403635628423089016028683167084107814934087780055184794900775711862008301187251610583227") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "-115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "115792089237316195593052731864128288534344019101886157596727584565207037378781") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "-2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "2135987035920910085521408115577089392112505514342348692559056171664829542533636763012800593264674") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-39402006196394479272086677105929096131825002213556659096759643909031339013223944640600789855062586187034577948639521") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "39402006196394479272086677105929096131825002213556659096759643909031339013223944640600789855062586187034577948639521") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "-115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "18446744073709551635", rhs: "0", expecting: "0") + self.mulTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551635") + self.mulTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-18446744073709551635") + self.mulTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "340282366920938463795416000758540140525") + self.mulTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "-340282366920938463795416000758540140525") + self.mulTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "340282366920938463832309488905959243795") + self.mulTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "-340282366920938463832309488905959243795") + self.mulTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "340282366920938463942989953348216553605") + self.mulTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "-340282366920938463942989953348216553605") + self.mulTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "340282366920938464053670417790473863415") + self.mulTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "-340282366920938464053670417790473863415") + self.mulTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "340282366920938464164350882232731173225") + self.mulTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "-340282366920938464164350882232731173225") + self.mulTest(lhs: "-18446744073709551635", rhs: "0", expecting: "0") + self.mulTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551635") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "18446744073709551635") + self.mulTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "-340282366920938463795416000758540140525") + self.mulTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "340282366920938463795416000758540140525") + self.mulTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "-340282366920938463832309488905959243795") + self.mulTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "340282366920938463832309488905959243795") + self.mulTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680770641436761626435685757229218647299325990") + self.mulTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "115792089237316195555390121451808203906412010129076281925493654399601344512095") + self.mulTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "-340282366920938463942989953348216553605") + self.mulTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "340282366920938463942989953348216553605") + self.mulTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680772683130963152066468640405687640797478950") + self.mulTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "115792089237316195593052731864128288526177242295783634474159996309055886852305") + self.mulTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "-340282366920938464053670417790473863415") + self.mulTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "340282366920938464053670417790473863415") + self.mulTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680774724825164677697251523582156634295631910") + self.mulTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "115792089237316195630715342276448373145942474462490987022826338218510429192515") + self.mulTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "-340282366920938464164350882232731173225") + self.mulTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "340282366920938464164350882232731173225") + } + + // MARK: - Div + + func test_div_smi_smi() { + self.divTest(lhs: "0", rhs: "1", expecting: "0") + self.divTest(lhs: "0", rhs: "-1", expecting: "0") + self.divTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "0", rhs: "858993463", expecting: "0") + self.divTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "0", rhs: "644245099", expecting: "0") + self.divTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "0", rhs: "429496735", expecting: "0") + self.divTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "0", rhs: "214748371", expecting: "0") + self.divTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.divTest(lhs: "1", rhs: "1", expecting: "1") + self.divTest(lhs: "1", rhs: "-1", expecting: "-1") + self.divTest(lhs: "1", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "1", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "1", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "1", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "1", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "1", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "1", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "1", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "1", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "1", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "1", rhs: "858993463", expecting: "0") + self.divTest(lhs: "1", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "1", rhs: "644245099", expecting: "0") + self.divTest(lhs: "1", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "1", rhs: "429496735", expecting: "0") + self.divTest(lhs: "1", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "1", rhs: "214748371", expecting: "0") + self.divTest(lhs: "1", rhs: "-214748372", expecting: "0") + self.divTest(lhs: "-1", rhs: "1", expecting: "-1") + self.divTest(lhs: "-1", rhs: "-1", expecting: "1") + self.divTest(lhs: "-1", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-1", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-1", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-1", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-1", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-1", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "-1", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "-1", rhs: "858993463", expecting: "0") + self.divTest(lhs: "-1", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "-1", rhs: "644245099", expecting: "0") + self.divTest(lhs: "-1", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "-1", rhs: "429496735", expecting: "0") + self.divTest(lhs: "-1", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "-1", rhs: "214748371", expecting: "0") + self.divTest(lhs: "-1", rhs: "-214748372", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "1", expecting: "2147483647") + self.divTest(lhs: "2147483647", rhs: "-1", expecting: "-2147483647") + self.divTest(lhs: "2147483647", rhs: "2147483647", expecting: "1") + self.divTest(lhs: "2147483647", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "1932735283", expecting: "1") + self.divTest(lhs: "2147483647", rhs: "-1932735284", expecting: "-1") + self.divTest(lhs: "2147483647", rhs: "1717986919", expecting: "1") + self.divTest(lhs: "2147483647", rhs: "-1717986920", expecting: "-1") + self.divTest(lhs: "2147483647", rhs: "1503238555", expecting: "1") + self.divTest(lhs: "2147483647", rhs: "-1503238556", expecting: "-1") + self.divTest(lhs: "2147483647", rhs: "1288490191", expecting: "1") + self.divTest(lhs: "2147483647", rhs: "-1288490192", expecting: "-1") + self.divTest(lhs: "2147483647", rhs: "1073741827", expecting: "1") + self.divTest(lhs: "2147483647", rhs: "-1073741828", expecting: "-1") + self.divTest(lhs: "2147483647", rhs: "858993463", expecting: "2") + self.divTest(lhs: "2147483647", rhs: "-858993464", expecting: "-2") + self.divTest(lhs: "2147483647", rhs: "644245099", expecting: "3") + self.divTest(lhs: "2147483647", rhs: "-644245100", expecting: "-3") + self.divTest(lhs: "2147483647", rhs: "429496735", expecting: "4") + self.divTest(lhs: "2147483647", rhs: "-429496736", expecting: "-4") + self.divTest(lhs: "2147483647", rhs: "214748371", expecting: "9") + self.divTest(lhs: "2147483647", rhs: "-214748372", expecting: "-9") + self.divTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483648") + self.divTest(lhs: "-2147483648", rhs: "-1", expecting: "2147483648") + self.divTest(lhs: "-2147483648", rhs: "2147483647", expecting: "-1") + self.divTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "1") + self.divTest(lhs: "-2147483648", rhs: "1932735283", expecting: "-1") + self.divTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "1") + self.divTest(lhs: "-2147483648", rhs: "1717986919", expecting: "-1") + self.divTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "1") + self.divTest(lhs: "-2147483648", rhs: "1503238555", expecting: "-1") + self.divTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "1") + self.divTest(lhs: "-2147483648", rhs: "1288490191", expecting: "-1") + self.divTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "1") + self.divTest(lhs: "-2147483648", rhs: "1073741827", expecting: "-1") + self.divTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "1") + self.divTest(lhs: "-2147483648", rhs: "858993463", expecting: "-2") + self.divTest(lhs: "-2147483648", rhs: "-858993464", expecting: "2") + self.divTest(lhs: "-2147483648", rhs: "644245099", expecting: "-3") + self.divTest(lhs: "-2147483648", rhs: "-644245100", expecting: "3") + self.divTest(lhs: "-2147483648", rhs: "429496735", expecting: "-4") + self.divTest(lhs: "-2147483648", rhs: "-429496736", expecting: "4") + self.divTest(lhs: "-2147483648", rhs: "214748371", expecting: "-9") + self.divTest(lhs: "-2147483648", rhs: "-214748372", expecting: "9") + self.divTest(lhs: "1932735283", rhs: "1", expecting: "1932735283") + self.divTest(lhs: "1932735283", rhs: "-1", expecting: "-1932735283") + self.divTest(lhs: "1932735283", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "1932735283", expecting: "1") + self.divTest(lhs: "1932735283", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "1717986919", expecting: "1") + self.divTest(lhs: "1932735283", rhs: "-1717986920", expecting: "-1") + self.divTest(lhs: "1932735283", rhs: "1503238555", expecting: "1") + self.divTest(lhs: "1932735283", rhs: "-1503238556", expecting: "-1") + self.divTest(lhs: "1932735283", rhs: "1288490191", expecting: "1") + self.divTest(lhs: "1932735283", rhs: "-1288490192", expecting: "-1") + self.divTest(lhs: "1932735283", rhs: "1073741827", expecting: "1") + self.divTest(lhs: "1932735283", rhs: "-1073741828", expecting: "-1") + self.divTest(lhs: "1932735283", rhs: "858993463", expecting: "2") + self.divTest(lhs: "1932735283", rhs: "-858993464", expecting: "-2") + self.divTest(lhs: "1932735283", rhs: "644245099", expecting: "2") + self.divTest(lhs: "1932735283", rhs: "-644245100", expecting: "-2") + self.divTest(lhs: "1932735283", rhs: "429496735", expecting: "4") + self.divTest(lhs: "1932735283", rhs: "-429496736", expecting: "-4") + self.divTest(lhs: "1932735283", rhs: "214748371", expecting: "8") + self.divTest(lhs: "1932735283", rhs: "-214748372", expecting: "-8") + self.divTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735284") + self.divTest(lhs: "-1932735284", rhs: "-1", expecting: "1932735284") + self.divTest(lhs: "-1932735284", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "1932735283", expecting: "-1") + self.divTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "1") + self.divTest(lhs: "-1932735284", rhs: "1717986919", expecting: "-1") + self.divTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "1") + self.divTest(lhs: "-1932735284", rhs: "1503238555", expecting: "-1") + self.divTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "1") + self.divTest(lhs: "-1932735284", rhs: "1288490191", expecting: "-1") + self.divTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "1") + self.divTest(lhs: "-1932735284", rhs: "1073741827", expecting: "-1") + self.divTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "1") + self.divTest(lhs: "-1932735284", rhs: "858993463", expecting: "-2") + self.divTest(lhs: "-1932735284", rhs: "-858993464", expecting: "2") + self.divTest(lhs: "-1932735284", rhs: "644245099", expecting: "-2") + self.divTest(lhs: "-1932735284", rhs: "-644245100", expecting: "2") + self.divTest(lhs: "-1932735284", rhs: "429496735", expecting: "-4") + self.divTest(lhs: "-1932735284", rhs: "-429496736", expecting: "4") + self.divTest(lhs: "-1932735284", rhs: "214748371", expecting: "-8") + self.divTest(lhs: "-1932735284", rhs: "-214748372", expecting: "8") + self.divTest(lhs: "1717986919", rhs: "1", expecting: "1717986919") + self.divTest(lhs: "1717986919", rhs: "-1", expecting: "-1717986919") + self.divTest(lhs: "1717986919", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "1717986919", expecting: "1") + self.divTest(lhs: "1717986919", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "1503238555", expecting: "1") + self.divTest(lhs: "1717986919", rhs: "-1503238556", expecting: "-1") + self.divTest(lhs: "1717986919", rhs: "1288490191", expecting: "1") + self.divTest(lhs: "1717986919", rhs: "-1288490192", expecting: "-1") + self.divTest(lhs: "1717986919", rhs: "1073741827", expecting: "1") + self.divTest(lhs: "1717986919", rhs: "-1073741828", expecting: "-1") + self.divTest(lhs: "1717986919", rhs: "858993463", expecting: "1") + self.divTest(lhs: "1717986919", rhs: "-858993464", expecting: "-1") + self.divTest(lhs: "1717986919", rhs: "644245099", expecting: "2") + self.divTest(lhs: "1717986919", rhs: "-644245100", expecting: "-2") + self.divTest(lhs: "1717986919", rhs: "429496735", expecting: "3") + self.divTest(lhs: "1717986919", rhs: "-429496736", expecting: "-3") + self.divTest(lhs: "1717986919", rhs: "214748371", expecting: "7") + self.divTest(lhs: "1717986919", rhs: "-214748372", expecting: "-7") + self.divTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986920") + self.divTest(lhs: "-1717986920", rhs: "-1", expecting: "1717986920") + self.divTest(lhs: "-1717986920", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "1717986919", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "1") + self.divTest(lhs: "-1717986920", rhs: "1503238555", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "1") + self.divTest(lhs: "-1717986920", rhs: "1288490191", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "1") + self.divTest(lhs: "-1717986920", rhs: "1073741827", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "1") + self.divTest(lhs: "-1717986920", rhs: "858993463", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "-858993464", expecting: "1") + self.divTest(lhs: "-1717986920", rhs: "644245099", expecting: "-2") + self.divTest(lhs: "-1717986920", rhs: "-644245100", expecting: "2") + self.divTest(lhs: "-1717986920", rhs: "429496735", expecting: "-3") + self.divTest(lhs: "-1717986920", rhs: "-429496736", expecting: "3") + self.divTest(lhs: "-1717986920", rhs: "214748371", expecting: "-7") + self.divTest(lhs: "-1717986920", rhs: "-214748372", expecting: "7") + self.divTest(lhs: "1503238555", rhs: "1", expecting: "1503238555") + self.divTest(lhs: "1503238555", rhs: "-1", expecting: "-1503238555") + self.divTest(lhs: "1503238555", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "1503238555", expecting: "1") + self.divTest(lhs: "1503238555", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "1288490191", expecting: "1") + self.divTest(lhs: "1503238555", rhs: "-1288490192", expecting: "-1") + self.divTest(lhs: "1503238555", rhs: "1073741827", expecting: "1") + self.divTest(lhs: "1503238555", rhs: "-1073741828", expecting: "-1") + self.divTest(lhs: "1503238555", rhs: "858993463", expecting: "1") + self.divTest(lhs: "1503238555", rhs: "-858993464", expecting: "-1") + self.divTest(lhs: "1503238555", rhs: "644245099", expecting: "2") + self.divTest(lhs: "1503238555", rhs: "-644245100", expecting: "-2") + self.divTest(lhs: "1503238555", rhs: "429496735", expecting: "3") + self.divTest(lhs: "1503238555", rhs: "-429496736", expecting: "-3") + self.divTest(lhs: "1503238555", rhs: "214748371", expecting: "6") + self.divTest(lhs: "1503238555", rhs: "-214748372", expecting: "-6") + self.divTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238556") + self.divTest(lhs: "-1503238556", rhs: "-1", expecting: "1503238556") + self.divTest(lhs: "-1503238556", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "1503238555", expecting: "-1") + self.divTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "1") + self.divTest(lhs: "-1503238556", rhs: "1288490191", expecting: "-1") + self.divTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "1") + self.divTest(lhs: "-1503238556", rhs: "1073741827", expecting: "-1") + self.divTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "1") + self.divTest(lhs: "-1503238556", rhs: "858993463", expecting: "-1") + self.divTest(lhs: "-1503238556", rhs: "-858993464", expecting: "1") + self.divTest(lhs: "-1503238556", rhs: "644245099", expecting: "-2") + self.divTest(lhs: "-1503238556", rhs: "-644245100", expecting: "2") + self.divTest(lhs: "-1503238556", rhs: "429496735", expecting: "-3") + self.divTest(lhs: "-1503238556", rhs: "-429496736", expecting: "3") + self.divTest(lhs: "-1503238556", rhs: "214748371", expecting: "-6") + self.divTest(lhs: "-1503238556", rhs: "-214748372", expecting: "6") + self.divTest(lhs: "1288490191", rhs: "1", expecting: "1288490191") + self.divTest(lhs: "1288490191", rhs: "-1", expecting: "-1288490191") + self.divTest(lhs: "1288490191", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "1288490191", expecting: "1") + self.divTest(lhs: "1288490191", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "1073741827", expecting: "1") + self.divTest(lhs: "1288490191", rhs: "-1073741828", expecting: "-1") + self.divTest(lhs: "1288490191", rhs: "858993463", expecting: "1") + self.divTest(lhs: "1288490191", rhs: "-858993464", expecting: "-1") + self.divTest(lhs: "1288490191", rhs: "644245099", expecting: "1") + self.divTest(lhs: "1288490191", rhs: "-644245100", expecting: "-1") + self.divTest(lhs: "1288490191", rhs: "429496735", expecting: "2") + self.divTest(lhs: "1288490191", rhs: "-429496736", expecting: "-2") + self.divTest(lhs: "1288490191", rhs: "214748371", expecting: "5") + self.divTest(lhs: "1288490191", rhs: "-214748372", expecting: "-5") + self.divTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490192") + self.divTest(lhs: "-1288490192", rhs: "-1", expecting: "1288490192") + self.divTest(lhs: "-1288490192", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "1288490191", expecting: "-1") + self.divTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "1") + self.divTest(lhs: "-1288490192", rhs: "1073741827", expecting: "-1") + self.divTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "1") + self.divTest(lhs: "-1288490192", rhs: "858993463", expecting: "-1") + self.divTest(lhs: "-1288490192", rhs: "-858993464", expecting: "1") + self.divTest(lhs: "-1288490192", rhs: "644245099", expecting: "-1") + self.divTest(lhs: "-1288490192", rhs: "-644245100", expecting: "1") + self.divTest(lhs: "-1288490192", rhs: "429496735", expecting: "-2") + self.divTest(lhs: "-1288490192", rhs: "-429496736", expecting: "2") + self.divTest(lhs: "-1288490192", rhs: "214748371", expecting: "-5") + self.divTest(lhs: "-1288490192", rhs: "-214748372", expecting: "5") + self.divTest(lhs: "1073741827", rhs: "1", expecting: "1073741827") + self.divTest(lhs: "1073741827", rhs: "-1", expecting: "-1073741827") + self.divTest(lhs: "1073741827", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "1073741827", expecting: "1") + self.divTest(lhs: "1073741827", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "858993463", expecting: "1") + self.divTest(lhs: "1073741827", rhs: "-858993464", expecting: "-1") + self.divTest(lhs: "1073741827", rhs: "644245099", expecting: "1") + self.divTest(lhs: "1073741827", rhs: "-644245100", expecting: "-1") + self.divTest(lhs: "1073741827", rhs: "429496735", expecting: "2") + self.divTest(lhs: "1073741827", rhs: "-429496736", expecting: "-2") + self.divTest(lhs: "1073741827", rhs: "214748371", expecting: "4") + self.divTest(lhs: "1073741827", rhs: "-214748372", expecting: "-4") + self.divTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741828") + self.divTest(lhs: "-1073741828", rhs: "-1", expecting: "1073741828") + self.divTest(lhs: "-1073741828", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "1073741827", expecting: "-1") + self.divTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "1") + self.divTest(lhs: "-1073741828", rhs: "858993463", expecting: "-1") + self.divTest(lhs: "-1073741828", rhs: "-858993464", expecting: "1") + self.divTest(lhs: "-1073741828", rhs: "644245099", expecting: "-1") + self.divTest(lhs: "-1073741828", rhs: "-644245100", expecting: "1") + self.divTest(lhs: "-1073741828", rhs: "429496735", expecting: "-2") + self.divTest(lhs: "-1073741828", rhs: "-429496736", expecting: "2") + self.divTest(lhs: "-1073741828", rhs: "214748371", expecting: "-4") + self.divTest(lhs: "-1073741828", rhs: "-214748372", expecting: "4") + self.divTest(lhs: "858993463", rhs: "1", expecting: "858993463") + self.divTest(lhs: "858993463", rhs: "-1", expecting: "-858993463") + self.divTest(lhs: "858993463", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "858993463", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "858993463", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "858993463", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "858993463", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "858993463", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "858993463", rhs: "858993463", expecting: "1") + self.divTest(lhs: "858993463", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "858993463", rhs: "644245099", expecting: "1") + self.divTest(lhs: "858993463", rhs: "-644245100", expecting: "-1") + self.divTest(lhs: "858993463", rhs: "429496735", expecting: "1") + self.divTest(lhs: "858993463", rhs: "-429496736", expecting: "-1") + self.divTest(lhs: "858993463", rhs: "214748371", expecting: "3") + self.divTest(lhs: "858993463", rhs: "-214748372", expecting: "-3") + self.divTest(lhs: "-858993464", rhs: "1", expecting: "-858993464") + self.divTest(lhs: "-858993464", rhs: "-1", expecting: "858993464") + self.divTest(lhs: "-858993464", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "858993463", expecting: "-1") + self.divTest(lhs: "-858993464", rhs: "-858993464", expecting: "1") + self.divTest(lhs: "-858993464", rhs: "644245099", expecting: "-1") + self.divTest(lhs: "-858993464", rhs: "-644245100", expecting: "1") + self.divTest(lhs: "-858993464", rhs: "429496735", expecting: "-1") + self.divTest(lhs: "-858993464", rhs: "-429496736", expecting: "1") + self.divTest(lhs: "-858993464", rhs: "214748371", expecting: "-3") + self.divTest(lhs: "-858993464", rhs: "-214748372", expecting: "3") + self.divTest(lhs: "644245099", rhs: "1", expecting: "644245099") + self.divTest(lhs: "644245099", rhs: "-1", expecting: "-644245099") + self.divTest(lhs: "644245099", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "644245099", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "644245099", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "644245099", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "644245099", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "644245099", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "644245099", rhs: "858993463", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "644245099", rhs: "644245099", expecting: "1") + self.divTest(lhs: "644245099", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "644245099", rhs: "429496735", expecting: "1") + self.divTest(lhs: "644245099", rhs: "-429496736", expecting: "-1") + self.divTest(lhs: "644245099", rhs: "214748371", expecting: "2") + self.divTest(lhs: "644245099", rhs: "-214748372", expecting: "-2") + self.divTest(lhs: "-644245100", rhs: "1", expecting: "-644245100") + self.divTest(lhs: "-644245100", rhs: "-1", expecting: "644245100") + self.divTest(lhs: "-644245100", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "858993463", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "644245099", expecting: "-1") + self.divTest(lhs: "-644245100", rhs: "-644245100", expecting: "1") + self.divTest(lhs: "-644245100", rhs: "429496735", expecting: "-1") + self.divTest(lhs: "-644245100", rhs: "-429496736", expecting: "1") + self.divTest(lhs: "-644245100", rhs: "214748371", expecting: "-2") + self.divTest(lhs: "-644245100", rhs: "-214748372", expecting: "2") + self.divTest(lhs: "429496735", rhs: "1", expecting: "429496735") + self.divTest(lhs: "429496735", rhs: "-1", expecting: "-429496735") + self.divTest(lhs: "429496735", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "429496735", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "429496735", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "429496735", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "429496735", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "429496735", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "429496735", rhs: "858993463", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "429496735", rhs: "644245099", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "429496735", rhs: "429496735", expecting: "1") + self.divTest(lhs: "429496735", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "429496735", rhs: "214748371", expecting: "1") + self.divTest(lhs: "429496735", rhs: "-214748372", expecting: "-1") + self.divTest(lhs: "-429496736", rhs: "1", expecting: "-429496736") + self.divTest(lhs: "-429496736", rhs: "-1", expecting: "429496736") + self.divTest(lhs: "-429496736", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "858993463", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "644245099", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "429496735", expecting: "-1") + self.divTest(lhs: "-429496736", rhs: "-429496736", expecting: "1") + self.divTest(lhs: "-429496736", rhs: "214748371", expecting: "-1") + self.divTest(lhs: "-429496736", rhs: "-214748372", expecting: "1") + self.divTest(lhs: "214748371", rhs: "1", expecting: "214748371") + self.divTest(lhs: "214748371", rhs: "-1", expecting: "-214748371") + self.divTest(lhs: "214748371", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "214748371", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "214748371", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "214748371", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "214748371", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "214748371", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "214748371", rhs: "858993463", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "214748371", rhs: "644245099", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "214748371", rhs: "429496735", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "214748371", rhs: "214748371", expecting: "1") + self.divTest(lhs: "214748371", rhs: "-214748372", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "1", expecting: "-214748372") + self.divTest(lhs: "-214748372", rhs: "-1", expecting: "214748372") + self.divTest(lhs: "-214748372", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "858993463", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "644245099", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "429496735", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "214748371", expecting: "-1") + self.divTest(lhs: "-214748372", rhs: "-214748372", expecting: "1") + } + + func test_div_smi_heap() { + self.divTest(lhs: "0", rhs: "1", expecting: "0") + self.divTest(lhs: "0", rhs: "-1", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "1", rhs: "1", expecting: "1") + self.divTest(lhs: "1", rhs: "-1", expecting: "-1") + self.divTest(lhs: "1", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-1", rhs: "1", expecting: "-1") + self.divTest(lhs: "-1", rhs: "-1", expecting: "1") + self.divTest(lhs: "-1", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "1", expecting: "2147483647") + self.divTest(lhs: "2147483647", rhs: "-1", expecting: "-2147483647") + self.divTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483648") + self.divTest(lhs: "-2147483648", rhs: "-1", expecting: "2147483648") + self.divTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "1", expecting: "1932735283") + self.divTest(lhs: "1932735283", rhs: "-1", expecting: "-1932735283") + self.divTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735284") + self.divTest(lhs: "-1932735284", rhs: "-1", expecting: "1932735284") + self.divTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "1", expecting: "1717986919") + self.divTest(lhs: "1717986919", rhs: "-1", expecting: "-1717986919") + self.divTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986920") + self.divTest(lhs: "-1717986920", rhs: "-1", expecting: "1717986920") + self.divTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "1", expecting: "1503238555") + self.divTest(lhs: "1503238555", rhs: "-1", expecting: "-1503238555") + self.divTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238556") + self.divTest(lhs: "-1503238556", rhs: "-1", expecting: "1503238556") + self.divTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "1", expecting: "1288490191") + self.divTest(lhs: "1288490191", rhs: "-1", expecting: "-1288490191") + self.divTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490192") + self.divTest(lhs: "-1288490192", rhs: "-1", expecting: "1288490192") + self.divTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "1", expecting: "1073741827") + self.divTest(lhs: "1073741827", rhs: "-1", expecting: "-1073741827") + self.divTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741828") + self.divTest(lhs: "-1073741828", rhs: "-1", expecting: "1073741828") + self.divTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "858993463", rhs: "1", expecting: "858993463") + self.divTest(lhs: "858993463", rhs: "-1", expecting: "-858993463") + self.divTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "1", expecting: "-858993464") + self.divTest(lhs: "-858993464", rhs: "-1", expecting: "858993464") + self.divTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "644245099", rhs: "1", expecting: "644245099") + self.divTest(lhs: "644245099", rhs: "-1", expecting: "-644245099") + self.divTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "1", expecting: "-644245100") + self.divTest(lhs: "-644245100", rhs: "-1", expecting: "644245100") + self.divTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "429496735", rhs: "1", expecting: "429496735") + self.divTest(lhs: "429496735", rhs: "-1", expecting: "-429496735") + self.divTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "1", expecting: "-429496736") + self.divTest(lhs: "-429496736", rhs: "-1", expecting: "429496736") + self.divTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "214748371", rhs: "1", expecting: "214748371") + self.divTest(lhs: "214748371", rhs: "-1", expecting: "-214748371") + self.divTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "1", expecting: "-214748372") + self.divTest(lhs: "-214748372", rhs: "-1", expecting: "214748372") + self.divTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "0") + } + + func test_div_heap_smi() { + self.divTest(lhs: "0", rhs: "1", expecting: "0") + self.divTest(lhs: "0", rhs: "-1", expecting: "0") + self.divTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "0", rhs: "858993463", expecting: "0") + self.divTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "0", rhs: "644245099", expecting: "0") + self.divTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "0", rhs: "429496735", expecting: "0") + self.divTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "0", rhs: "214748371", expecting: "0") + self.divTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.divTest(lhs: "1", rhs: "1", expecting: "1") + self.divTest(lhs: "1", rhs: "-1", expecting: "-1") + self.divTest(lhs: "1", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "1", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "1", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "1", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "1", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "1", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "1", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "1", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "1", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "1", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "1", rhs: "858993463", expecting: "0") + self.divTest(lhs: "1", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "1", rhs: "644245099", expecting: "0") + self.divTest(lhs: "1", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "1", rhs: "429496735", expecting: "0") + self.divTest(lhs: "1", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "1", rhs: "214748371", expecting: "0") + self.divTest(lhs: "1", rhs: "-214748372", expecting: "0") + self.divTest(lhs: "-1", rhs: "1", expecting: "-1") + self.divTest(lhs: "-1", rhs: "-1", expecting: "1") + self.divTest(lhs: "-1", rhs: "2147483647", expecting: "0") + self.divTest(lhs: "-1", rhs: "-2147483648", expecting: "0") + self.divTest(lhs: "-1", rhs: "1932735283", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1932735284", expecting: "0") + self.divTest(lhs: "-1", rhs: "1717986919", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-1", rhs: "1503238555", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1503238556", expecting: "0") + self.divTest(lhs: "-1", rhs: "1288490191", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1288490192", expecting: "0") + self.divTest(lhs: "-1", rhs: "1073741827", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1073741828", expecting: "0") + self.divTest(lhs: "-1", rhs: "858993463", expecting: "0") + self.divTest(lhs: "-1", rhs: "-858993464", expecting: "0") + self.divTest(lhs: "-1", rhs: "644245099", expecting: "0") + self.divTest(lhs: "-1", rhs: "-644245100", expecting: "0") + self.divTest(lhs: "-1", rhs: "429496735", expecting: "0") + self.divTest(lhs: "-1", rhs: "-429496736", expecting: "0") + self.divTest(lhs: "-1", rhs: "214748371", expecting: "0") + self.divTest(lhs: "-1", rhs: "-214748372", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551615") + self.divTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-18446744073709551615") + self.divTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "8589934596") + self.divTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "-8589934591") + self.divTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "9544371769") + self.divTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "-9544371764") + self.divTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "10737418236") + self.divTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "12271335120") + self.divTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "-12271335111") + self.divTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "14316557628") + self.divTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "-14316557617") + self.divTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "17179869136") + self.divTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "-17179869120") + self.divTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "21474836385") + self.divTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "-21474836360") + self.divTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "28633115102") + self.divTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "-28633115057") + self.divTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "42949672420") + self.divTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "-42949672320") + self.divTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "85899343440") + self.divTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "-85899343040") + self.divTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551615") + self.divTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "18446744073709551615") + self.divTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "-8589934596") + self.divTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "8589934591") + self.divTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "-9544371769") + self.divTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "9544371764") + self.divTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "-10737418236") + self.divTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "-12271335120") + self.divTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "12271335111") + self.divTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "-14316557628") + self.divTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "14316557617") + self.divTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "-17179869136") + self.divTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "17179869120") + self.divTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "-21474836385") + self.divTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "21474836360") + self.divTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "-28633115102") + self.divTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "28633115057") + self.divTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "-42949672420") + self.divTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "42949672320") + self.divTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "-85899343440") + self.divTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "85899343040") + self.divTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551617") + self.divTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-18446744073709551617") + self.divTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "8589934596") + self.divTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "-8589934592") + self.divTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "9544371769") + self.divTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "-9544371764") + self.divTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "10737418236") + self.divTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "12271335120") + self.divTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "-12271335111") + self.divTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "14316557628") + self.divTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "-14316557617") + self.divTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "17179869136") + self.divTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "-17179869120") + self.divTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "21474836385") + self.divTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "-21474836360") + self.divTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "28633115102") + self.divTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "-28633115057") + self.divTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "42949672420") + self.divTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "-42949672320") + self.divTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "85899343440") + self.divTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "-85899343040") + self.divTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551617") + self.divTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "18446744073709551617") + self.divTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "-8589934596") + self.divTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "8589934592") + self.divTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "-9544371769") + self.divTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "9544371764") + self.divTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "-10737418236") + self.divTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "-12271335120") + self.divTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "12271335111") + self.divTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "-14316557628") + self.divTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "14316557617") + self.divTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "-17179869136") + self.divTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "17179869120") + self.divTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "-21474836385") + self.divTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "21474836360") + self.divTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "-28633115102") + self.divTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "28633115057") + self.divTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "-42949672420") + self.divTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "42949672320") + self.divTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "-85899343440") + self.divTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "85899343040") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763074") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763074") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "158456325102315651524875780116") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-158456325028528675195677835264") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "176062583383250867822968879647") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-176062583292155835388485281828") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "198070406216485553742345666547") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-198070406101193403429300469590") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "226366178401363889633486250960") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-226366178250778224106315000282") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "264093874596627382072031118400") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-264093874391663559889807334680") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "316912649171613637327198348496") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-316912648876465734071990861760") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "396140810818881008739203119530") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-396140810357712411513554137480") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "528187746323761266955049589760") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-528187745503905987770526080067") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "792281615181401701416476079860") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-792281613336727344726133964160") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "1584563204537362769945395075921") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-1584563197158665600882046973122") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763074") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763074") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "-158456325102315651524875780116") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "158456325028528675195677835264") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "-176062583383250867822968879647") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "176062583292155835388485281828") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "-198070406216485553742345666547") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "198070406101193403429300469590") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "-226366178401363889633486250960") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "226366178250778224106315000282") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "-264093874596627382072031118400") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "264093874391663559889807334680") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "-316912649171613637327198348496") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "316912648876465734071990861760") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "-396140810818881008739203119530") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "396140810357712411513554137480") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "-528187746323761266955049589760") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "528187745503905987770526080067") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "-792281615181401701416476079860") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "792281613336727344726133964160") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "-1584563204537362769945395075921") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "1584563197158665600882046973122") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "2923003276022935305041861469899958378128063070300") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-2923003274661805836724282315489623389677450952704") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "3247781416626976724218240577879253908674392381987") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-3247781414946569974513050881441632201821311560043") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "3653754092051198420397492070223116374619298201567") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-3653754089924433629865094756978442736345546749130") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "4175718959913638434131536865118220270109196284720") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-4175718957135823200982581873751210079400503292608") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "4871672116118329661786578674117002527503647806391") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-4871672112337414489621783754369116177960521033794") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "5846006532990058106878939863678741969144374139440") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-5846006527545540271638141079337316589114620870720") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "7307508154327689877328384461814633556775574571810") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-7307508145820630789475196934734236048867838551160") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "9743344179303847159753642389834529952723253724362") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-9743344164180186647157043425009430949510765258833") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "14615016189556553356607831156270706791311598481077") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-14615016155528317599406283164511739951873948386080") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "29230031902717812767559266640721308861572961199569") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-29230031766604874492442504556214020300049855163762") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "-2923003276022935305041861469899958378128063070300") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "2923003274661805836724282315489623389677450952704") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "-3247781416626976724218240577879253908674392381987") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "3247781414946569974513050881441632201821311560043") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "-3653754092051198420397492070223116374619298201567") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "3653754089924433629865094756978442736345546749130") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "-4175718959913638434131536865118220270109196284720") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "4175718957135823200982581873751210079400503292608") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "-4871672116118329661786578674117002527503647806391") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "4871672112337414489621783754369116177960521033794") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "-5846006532990058106878939863678741969144374139440") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "5846006527545540271638141079337316589114620870720") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "-7307508154327689877328384461814633556775574571810") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "7307508145820630789475196934734236048867838551160") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "-9743344179303847159753642389834529952723253724362") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "9743344164180186647157043425009430949510765258833") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "-14615016189556553356607831156270706791311598481077") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "14615016155528317599406283164511739951873948386080") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "-29230031902717812767559266640721308861572961199569") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "29230031766604874492442504556214020300049855163762") + self.divTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551623") + self.divTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-18446744073709551623") + self.divTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "8589934596") + self.divTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "-8589934592") + self.divTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "9544371769") + self.divTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "-9544371764") + self.divTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "10737418236") + self.divTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "12271335120") + self.divTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "-12271335111") + self.divTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "14316557628") + self.divTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "-14316557617") + self.divTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "17179869136") + self.divTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "-17179869120") + self.divTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "21474836385") + self.divTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "-21474836360") + self.divTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "28633115102") + self.divTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "-28633115057") + self.divTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "42949672420") + self.divTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "-42949672320") + self.divTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "85899343440") + self.divTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "-85899343040") + self.divTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551623") + self.divTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "18446744073709551623") + self.divTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "-8589934596") + self.divTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "8589934592") + self.divTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "-9544371769") + self.divTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "9544371764") + self.divTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "-10737418236") + self.divTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "-12271335120") + self.divTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "12271335111") + self.divTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "-14316557628") + self.divTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "14316557617") + self.divTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "-17179869136") + self.divTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "17179869120") + self.divTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "-21474836385") + self.divTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "21474836360") + self.divTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "-28633115102") + self.divTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "28633115057") + self.divTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "-42949672420") + self.divTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "42949672320") + self.divTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "-85899343440") + self.divTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "85899343040") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072770") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072770") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "158456325102315651576415387692") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-158456325028528675247217442816") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "176062583383250867880235110266") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-176062583292155835445751512418") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "198070406216485553806770175965") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-198070406101193403493724978970") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "226366178401363889707114261680") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-226366178250778224179943010953") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "264093874596627382157930464173") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-264093874391663559975706680387") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "316912649171613637430277563312") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-316912648876465734175070076480") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "396140810818881008868052137840") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-396140810357712411642403155640") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "528187746323761267126848280374") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-528187745503905987942324770413") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "792281615181401701674174114380") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-792281613336727344983831998080") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "1584563204537362770460791136561") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-1584563197158665601397443031362") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072770") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072770") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "-158456325102315651576415387692") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "158456325028528675247217442816") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "-176062583383250867880235110266") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "176062583292155835445751512418") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "-198070406216485553806770175965") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "198070406101193403493724978970") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "-226366178401363889707114261680") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "226366178250778224179943010953") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "-264093874596627382157930464173") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "264093874391663559975706680387") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "-316912649171613637430277563312") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "316912648876465734175070076480") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "-396140810818881008868052137840") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "396140810357712411642403155640") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "-528187746323761267126848280374") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "528187745503905987942324770413") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "-792281615181401701674174114380") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "792281613336727344983831998080") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "-1584563204537362770460791136561") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "1584563197158665601397443031362") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "2923003276022935305992599420513852287174238535844") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-2923003274661805837675020265660795440748438749184") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "3247781416626976725274616078178759115497673198633") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-3247781414946569975569426381194567214037690789838") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "3653754092051198421585914507522029696944523182019") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-3653754089924433631053517193585603156792500547910") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "4175718959913638435489733935526403607762857769040") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-4175718957135823202340778943255879423891137272960") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "4871672116118329663371141921696766819764035825246") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-4871672112337414491206347000719097537127566350464") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "5846006532990058108780415758708423792901405800784") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-5846006527545540273539616972596110993340407611840") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "7307508154327689879705229326727919608953095252370") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-7307508145820630791852041796880510517691465339720") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "9743344179303847162922768867777097554109953881701") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-9743344164180186650326169898032866875790324358543") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "14615016189556553361361520847359116999295058891197") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-14615016155528317604159972844532104019715356103200") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "29230031902717812777066645867945485480214539533816") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-29230031766604874501949883739166013904311344886014") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "-2923003276022935305992599420513852287174238535844") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "2923003274661805837675020265660795440748438749184") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "-3247781416626976725274616078178759115497673198633") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "3247781414946569975569426381194567214037690789838") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "-3653754092051198421585914507522029696944523182019") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "3653754089924433631053517193585603156792500547910") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "-4175718959913638435489733935526403607762857769040") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "4175718957135823202340778943255879423891137272960") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "-4871672116118329663371141921696766819764035825246") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "4871672112337414491206347000719097537127566350464") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "-5846006532990058108780415758708423792901405800784") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "5846006527545540273539616972596110993340407611840") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "-7307508154327689879705229326727919608953095252370") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "7307508145820630791852041796880510517691465339720") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "-9743344179303847162922768867777097554109953881701") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "9743344164180186650326169898032866875790324358543") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "-14615016189556553361361520847359116999295058891197") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "14615016155528317604159972844532104019715356103200") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "-29230031902717812777066645867945485480214539533816") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "29230031766604874501949883739166013904311344886014") + self.divTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551629") + self.divTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-18446744073709551629") + self.divTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "8589934596") + self.divTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "-8589934592") + self.divTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "9544371769") + self.divTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "-9544371764") + self.divTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "10737418236") + self.divTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "12271335120") + self.divTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "-12271335111") + self.divTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "14316557628") + self.divTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "-14316557617") + self.divTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "17179869136") + self.divTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "-17179869120") + self.divTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "21474836385") + self.divTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "-21474836360") + self.divTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "28633115102") + self.divTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "-28633115057") + self.divTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "42949672420") + self.divTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "-42949672320") + self.divTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "85899343440") + self.divTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "-85899343040") + self.divTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551629") + self.divTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "18446744073709551629") + self.divTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "-8589934596") + self.divTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "8589934592") + self.divTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "-9544371769") + self.divTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "9544371764") + self.divTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "-10737418236") + self.divTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "-12271335120") + self.divTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "12271335111") + self.divTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "-14316557628") + self.divTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "14316557617") + self.divTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "-17179869136") + self.divTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "17179869120") + self.divTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "-21474836385") + self.divTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "21474836360") + self.divTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "-28633115102") + self.divTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "28633115057") + self.divTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "-42949672420") + self.divTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "42949672320") + self.divTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "-85899343440") + self.divTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "85899343040") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382466") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382466") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "158456325102315651627954995268") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-158456325028528675298757050368") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "176062583383250867937501340885") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-176062583292155835503017743008") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "198070406216485553871194685382") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-198070406101193403558149488350") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "226366178401363889780742272400") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-226366178250778224253571021624") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "264093874596627382243829809946") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-264093874391663560061606026093") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "316912649171613637533356778128") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-316912648876465734278149291200") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "396140810818881008996901156150") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-396140810357712411771252173800") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "528187746323761267298646970987") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-528187745503905988114123460760") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "792281615181401701931872148900") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-792281613336727345241530032000") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "1584563204537362770976187197201") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-1584563197158665601912839089602") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382466") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382466") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "-158456325102315651627954995268") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "158456325028528675298757050368") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "-176062583383250867937501340885") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "176062583292155835503017743008") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "-198070406216485553871194685382") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "198070406101193403558149488350") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "-226366178401363889780742272400") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "226366178250778224253571021624") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "-264093874596627382243829809946") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "264093874391663560061606026093") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "-316912649171613637533356778128") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "316912648876465734278149291200") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "-396140810818881008996901156150") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "396140810357712411771252173800") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "-528187746323761267298646970987") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "528187745503905988114123460760") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "-792281615181401701931872148900") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "792281613336727345241530032000") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "-1584563204537362770976187197201") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "1584563197158665601912839089602") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "2923003276022935306943337371127746196220414001388") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-2923003274661805838625758215831967491819426545664") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "3247781416626976726330991578478264322320954015279") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-3247781414946569976625801880947502226254070019632") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "3653754092051198422774336944820943019269748162471") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-3653754089924433632241939630192763577239454346690") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "4175718959913638436847931005934586945416519253360") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-4175718957135823203698976012760548768381771253311") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "4871672116118329664955705169276531112024423844100") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-4871672112337414492790910247069078896294611667133") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "5846006532990058110681891653738105616658437462128") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-5846006527545540275441092865854905397566194352960") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "7307508154327689882082074191641205661130615932930") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-7307508145820630794228886659026784986515092128280") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "9743344179303847166091895345719665155496654039040") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-9743344164180186653495296371056302802069883458253") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "14615016189556553366115210538447527207278519301318") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-14615016155528317608913662524552468087556763820320") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "29230031902717812786574025095169662098856117868063") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-29230031766604874511457262922118007508572834608266") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "-2923003276022935306943337371127746196220414001388") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "2923003274661805838625758215831967491819426545664") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "-3247781416626976726330991578478264322320954015279") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "3247781414946569976625801880947502226254070019632") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "-3653754092051198422774336944820943019269748162471") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "3653754089924433632241939630192763577239454346690") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "-4175718959913638436847931005934586945416519253360") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "4175718957135823203698976012760548768381771253311") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "-4871672116118329664955705169276531112024423844100") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "4871672112337414492790910247069078896294611667133") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "-5846006532990058110681891653738105616658437462128") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "5846006527545540275441092865854905397566194352960") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "-7307508154327689882082074191641205661130615932930") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "7307508145820630794228886659026784986515092128280") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "-9743344179303847166091895345719665155496654039040") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "9743344164180186653495296371056302802069883458253") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "-14615016189556553366115210538447527207278519301318") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "14615016155528317608913662524552468087556763820320") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "-29230031902717812786574025095169662098856117868063") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "29230031766604874511457262922118007508572834608266") + self.divTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551635") + self.divTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-18446744073709551635") + self.divTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "8589934596") + self.divTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "-8589934592") + self.divTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "9544371769") + self.divTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "-9544371764") + self.divTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "10737418236") + self.divTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "12271335120") + self.divTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "-12271335111") + self.divTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "14316557628") + self.divTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "-14316557617") + self.divTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "17179869136") + self.divTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "-17179869120") + self.divTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "21474836385") + self.divTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "-21474836360") + self.divTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "28633115102") + self.divTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "-28633115057") + self.divTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "42949672420") + self.divTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "-42949672320") + self.divTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "85899343440") + self.divTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "-85899343040") + self.divTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551635") + self.divTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "18446744073709551635") + self.divTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "-8589934596") + self.divTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "8589934592") + self.divTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "-9544371769") + self.divTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "9544371764") + self.divTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "-10737418236") + self.divTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "-12271335120") + self.divTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "12271335111") + self.divTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "-14316557628") + self.divTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "14316557617") + self.divTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "-17179869136") + self.divTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "17179869120") + self.divTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "-21474836385") + self.divTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "21474836360") + self.divTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "-28633115102") + self.divTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "28633115057") + self.divTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "-42949672420") + self.divTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "42949672320") + self.divTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "-85899343440") + self.divTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "85899343040") + } + + func test_div_heap_heap() { + self.divTest(lhs: "0", rhs: "1", expecting: "0") + self.divTest(lhs: "0", rhs: "-1", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "1", rhs: "1", expecting: "1") + self.divTest(lhs: "1", rhs: "-1", expecting: "-1") + self.divTest(lhs: "1", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "1", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "1", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-1", rhs: "1", expecting: "-1") + self.divTest(lhs: "-1", rhs: "-1", expecting: "1") + self.divTest(lhs: "-1", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-1", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551615") + self.divTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-18446744073709551615") + self.divTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "1") + self.divTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "-1") + self.divTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551615") + self.divTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "18446744073709551615") + self.divTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "-1") + self.divTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "1") + self.divTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551617") + self.divTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-18446744073709551617") + self.divTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "1") + self.divTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "-1") + self.divTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "1") + self.divTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "-1") + self.divTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551617") + self.divTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "18446744073709551617") + self.divTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "-1") + self.divTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "1") + self.divTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "-1") + self.divTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "1") + self.divTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763074") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763074") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "18446744073709551618") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-18446744073709551618") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-18446744073709551616") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "1") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "18446744073709551610") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-18446744073709551610") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "18446744073709551604") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-18446744073709551604") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "18446744073709551598") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-18446744073709551598") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763074") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763074") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "-18446744073709551618") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "18446744073709551618") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "-18446744073709551616") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "18446744073709551616") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "1") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "-18446744073709551610") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "18446744073709551610") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "-18446744073709551604") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "18446744073709551604") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "-18446744073709551598") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "18446744073709551598") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "340282366920938463518714839652896866306") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-340282366920938463518714839652896866306") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "340282366920938463481821351505477763070") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-340282366920938463481821351505477763070") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551616") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551616") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "340282366920938463371140887063220453409") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-340282366920938463371140887063220453409") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551611") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551611") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "340282366920938463260460422620963143821") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-340282366920938463260460422620963143821") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551605") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551605") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "340282366920938463149779958178705834305") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-340282366920938463149779958178705834305") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "-340282366920938463518714839652896866306") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "340282366920938463518714839652896866306") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "-340282366920938463481821351505477763070") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "340282366920938463481821351505477763070") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551616") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551616") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "-340282366920938463371140887063220453409") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "340282366920938463371140887063220453409") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551611") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551611") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "-340282366920938463260460422620963143821") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "340282366920938463260460422620963143821") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551605") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551605") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "-340282366920938463149779958178705834305") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "340282366920938463149779958178705834305") + self.divTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551623") + self.divTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-18446744073709551623") + self.divTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "1") + self.divTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "-1") + self.divTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "1") + self.divTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "-1") + self.divTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "1") + self.divTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "-1") + self.divTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551623") + self.divTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "18446744073709551623") + self.divTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "-1") + self.divTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "1") + self.divTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "-1") + self.divTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "1") + self.divTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "-1") + self.divTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "1") + self.divTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072770") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072770") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "18446744073709551624") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-18446744073709551624") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "18446744073709551621") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-18446744073709551621") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "1") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "18446744073709551616") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-18446744073709551616") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "1") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "18446744073709551610") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-18446744073709551610") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "18446744073709551604") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-18446744073709551604") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072770") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072770") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "-18446744073709551624") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "18446744073709551624") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "-18446744073709551621") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "18446744073709551621") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "1") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "-18446744073709551616") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "18446744073709551616") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "-1") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "1") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "-18446744073709551610") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "18446744073709551610") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "-18446744073709551604") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "18446744073709551604") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "340282366920938463629395304095154176002") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-340282366920938463629395304095154176002") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "340282366920938463592501815947735072754") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-340282366920938463592501815947735072754") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551622") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551622") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "340282366920938463481821351505477763058") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-340282366920938463481821351505477763058") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551616") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551616") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "340282366920938463371140887063220453433") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-340282366920938463371140887063220453433") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551611") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551611") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "340282366920938463260460422620963143881") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-340282366920938463260460422620963143881") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "-340282366920938463629395304095154176002") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "340282366920938463629395304095154176002") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "-340282366920938463592501815947735072754") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "340282366920938463592501815947735072754") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551622") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551622") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "-340282366920938463481821351505477763058") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "340282366920938463481821351505477763058") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551616") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551616") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "-340282366920938463371140887063220453433") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "340282366920938463371140887063220453433") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551611") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551611") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "-340282366920938463260460422620963143881") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "340282366920938463260460422620963143881") + self.divTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551629") + self.divTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-18446744073709551629") + self.divTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "1") + self.divTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "-1") + self.divTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "1") + self.divTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "-1") + self.divTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "1") + self.divTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "-1") + self.divTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "1") + self.divTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "-1") + self.divTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551629") + self.divTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "18446744073709551629") + self.divTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "-1") + self.divTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "1") + self.divTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "-1") + self.divTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "1") + self.divTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "-1") + self.divTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "1") + self.divTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "-1") + self.divTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "1") + self.divTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382466") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382466") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "18446744073709551630") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-18446744073709551630") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "18446744073709551627") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-18446744073709551627") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "1") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "18446744073709551621") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "1") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-18446744073709551616") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "1") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "18446744073709551610") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-18446744073709551610") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382466") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382466") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "-18446744073709551630") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "18446744073709551630") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "-18446744073709551627") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "18446744073709551627") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "1") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "-18446744073709551621") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "18446744073709551621") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "-1") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "1") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "-18446744073709551616") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "18446744073709551616") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "-1") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "1") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "-18446744073709551610") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "18446744073709551610") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "340282366920938463740075768537411485698") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-340282366920938463740075768537411485698") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "340282366920938463703182280389992382438") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-340282366920938463703182280389992382438") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551628") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551628") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "340282366920938463592501815947735072706") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-340282366920938463592501815947735072706") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551622") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551622") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "340282366920938463481821351505477763046") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-340282366920938463481821351505477763046") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551616") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551616") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "340282366920938463371140887063220453457") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-340282366920938463371140887063220453457") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "-340282366920938463740075768537411485698") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "340282366920938463740075768537411485698") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "-340282366920938463703182280389992382438") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "340282366920938463703182280389992382438") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551628") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551628") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "-340282366920938463592501815947735072706") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "340282366920938463592501815947735072706") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551622") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551622") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "-340282366920938463481821351505477763046") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "340282366920938463481821351505477763046") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551616") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551616") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "-340282366920938463371140887063220453457") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "340282366920938463371140887063220453457") + self.divTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551635") + self.divTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-18446744073709551635") + self.divTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "1") + self.divTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "-1") + self.divTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "1") + self.divTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "-1") + self.divTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "1") + self.divTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "-1") + self.divTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "1") + self.divTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "-1") + self.divTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "1") + self.divTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "-1") + self.divTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551635") + self.divTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "18446744073709551635") + self.divTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "-1") + self.divTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "1") + self.divTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "-1") + self.divTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "1") + self.divTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "-1") + self.divTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "1") + self.divTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "-1") + self.divTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "1") + self.divTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "-1") + self.divTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "1") + } + + // MARK: - Mod + + func test_mod_smi_smi() { + self.modTest(lhs: "0", rhs: "1", expecting: "0") + self.modTest(lhs: "0", rhs: "-1", expecting: "0") + self.modTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.modTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.modTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.modTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.modTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.modTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.modTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.modTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.modTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.modTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.modTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.modTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.modTest(lhs: "0", rhs: "858993463", expecting: "0") + self.modTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.modTest(lhs: "0", rhs: "644245099", expecting: "0") + self.modTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.modTest(lhs: "0", rhs: "429496735", expecting: "0") + self.modTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.modTest(lhs: "0", rhs: "214748371", expecting: "0") + self.modTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.modTest(lhs: "1", rhs: "1", expecting: "0") + self.modTest(lhs: "1", rhs: "-1", expecting: "0") + self.modTest(lhs: "1", rhs: "2147483647", expecting: "1") + self.modTest(lhs: "1", rhs: "-2147483648", expecting: "1") + self.modTest(lhs: "1", rhs: "1932735283", expecting: "1") + self.modTest(lhs: "1", rhs: "-1932735284", expecting: "1") + self.modTest(lhs: "1", rhs: "1717986919", expecting: "1") + self.modTest(lhs: "1", rhs: "-1717986920", expecting: "1") + self.modTest(lhs: "1", rhs: "1503238555", expecting: "1") + self.modTest(lhs: "1", rhs: "-1503238556", expecting: "1") + self.modTest(lhs: "1", rhs: "1288490191", expecting: "1") + self.modTest(lhs: "1", rhs: "-1288490192", expecting: "1") + self.modTest(lhs: "1", rhs: "1073741827", expecting: "1") + self.modTest(lhs: "1", rhs: "-1073741828", expecting: "1") + self.modTest(lhs: "1", rhs: "858993463", expecting: "1") + self.modTest(lhs: "1", rhs: "-858993464", expecting: "1") + self.modTest(lhs: "1", rhs: "644245099", expecting: "1") + self.modTest(lhs: "1", rhs: "-644245100", expecting: "1") + self.modTest(lhs: "1", rhs: "429496735", expecting: "1") + self.modTest(lhs: "1", rhs: "-429496736", expecting: "1") + self.modTest(lhs: "1", rhs: "214748371", expecting: "1") + self.modTest(lhs: "1", rhs: "-214748372", expecting: "1") + self.modTest(lhs: "-1", rhs: "1", expecting: "0") + self.modTest(lhs: "-1", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1", rhs: "2147483647", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-2147483648", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1932735283", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1932735284", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1717986919", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1503238555", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1503238556", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1288490191", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1288490192", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1073741827", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1073741828", expecting: "-1") + self.modTest(lhs: "-1", rhs: "858993463", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-858993464", expecting: "-1") + self.modTest(lhs: "-1", rhs: "644245099", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-644245100", expecting: "-1") + self.modTest(lhs: "-1", rhs: "429496735", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-429496736", expecting: "-1") + self.modTest(lhs: "-1", rhs: "214748371", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-214748372", expecting: "-1") + self.modTest(lhs: "2147483647", rhs: "1", expecting: "0") + self.modTest(lhs: "2147483647", rhs: "-1", expecting: "0") + self.modTest(lhs: "2147483647", rhs: "2147483647", expecting: "0") + self.modTest(lhs: "2147483647", rhs: "-2147483648", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "1932735283", expecting: "214748364") + self.modTest(lhs: "2147483647", rhs: "-1932735284", expecting: "214748363") + self.modTest(lhs: "2147483647", rhs: "1717986919", expecting: "429496728") + self.modTest(lhs: "2147483647", rhs: "-1717986920", expecting: "429496727") + self.modTest(lhs: "2147483647", rhs: "1503238555", expecting: "644245092") + self.modTest(lhs: "2147483647", rhs: "-1503238556", expecting: "644245091") + self.modTest(lhs: "2147483647", rhs: "1288490191", expecting: "858993456") + self.modTest(lhs: "2147483647", rhs: "-1288490192", expecting: "858993455") + self.modTest(lhs: "2147483647", rhs: "1073741827", expecting: "1073741820") + self.modTest(lhs: "2147483647", rhs: "-1073741828", expecting: "1073741819") + self.modTest(lhs: "2147483647", rhs: "858993463", expecting: "429496721") + self.modTest(lhs: "2147483647", rhs: "-858993464", expecting: "429496719") + self.modTest(lhs: "2147483647", rhs: "644245099", expecting: "214748350") + self.modTest(lhs: "2147483647", rhs: "-644245100", expecting: "214748347") + self.modTest(lhs: "2147483647", rhs: "429496735", expecting: "429496707") + self.modTest(lhs: "2147483647", rhs: "-429496736", expecting: "429496703") + self.modTest(lhs: "2147483647", rhs: "214748371", expecting: "214748308") + self.modTest(lhs: "2147483647", rhs: "-214748372", expecting: "214748299") + self.modTest(lhs: "-2147483648", rhs: "1", expecting: "0") + self.modTest(lhs: "-2147483648", rhs: "-1", expecting: "0") + self.modTest(lhs: "-2147483648", rhs: "2147483647", expecting: "-1") + self.modTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "0") + self.modTest(lhs: "-2147483648", rhs: "1932735283", expecting: "-214748365") + self.modTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "-214748364") + self.modTest(lhs: "-2147483648", rhs: "1717986919", expecting: "-429496729") + self.modTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "-429496728") + self.modTest(lhs: "-2147483648", rhs: "1503238555", expecting: "-644245093") + self.modTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "-644245092") + self.modTest(lhs: "-2147483648", rhs: "1288490191", expecting: "-858993457") + self.modTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "-858993456") + self.modTest(lhs: "-2147483648", rhs: "1073741827", expecting: "-1073741821") + self.modTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "-1073741820") + self.modTest(lhs: "-2147483648", rhs: "858993463", expecting: "-429496722") + self.modTest(lhs: "-2147483648", rhs: "-858993464", expecting: "-429496720") + self.modTest(lhs: "-2147483648", rhs: "644245099", expecting: "-214748351") + self.modTest(lhs: "-2147483648", rhs: "-644245100", expecting: "-214748348") + self.modTest(lhs: "-2147483648", rhs: "429496735", expecting: "-429496708") + self.modTest(lhs: "-2147483648", rhs: "-429496736", expecting: "-429496704") + self.modTest(lhs: "-2147483648", rhs: "214748371", expecting: "-214748309") + self.modTest(lhs: "-2147483648", rhs: "-214748372", expecting: "-214748300") + self.modTest(lhs: "1932735283", rhs: "1", expecting: "0") + self.modTest(lhs: "1932735283", rhs: "-1", expecting: "0") + self.modTest(lhs: "1932735283", rhs: "2147483647", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-2147483648", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "1932735283", expecting: "0") + self.modTest(lhs: "1932735283", rhs: "-1932735284", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "1717986919", expecting: "214748364") + self.modTest(lhs: "1932735283", rhs: "-1717986920", expecting: "214748363") + self.modTest(lhs: "1932735283", rhs: "1503238555", expecting: "429496728") + self.modTest(lhs: "1932735283", rhs: "-1503238556", expecting: "429496727") + self.modTest(lhs: "1932735283", rhs: "1288490191", expecting: "644245092") + self.modTest(lhs: "1932735283", rhs: "-1288490192", expecting: "644245091") + self.modTest(lhs: "1932735283", rhs: "1073741827", expecting: "858993456") + self.modTest(lhs: "1932735283", rhs: "-1073741828", expecting: "858993455") + self.modTest(lhs: "1932735283", rhs: "858993463", expecting: "214748357") + self.modTest(lhs: "1932735283", rhs: "-858993464", expecting: "214748355") + self.modTest(lhs: "1932735283", rhs: "644245099", expecting: "644245085") + self.modTest(lhs: "1932735283", rhs: "-644245100", expecting: "644245083") + self.modTest(lhs: "1932735283", rhs: "429496735", expecting: "214748343") + self.modTest(lhs: "1932735283", rhs: "-429496736", expecting: "214748339") + self.modTest(lhs: "1932735283", rhs: "214748371", expecting: "214748315") + self.modTest(lhs: "1932735283", rhs: "-214748372", expecting: "214748307") + self.modTest(lhs: "-1932735284", rhs: "1", expecting: "0") + self.modTest(lhs: "-1932735284", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1932735284", rhs: "2147483647", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "1932735283", expecting: "-1") + self.modTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "0") + self.modTest(lhs: "-1932735284", rhs: "1717986919", expecting: "-214748365") + self.modTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "-214748364") + self.modTest(lhs: "-1932735284", rhs: "1503238555", expecting: "-429496729") + self.modTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "-429496728") + self.modTest(lhs: "-1932735284", rhs: "1288490191", expecting: "-644245093") + self.modTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "-644245092") + self.modTest(lhs: "-1932735284", rhs: "1073741827", expecting: "-858993457") + self.modTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "-858993456") + self.modTest(lhs: "-1932735284", rhs: "858993463", expecting: "-214748358") + self.modTest(lhs: "-1932735284", rhs: "-858993464", expecting: "-214748356") + self.modTest(lhs: "-1932735284", rhs: "644245099", expecting: "-644245086") + self.modTest(lhs: "-1932735284", rhs: "-644245100", expecting: "-644245084") + self.modTest(lhs: "-1932735284", rhs: "429496735", expecting: "-214748344") + self.modTest(lhs: "-1932735284", rhs: "-429496736", expecting: "-214748340") + self.modTest(lhs: "-1932735284", rhs: "214748371", expecting: "-214748316") + self.modTest(lhs: "-1932735284", rhs: "-214748372", expecting: "-214748308") + self.modTest(lhs: "1717986919", rhs: "1", expecting: "0") + self.modTest(lhs: "1717986919", rhs: "-1", expecting: "0") + self.modTest(lhs: "1717986919", rhs: "2147483647", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-2147483648", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "1932735283", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-1932735284", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "1717986919", expecting: "0") + self.modTest(lhs: "1717986919", rhs: "-1717986920", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "1503238555", expecting: "214748364") + self.modTest(lhs: "1717986919", rhs: "-1503238556", expecting: "214748363") + self.modTest(lhs: "1717986919", rhs: "1288490191", expecting: "429496728") + self.modTest(lhs: "1717986919", rhs: "-1288490192", expecting: "429496727") + self.modTest(lhs: "1717986919", rhs: "1073741827", expecting: "644245092") + self.modTest(lhs: "1717986919", rhs: "-1073741828", expecting: "644245091") + self.modTest(lhs: "1717986919", rhs: "858993463", expecting: "858993456") + self.modTest(lhs: "1717986919", rhs: "-858993464", expecting: "858993455") + self.modTest(lhs: "1717986919", rhs: "644245099", expecting: "429496721") + self.modTest(lhs: "1717986919", rhs: "-644245100", expecting: "429496719") + self.modTest(lhs: "1717986919", rhs: "429496735", expecting: "429496714") + self.modTest(lhs: "1717986919", rhs: "-429496736", expecting: "429496711") + self.modTest(lhs: "1717986919", rhs: "214748371", expecting: "214748322") + self.modTest(lhs: "1717986919", rhs: "-214748372", expecting: "214748315") + self.modTest(lhs: "-1717986920", rhs: "1", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "2147483647", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "1932735283", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "1717986919", expecting: "-1") + self.modTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "1503238555", expecting: "-214748365") + self.modTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "-214748364") + self.modTest(lhs: "-1717986920", rhs: "1288490191", expecting: "-429496729") + self.modTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "-429496728") + self.modTest(lhs: "-1717986920", rhs: "1073741827", expecting: "-644245093") + self.modTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "-644245092") + self.modTest(lhs: "-1717986920", rhs: "858993463", expecting: "-858993457") + self.modTest(lhs: "-1717986920", rhs: "-858993464", expecting: "-858993456") + self.modTest(lhs: "-1717986920", rhs: "644245099", expecting: "-429496722") + self.modTest(lhs: "-1717986920", rhs: "-644245100", expecting: "-429496720") + self.modTest(lhs: "-1717986920", rhs: "429496735", expecting: "-429496715") + self.modTest(lhs: "-1717986920", rhs: "-429496736", expecting: "-429496712") + self.modTest(lhs: "-1717986920", rhs: "214748371", expecting: "-214748323") + self.modTest(lhs: "-1717986920", rhs: "-214748372", expecting: "-214748316") + self.modTest(lhs: "1503238555", rhs: "1", expecting: "0") + self.modTest(lhs: "1503238555", rhs: "-1", expecting: "0") + self.modTest(lhs: "1503238555", rhs: "2147483647", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-2147483648", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "1932735283", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-1932735284", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "1717986919", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-1717986920", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "1503238555", expecting: "0") + self.modTest(lhs: "1503238555", rhs: "-1503238556", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "1288490191", expecting: "214748364") + self.modTest(lhs: "1503238555", rhs: "-1288490192", expecting: "214748363") + self.modTest(lhs: "1503238555", rhs: "1073741827", expecting: "429496728") + self.modTest(lhs: "1503238555", rhs: "-1073741828", expecting: "429496727") + self.modTest(lhs: "1503238555", rhs: "858993463", expecting: "644245092") + self.modTest(lhs: "1503238555", rhs: "-858993464", expecting: "644245091") + self.modTest(lhs: "1503238555", rhs: "644245099", expecting: "214748357") + self.modTest(lhs: "1503238555", rhs: "-644245100", expecting: "214748355") + self.modTest(lhs: "1503238555", rhs: "429496735", expecting: "214748350") + self.modTest(lhs: "1503238555", rhs: "-429496736", expecting: "214748347") + self.modTest(lhs: "1503238555", rhs: "214748371", expecting: "214748329") + self.modTest(lhs: "1503238555", rhs: "-214748372", expecting: "214748323") + self.modTest(lhs: "-1503238556", rhs: "1", expecting: "0") + self.modTest(lhs: "-1503238556", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1503238556", rhs: "2147483647", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "1932735283", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "1717986919", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "1503238555", expecting: "-1") + self.modTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "0") + self.modTest(lhs: "-1503238556", rhs: "1288490191", expecting: "-214748365") + self.modTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "-214748364") + self.modTest(lhs: "-1503238556", rhs: "1073741827", expecting: "-429496729") + self.modTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "-429496728") + self.modTest(lhs: "-1503238556", rhs: "858993463", expecting: "-644245093") + self.modTest(lhs: "-1503238556", rhs: "-858993464", expecting: "-644245092") + self.modTest(lhs: "-1503238556", rhs: "644245099", expecting: "-214748358") + self.modTest(lhs: "-1503238556", rhs: "-644245100", expecting: "-214748356") + self.modTest(lhs: "-1503238556", rhs: "429496735", expecting: "-214748351") + self.modTest(lhs: "-1503238556", rhs: "-429496736", expecting: "-214748348") + self.modTest(lhs: "-1503238556", rhs: "214748371", expecting: "-214748330") + self.modTest(lhs: "-1503238556", rhs: "-214748372", expecting: "-214748324") + self.modTest(lhs: "1288490191", rhs: "1", expecting: "0") + self.modTest(lhs: "1288490191", rhs: "-1", expecting: "0") + self.modTest(lhs: "1288490191", rhs: "2147483647", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-2147483648", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "1932735283", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-1932735284", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "1717986919", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-1717986920", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "1503238555", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-1503238556", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "1288490191", expecting: "0") + self.modTest(lhs: "1288490191", rhs: "-1288490192", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "1073741827", expecting: "214748364") + self.modTest(lhs: "1288490191", rhs: "-1073741828", expecting: "214748363") + self.modTest(lhs: "1288490191", rhs: "858993463", expecting: "429496728") + self.modTest(lhs: "1288490191", rhs: "-858993464", expecting: "429496727") + self.modTest(lhs: "1288490191", rhs: "644245099", expecting: "644245092") + self.modTest(lhs: "1288490191", rhs: "-644245100", expecting: "644245091") + self.modTest(lhs: "1288490191", rhs: "429496735", expecting: "429496721") + self.modTest(lhs: "1288490191", rhs: "-429496736", expecting: "429496719") + self.modTest(lhs: "1288490191", rhs: "214748371", expecting: "214748336") + self.modTest(lhs: "1288490191", rhs: "-214748372", expecting: "214748331") + self.modTest(lhs: "-1288490192", rhs: "1", expecting: "0") + self.modTest(lhs: "-1288490192", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1288490192", rhs: "2147483647", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "1932735283", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "1717986919", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "1503238555", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "1288490191", expecting: "-1") + self.modTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "0") + self.modTest(lhs: "-1288490192", rhs: "1073741827", expecting: "-214748365") + self.modTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "-214748364") + self.modTest(lhs: "-1288490192", rhs: "858993463", expecting: "-429496729") + self.modTest(lhs: "-1288490192", rhs: "-858993464", expecting: "-429496728") + self.modTest(lhs: "-1288490192", rhs: "644245099", expecting: "-644245093") + self.modTest(lhs: "-1288490192", rhs: "-644245100", expecting: "-644245092") + self.modTest(lhs: "-1288490192", rhs: "429496735", expecting: "-429496722") + self.modTest(lhs: "-1288490192", rhs: "-429496736", expecting: "-429496720") + self.modTest(lhs: "-1288490192", rhs: "214748371", expecting: "-214748337") + self.modTest(lhs: "-1288490192", rhs: "-214748372", expecting: "-214748332") + self.modTest(lhs: "1073741827", rhs: "1", expecting: "0") + self.modTest(lhs: "1073741827", rhs: "-1", expecting: "0") + self.modTest(lhs: "1073741827", rhs: "2147483647", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-2147483648", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "1932735283", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-1932735284", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "1717986919", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-1717986920", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "1503238555", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-1503238556", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "1288490191", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-1288490192", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "1073741827", expecting: "0") + self.modTest(lhs: "1073741827", rhs: "-1073741828", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "858993463", expecting: "214748364") + self.modTest(lhs: "1073741827", rhs: "-858993464", expecting: "214748363") + self.modTest(lhs: "1073741827", rhs: "644245099", expecting: "429496728") + self.modTest(lhs: "1073741827", rhs: "-644245100", expecting: "429496727") + self.modTest(lhs: "1073741827", rhs: "429496735", expecting: "214748357") + self.modTest(lhs: "1073741827", rhs: "-429496736", expecting: "214748355") + self.modTest(lhs: "1073741827", rhs: "214748371", expecting: "214748343") + self.modTest(lhs: "1073741827", rhs: "-214748372", expecting: "214748339") + self.modTest(lhs: "-1073741828", rhs: "1", expecting: "0") + self.modTest(lhs: "-1073741828", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1073741828", rhs: "2147483647", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "1932735283", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "1717986919", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "1503238555", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "1288490191", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "1073741827", expecting: "-1") + self.modTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "0") + self.modTest(lhs: "-1073741828", rhs: "858993463", expecting: "-214748365") + self.modTest(lhs: "-1073741828", rhs: "-858993464", expecting: "-214748364") + self.modTest(lhs: "-1073741828", rhs: "644245099", expecting: "-429496729") + self.modTest(lhs: "-1073741828", rhs: "-644245100", expecting: "-429496728") + self.modTest(lhs: "-1073741828", rhs: "429496735", expecting: "-214748358") + self.modTest(lhs: "-1073741828", rhs: "-429496736", expecting: "-214748356") + self.modTest(lhs: "-1073741828", rhs: "214748371", expecting: "-214748344") + self.modTest(lhs: "-1073741828", rhs: "-214748372", expecting: "-214748340") + self.modTest(lhs: "858993463", rhs: "1", expecting: "0") + self.modTest(lhs: "858993463", rhs: "-1", expecting: "0") + self.modTest(lhs: "858993463", rhs: "2147483647", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-2147483648", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "1932735283", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-1932735284", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "1717986919", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-1717986920", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "1503238555", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-1503238556", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "1288490191", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-1288490192", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "1073741827", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-1073741828", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "858993463", expecting: "0") + self.modTest(lhs: "858993463", rhs: "-858993464", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "644245099", expecting: "214748364") + self.modTest(lhs: "858993463", rhs: "-644245100", expecting: "214748363") + self.modTest(lhs: "858993463", rhs: "429496735", expecting: "429496728") + self.modTest(lhs: "858993463", rhs: "-429496736", expecting: "429496727") + self.modTest(lhs: "858993463", rhs: "214748371", expecting: "214748350") + self.modTest(lhs: "858993463", rhs: "-214748372", expecting: "214748347") + self.modTest(lhs: "-858993464", rhs: "1", expecting: "0") + self.modTest(lhs: "-858993464", rhs: "-1", expecting: "0") + self.modTest(lhs: "-858993464", rhs: "2147483647", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-2147483648", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "1932735283", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-1932735284", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "1717986919", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-1717986920", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "1503238555", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-1503238556", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "1288490191", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-1288490192", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "1073741827", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-1073741828", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "858993463", expecting: "-1") + self.modTest(lhs: "-858993464", rhs: "-858993464", expecting: "0") + self.modTest(lhs: "-858993464", rhs: "644245099", expecting: "-214748365") + self.modTest(lhs: "-858993464", rhs: "-644245100", expecting: "-214748364") + self.modTest(lhs: "-858993464", rhs: "429496735", expecting: "-429496729") + self.modTest(lhs: "-858993464", rhs: "-429496736", expecting: "-429496728") + self.modTest(lhs: "-858993464", rhs: "214748371", expecting: "-214748351") + self.modTest(lhs: "-858993464", rhs: "-214748372", expecting: "-214748348") + self.modTest(lhs: "644245099", rhs: "1", expecting: "0") + self.modTest(lhs: "644245099", rhs: "-1", expecting: "0") + self.modTest(lhs: "644245099", rhs: "2147483647", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-2147483648", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "1932735283", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-1932735284", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "1717986919", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-1717986920", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "1503238555", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-1503238556", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "1288490191", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-1288490192", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "1073741827", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-1073741828", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "858993463", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-858993464", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "644245099", expecting: "0") + self.modTest(lhs: "644245099", rhs: "-644245100", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "429496735", expecting: "214748364") + self.modTest(lhs: "644245099", rhs: "-429496736", expecting: "214748363") + self.modTest(lhs: "644245099", rhs: "214748371", expecting: "214748357") + self.modTest(lhs: "644245099", rhs: "-214748372", expecting: "214748355") + self.modTest(lhs: "-644245100", rhs: "1", expecting: "0") + self.modTest(lhs: "-644245100", rhs: "-1", expecting: "0") + self.modTest(lhs: "-644245100", rhs: "2147483647", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-2147483648", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "1932735283", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-1932735284", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "1717986919", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-1717986920", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "1503238555", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-1503238556", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "1288490191", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-1288490192", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "1073741827", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-1073741828", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "858993463", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-858993464", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "644245099", expecting: "-1") + self.modTest(lhs: "-644245100", rhs: "-644245100", expecting: "0") + self.modTest(lhs: "-644245100", rhs: "429496735", expecting: "-214748365") + self.modTest(lhs: "-644245100", rhs: "-429496736", expecting: "-214748364") + self.modTest(lhs: "-644245100", rhs: "214748371", expecting: "-214748358") + self.modTest(lhs: "-644245100", rhs: "-214748372", expecting: "-214748356") + self.modTest(lhs: "429496735", rhs: "1", expecting: "0") + self.modTest(lhs: "429496735", rhs: "-1", expecting: "0") + self.modTest(lhs: "429496735", rhs: "2147483647", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-2147483648", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "1932735283", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-1932735284", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "1717986919", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-1717986920", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "1503238555", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-1503238556", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "1288490191", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-1288490192", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "1073741827", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-1073741828", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "858993463", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-858993464", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "644245099", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-644245100", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "429496735", expecting: "0") + self.modTest(lhs: "429496735", rhs: "-429496736", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "214748371", expecting: "214748364") + self.modTest(lhs: "429496735", rhs: "-214748372", expecting: "214748363") + self.modTest(lhs: "-429496736", rhs: "1", expecting: "0") + self.modTest(lhs: "-429496736", rhs: "-1", expecting: "0") + self.modTest(lhs: "-429496736", rhs: "2147483647", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-2147483648", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "1932735283", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-1932735284", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "1717986919", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-1717986920", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "1503238555", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-1503238556", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "1288490191", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-1288490192", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "1073741827", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-1073741828", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "858993463", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-858993464", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "644245099", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-644245100", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "429496735", expecting: "-1") + self.modTest(lhs: "-429496736", rhs: "-429496736", expecting: "0") + self.modTest(lhs: "-429496736", rhs: "214748371", expecting: "-214748365") + self.modTest(lhs: "-429496736", rhs: "-214748372", expecting: "-214748364") + self.modTest(lhs: "214748371", rhs: "1", expecting: "0") + self.modTest(lhs: "214748371", rhs: "-1", expecting: "0") + self.modTest(lhs: "214748371", rhs: "2147483647", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-2147483648", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "1932735283", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-1932735284", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "1717986919", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-1717986920", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "1503238555", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-1503238556", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "1288490191", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-1288490192", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "1073741827", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-1073741828", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "858993463", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-858993464", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "644245099", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-644245100", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "429496735", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-429496736", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "214748371", expecting: "0") + self.modTest(lhs: "214748371", rhs: "-214748372", expecting: "214748371") + self.modTest(lhs: "-214748372", rhs: "1", expecting: "0") + self.modTest(lhs: "-214748372", rhs: "-1", expecting: "0") + self.modTest(lhs: "-214748372", rhs: "2147483647", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-2147483648", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "1932735283", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-1932735284", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "1717986919", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-1717986920", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "1503238555", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-1503238556", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "1288490191", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-1288490192", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "1073741827", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-1073741828", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "858993463", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-858993464", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "644245099", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-644245100", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "429496735", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-429496736", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "214748371", expecting: "-1") + self.modTest(lhs: "-214748372", rhs: "-214748372", expecting: "0") + } + + func test_mod_smi_heap() { + self.modTest(lhs: "0", rhs: "1", expecting: "0") + self.modTest(lhs: "0", rhs: "-1", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.modTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.modTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.modTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.modTest(lhs: "1", rhs: "1", expecting: "0") + self.modTest(lhs: "1", rhs: "-1", expecting: "0") + self.modTest(lhs: "1", rhs: "18446744073709551615", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551615", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551617", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551617", expecting: "1") + self.modTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "1") + self.modTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "1") + self.modTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.modTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551623", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551623", expecting: "1") + self.modTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "1") + self.modTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "1") + self.modTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.modTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551629", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551629", expecting: "1") + self.modTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "1") + self.modTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "1") + self.modTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.modTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551635", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551635", expecting: "1") + self.modTest(lhs: "-1", rhs: "1", expecting: "0") + self.modTest(lhs: "-1", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-1") + self.modTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-1") + self.modTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-1") + self.modTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-1") + self.modTest(lhs: "2147483647", rhs: "1", expecting: "0") + self.modTest(lhs: "2147483647", rhs: "-1", expecting: "0") + self.modTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "2147483647") + self.modTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "2147483647") + self.modTest(lhs: "-2147483648", rhs: "1", expecting: "0") + self.modTest(lhs: "-2147483648", rhs: "-1", expecting: "0") + self.modTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "-2147483648") + self.modTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "-2147483648") + self.modTest(lhs: "1932735283", rhs: "1", expecting: "0") + self.modTest(lhs: "1932735283", rhs: "-1", expecting: "0") + self.modTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "1932735283") + self.modTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "1932735283") + self.modTest(lhs: "-1932735284", rhs: "1", expecting: "0") + self.modTest(lhs: "-1932735284", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "-1932735284") + self.modTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "-1932735284") + self.modTest(lhs: "1717986919", rhs: "1", expecting: "0") + self.modTest(lhs: "1717986919", rhs: "-1", expecting: "0") + self.modTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "1717986919") + self.modTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "1717986919") + self.modTest(lhs: "-1717986920", rhs: "1", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "-1717986920") + self.modTest(lhs: "1503238555", rhs: "1", expecting: "0") + self.modTest(lhs: "1503238555", rhs: "-1", expecting: "0") + self.modTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "1503238555") + self.modTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "1503238555") + self.modTest(lhs: "-1503238556", rhs: "1", expecting: "0") + self.modTest(lhs: "-1503238556", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "-1503238556") + self.modTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "-1503238556") + self.modTest(lhs: "1288490191", rhs: "1", expecting: "0") + self.modTest(lhs: "1288490191", rhs: "-1", expecting: "0") + self.modTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "1288490191") + self.modTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "1288490191") + self.modTest(lhs: "-1288490192", rhs: "1", expecting: "0") + self.modTest(lhs: "-1288490192", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "-1288490192") + self.modTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "-1288490192") + self.modTest(lhs: "1073741827", rhs: "1", expecting: "0") + self.modTest(lhs: "1073741827", rhs: "-1", expecting: "0") + self.modTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "1073741827") + self.modTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "1073741827") + self.modTest(lhs: "-1073741828", rhs: "1", expecting: "0") + self.modTest(lhs: "-1073741828", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "-1073741828") + self.modTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "-1073741828") + self.modTest(lhs: "858993463", rhs: "1", expecting: "0") + self.modTest(lhs: "858993463", rhs: "-1", expecting: "0") + self.modTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "858993463") + self.modTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "858993463") + self.modTest(lhs: "-858993464", rhs: "1", expecting: "0") + self.modTest(lhs: "-858993464", rhs: "-1", expecting: "0") + self.modTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "-858993464") + self.modTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "-858993464") + self.modTest(lhs: "644245099", rhs: "1", expecting: "0") + self.modTest(lhs: "644245099", rhs: "-1", expecting: "0") + self.modTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "644245099") + self.modTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "644245099") + self.modTest(lhs: "-644245100", rhs: "1", expecting: "0") + self.modTest(lhs: "-644245100", rhs: "-1", expecting: "0") + self.modTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "-644245100") + self.modTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "-644245100") + self.modTest(lhs: "429496735", rhs: "1", expecting: "0") + self.modTest(lhs: "429496735", rhs: "-1", expecting: "0") + self.modTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "429496735") + self.modTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "429496735") + self.modTest(lhs: "-429496736", rhs: "1", expecting: "0") + self.modTest(lhs: "-429496736", rhs: "-1", expecting: "0") + self.modTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "-429496736") + self.modTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "-429496736") + self.modTest(lhs: "214748371", rhs: "1", expecting: "0") + self.modTest(lhs: "214748371", rhs: "-1", expecting: "0") + self.modTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "214748371") + self.modTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "214748371") + self.modTest(lhs: "-214748372", rhs: "1", expecting: "0") + self.modTest(lhs: "-214748372", rhs: "-1", expecting: "0") + self.modTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "-214748372") + self.modTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "-214748372") + } + + func test_mod_heap_smi() { + self.modTest(lhs: "0", rhs: "1", expecting: "0") + self.modTest(lhs: "0", rhs: "-1", expecting: "0") + self.modTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.modTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.modTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.modTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.modTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.modTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.modTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.modTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.modTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.modTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.modTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.modTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.modTest(lhs: "0", rhs: "858993463", expecting: "0") + self.modTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.modTest(lhs: "0", rhs: "644245099", expecting: "0") + self.modTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.modTest(lhs: "0", rhs: "429496735", expecting: "0") + self.modTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.modTest(lhs: "0", rhs: "214748371", expecting: "0") + self.modTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.modTest(lhs: "1", rhs: "1", expecting: "0") + self.modTest(lhs: "1", rhs: "-1", expecting: "0") + self.modTest(lhs: "1", rhs: "2147483647", expecting: "1") + self.modTest(lhs: "1", rhs: "-2147483648", expecting: "1") + self.modTest(lhs: "1", rhs: "1932735283", expecting: "1") + self.modTest(lhs: "1", rhs: "-1932735284", expecting: "1") + self.modTest(lhs: "1", rhs: "1717986919", expecting: "1") + self.modTest(lhs: "1", rhs: "-1717986920", expecting: "1") + self.modTest(lhs: "1", rhs: "1503238555", expecting: "1") + self.modTest(lhs: "1", rhs: "-1503238556", expecting: "1") + self.modTest(lhs: "1", rhs: "1288490191", expecting: "1") + self.modTest(lhs: "1", rhs: "-1288490192", expecting: "1") + self.modTest(lhs: "1", rhs: "1073741827", expecting: "1") + self.modTest(lhs: "1", rhs: "-1073741828", expecting: "1") + self.modTest(lhs: "1", rhs: "858993463", expecting: "1") + self.modTest(lhs: "1", rhs: "-858993464", expecting: "1") + self.modTest(lhs: "1", rhs: "644245099", expecting: "1") + self.modTest(lhs: "1", rhs: "-644245100", expecting: "1") + self.modTest(lhs: "1", rhs: "429496735", expecting: "1") + self.modTest(lhs: "1", rhs: "-429496736", expecting: "1") + self.modTest(lhs: "1", rhs: "214748371", expecting: "1") + self.modTest(lhs: "1", rhs: "-214748372", expecting: "1") + self.modTest(lhs: "-1", rhs: "1", expecting: "0") + self.modTest(lhs: "-1", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1", rhs: "2147483647", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-2147483648", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1932735283", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1932735284", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1717986919", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1503238555", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1503238556", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1288490191", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1288490192", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1073741827", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1073741828", expecting: "-1") + self.modTest(lhs: "-1", rhs: "858993463", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-858993464", expecting: "-1") + self.modTest(lhs: "-1", rhs: "644245099", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-644245100", expecting: "-1") + self.modTest(lhs: "-1", rhs: "429496735", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-429496736", expecting: "-1") + self.modTest(lhs: "-1", rhs: "214748371", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-214748372", expecting: "-1") + self.modTest(lhs: "18446744073709551615", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "3") + self.modTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "2147483647") + self.modTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "1694125988") + self.modTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "1813430639") + self.modTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "429496731") + self.modTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "15") + self.modTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "15") + self.modTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "1257811899") + self.modTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "1145324667") + self.modTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "1002159151") + self.modTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "143") + self.modTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "255") + self.modTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "360") + self.modTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "575") + self.modTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "143166517") + self.modTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "501080915") + self.modTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "2915") + self.modTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "4095") + self.modTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "15375") + self.modTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "20735") + self.modTest(lhs: "-18446744073709551615", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "-3") + self.modTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "-2147483647") + self.modTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "-1694125988") + self.modTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "-1813430639") + self.modTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "-429496731") + self.modTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-15") + self.modTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "-15") + self.modTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "-1257811899") + self.modTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "-1145324667") + self.modTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "-1002159151") + self.modTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "-143") + self.modTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "-255") + self.modTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "-360") + self.modTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "-575") + self.modTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "-143166517") + self.modTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "-501080915") + self.modTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "-2915") + self.modTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "-4095") + self.modTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "-15375") + self.modTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "-20735") + self.modTest(lhs: "18446744073709551617", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "5") + self.modTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "1") + self.modTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "1694125990") + self.modTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "1813430641") + self.modTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "429496733") + self.modTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "17") + self.modTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "17") + self.modTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "1257811901") + self.modTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "1145324669") + self.modTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "1002159153") + self.modTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "145") + self.modTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "257") + self.modTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "362") + self.modTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "577") + self.modTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "143166519") + self.modTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "501080917") + self.modTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "2917") + self.modTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "4097") + self.modTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "15377") + self.modTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "20737") + self.modTest(lhs: "-18446744073709551617", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "-5") + self.modTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "-1") + self.modTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "-1694125990") + self.modTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "-1813430641") + self.modTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "-429496733") + self.modTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-17") + self.modTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "-17") + self.modTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "-1257811901") + self.modTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "-1145324669") + self.modTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "-1002159153") + self.modTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "-145") + self.modTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "-257") + self.modTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "-362") + self.modTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "-577") + self.modTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "-143166519") + self.modTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "-501080917") + self.modTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "-2917") + self.modTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "-4097") + self.modTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "-15377") + self.modTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "-20737") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "22") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "2") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "740277973") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "1818143922") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "1395864381") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "274") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "274") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "424490282") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "318148674") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "636304514") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "20882") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "65794") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "130684") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "332354") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "637176834") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "105341374") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "8505974") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "16781314") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "21688383") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "505690") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "-22") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-2") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "-740277973") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-1818143922") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "-1395864381") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-274") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "-274") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-424490282") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "-318148674") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-636304514") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "-20882") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-65794") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "-130684") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-332354") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "-637176834") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-105341374") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "-8505974") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-16781314") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "-21688383") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-505690") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "97") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "5") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "1172836876") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "1670726985") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "1530082124") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "4597") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "4597") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "565990149") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "390773516") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "591835749") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "3027317") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "16908037") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "47306167") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "191765957") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "145982359") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "469415897") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "330600602") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "33549317") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "212732098") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "178488733") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "-97") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-5") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "-1172836876") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-1670726985") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "-1530082124") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-4597") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "-4597") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-565990149") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "-390773516") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-591835749") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "-3027317") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-16908037") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "-47306167") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-191765957") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "-145982359") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-469415897") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "-330600602") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-33549317") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "-212732098") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-178488733") + self.modTest(lhs: "18446744073709551623", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "11") + self.modTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "7") + self.modTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "1694125996") + self.modTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "1813430647") + self.modTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "429496739") + self.modTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "23") + self.modTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "23") + self.modTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "1257811907") + self.modTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "1145324675") + self.modTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "1002159159") + self.modTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "151") + self.modTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "263") + self.modTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "368") + self.modTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "583") + self.modTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "143166525") + self.modTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "501080923") + self.modTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "2923") + self.modTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "4103") + self.modTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "15383") + self.modTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "20743") + self.modTest(lhs: "-18446744073709551623", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "-11") + self.modTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "-7") + self.modTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "-1694125996") + self.modTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "-1813430647") + self.modTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "-429496739") + self.modTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-23") + self.modTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "-23") + self.modTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "-1257811907") + self.modTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "-1145324675") + self.modTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "-1002159159") + self.modTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "-151") + self.modTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "-263") + self.modTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "-368") + self.modTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "-583") + self.modTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "-143166525") + self.modTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "-501080923") + self.modTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "-2923") + self.modTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "-4103") + self.modTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "-15383") + self.modTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "-20743") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "46") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "2") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "1241357492") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "1102316058") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "536870935") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "370") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "370") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "455168902") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "747645727") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "206808466") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "21746") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "67330") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "132850") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "335810") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "207685744") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "534846470") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "8523470") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "16805890") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "21780639") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "630106") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "-46") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-2") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "-1241357492") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-1102316058") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "-536870935") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-370") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "-370") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-455168902") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "-747645727") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-206808466") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "-21746") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-67330") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "-132850") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-335810") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "-207685744") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-534846470") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "-8523470") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-16805890") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "-21780639") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-630106") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "175") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "11") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "746875104") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "482099251") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "1315333782") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6043") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "6043") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "45097483") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "152181257") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "114694155") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "3150875") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "17299723") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "48085933") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "193753163") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "318309844") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "242453943") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "381601448") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "134188043") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "127929507") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "181274035") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "-175") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-11") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "-746875104") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-482099251") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "-1315333782") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6043") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "-6043") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-45097483") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "-152181257") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-114694155") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "-3150875") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-17299723") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "-48085933") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-193753163") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "-318309844") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-242453943") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "-381601448") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-134188043") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "-127929507") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-181274035") + self.modTest(lhs: "18446744073709551629", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "17") + self.modTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "13") + self.modTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "1694126002") + self.modTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "1813430653") + self.modTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "429496745") + self.modTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "29") + self.modTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "29") + self.modTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "1257811913") + self.modTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "1145324681") + self.modTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "1002159165") + self.modTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "157") + self.modTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "269") + self.modTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "374") + self.modTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "589") + self.modTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "143166531") + self.modTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "501080929") + self.modTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "2929") + self.modTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "4109") + self.modTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "15389") + self.modTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "20749") + self.modTest(lhs: "-18446744073709551629", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "-17") + self.modTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "-13") + self.modTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "-1694126002") + self.modTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "-1813430653") + self.modTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "-429496745") + self.modTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-29") + self.modTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "-29") + self.modTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "-1257811913") + self.modTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "-1145324681") + self.modTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "-1002159165") + self.modTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "-157") + self.modTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "-269") + self.modTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "-374") + self.modTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "-589") + self.modTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "-143166531") + self.modTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "-501080929") + self.modTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "-2929") + self.modTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "-4109") + self.modTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "-15389") + self.modTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "-20749") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "70") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "2") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "1742437011") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "386488194") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "1395864408") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "485847522") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "1177142780") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "1065802610") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "22610") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "68866") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "135016") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "339266") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "422439753") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "320106466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "8540966") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "16830466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "21872895") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "754522") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "-70") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-2") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "-1742437011") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-386488194") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "-1395864408") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "-466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-485847522") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "-1177142780") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-1065802610") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "-22610") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-68866") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "-135016") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-339266") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "-422439753") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-320106466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "-8540966") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-16830466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "-21872895") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-754522") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "253") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "17") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "320913332") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "1226206801") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "1100585440") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "7489") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "7489") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "1027443373") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "1202079189") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "926042753") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "3274433") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "17691409") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "48865699") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "195740369") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "490637329") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "15491989") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "3105559") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "234826769") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "43126916") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "184059337") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "-253") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-17") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "-320913332") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-1226206801") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "-1100585440") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-7489") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "-7489") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-1027443373") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "-1202079189") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-926042753") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "-3274433") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-17691409") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "-48865699") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-195740369") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "-490637329") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-15491989") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "-3105559") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-234826769") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "-43126916") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-184059337") + self.modTest(lhs: "18446744073709551635", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551635", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "23") + self.modTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "19") + self.modTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "1694126008") + self.modTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "1813430659") + self.modTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "429496751") + self.modTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "35") + self.modTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "35") + self.modTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "1257811919") + self.modTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "1145324687") + self.modTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "1002159171") + self.modTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "163") + self.modTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "275") + self.modTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "380") + self.modTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "595") + self.modTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "143166537") + self.modTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "501080935") + self.modTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "2935") + self.modTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "4115") + self.modTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "15395") + self.modTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "20755") + self.modTest(lhs: "-18446744073709551635", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "-23") + self.modTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "-19") + self.modTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "-1694126008") + self.modTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "-1813430659") + self.modTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "-429496751") + self.modTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-35") + self.modTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "-35") + self.modTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "-1257811919") + self.modTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "-1145324687") + self.modTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "-1002159171") + self.modTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "-163") + self.modTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "-275") + self.modTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "-380") + self.modTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "-595") + self.modTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "-143166537") + self.modTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "-501080935") + self.modTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "-2935") + self.modTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "-4115") + self.modTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "-15395") + self.modTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "-20755") + } + + func test_mod_heap_heap() { + self.modTest(lhs: "0", rhs: "1", expecting: "0") + self.modTest(lhs: "0", rhs: "-1", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.modTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.modTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.modTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.modTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.modTest(lhs: "1", rhs: "1", expecting: "0") + self.modTest(lhs: "1", rhs: "-1", expecting: "0") + self.modTest(lhs: "1", rhs: "18446744073709551615", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551615", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551617", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551617", expecting: "1") + self.modTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "1") + self.modTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "1") + self.modTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.modTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551623", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551623", expecting: "1") + self.modTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "1") + self.modTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "1") + self.modTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.modTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551629", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551629", expecting: "1") + self.modTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "1") + self.modTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "1") + self.modTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.modTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.modTest(lhs: "1", rhs: "18446744073709551635", expecting: "1") + self.modTest(lhs: "1", rhs: "-18446744073709551635", expecting: "1") + self.modTest(lhs: "-1", rhs: "1", expecting: "0") + self.modTest(lhs: "-1", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-1") + self.modTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-1") + self.modTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-1") + self.modTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.modTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-1") + self.modTest(lhs: "18446744073709551615", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "18446744073709551615") + self.modTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "-18446744073709551615") + self.modTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "-18446744073709551615") + self.modTest(lhs: "18446744073709551617", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "2") + self.modTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "2") + self.modTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "18446744073709551617") + self.modTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "-2") + self.modTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "-2") + self.modTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "-18446744073709551617") + self.modTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "4") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "4") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "2") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "2") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "44") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "44") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "158") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "158") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463481821351505477763074") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "344") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "344") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "-4") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-4") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "-2") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-2") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "-44") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-44") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "-158") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-158") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463481821351505477763074") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "-344") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-344") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "7") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "7") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "7") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "7") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463408034375210639556613") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463408034375210639556613") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "18446744073709551390") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "18446744073709551390") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "590295810358705651727") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "590295810358705651727") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "18446744073709549788") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "18446744073709549788") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "2582544170319337226267") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "2582544170319337226267") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "18446744073709545522") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "18446744073709545522") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "-7") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-7") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "-7") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-7") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463408034375210639556613") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463408034375210639556613") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "-18446744073709551390") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-18446744073709551390") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "-590295810358705651727") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-590295810358705651727") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "-18446744073709549788") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-18446744073709549788") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "-2582544170319337226267") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-2582544170319337226267") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "-18446744073709545522") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-18446744073709545522") + self.modTest(lhs: "18446744073709551623", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "8") + self.modTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "8") + self.modTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "6") + self.modTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "6") + self.modTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "18446744073709551623") + self.modTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "-8") + self.modTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "-8") + self.modTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "-6") + self.modTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "-6") + self.modTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "-18446744073709551623") + self.modTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "-18446744073709551623") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "10") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "10") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "18446744073709551613") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "18446744073709551613") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "110680464442257309696") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "110680464442257309696") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "2") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "2") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "80") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "80") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463592501815947735072770") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "230") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "230") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "-10") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-10") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "-18446744073709551613") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-18446744073709551613") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "-110680464442257309696") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-110680464442257309696") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "-2") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-2") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "-80") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-80") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463592501815947735072770") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "-230") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-230") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "13") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "13") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "25") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "25") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463186673446326124937215") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463186673446326124937215") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2041694201525630780669567180148351959046") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2041694201525630780669567180148351959046") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "109") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "109") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463297353910768382246923") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463297353910768382246923") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "18446744073709550886") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "18446744073709550886") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "1033017668127734890517") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "1033017668127734890517") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "18446744073709547808") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "18446744073709547808") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "-13") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-13") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "-25") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-25") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463186673446326124937215") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463186673446326124937215") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2041694201525630780669567180148351959046") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2041694201525630780669567180148351959046") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "-109") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-109") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463297353910768382246923") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463297353910768382246923") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "-18446744073709550886") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-18446744073709550886") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "-1033017668127734890517") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-1033017668127734890517") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "-18446744073709547808") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-18446744073709547808") + self.modTest(lhs: "18446744073709551629", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "14") + self.modTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "14") + self.modTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "12") + self.modTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "12") + self.modTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "6") + self.modTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "6") + self.modTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "18446744073709551629") + self.modTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "-14") + self.modTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "-14") + self.modTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "-12") + self.modTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "-12") + self.modTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "-6") + self.modTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "-6") + self.modTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "-18446744073709551629") + self.modTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "-18446744073709551629") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "16") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "16") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "18446744073709551607") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "18446744073709551607") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "221360928884514619392") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "221360928884514619392") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463703182280389992382466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463703182280389992382466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "18446744073709551583") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "18446744073709551583") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463703182280389992382466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463703182280389992382466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "2") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "2") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463703182280389992382466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463703182280389992382466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "116") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "116") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "-16") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-16") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "-18446744073709551607") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-18446744073709551607") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "-221360928884514619392") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-221360928884514619392") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463703182280389992382466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463703182280389992382466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "-18446744073709551583") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-18446744073709551583") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "-110680464442257309696") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-110680464442257309696") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463703182280389992382466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463703182280389992382466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "-2") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-2") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463703182280389992382466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463703182280389992382466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "-116") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-116") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "19") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "19") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "43") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "43") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938462965312517441610317817") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938462965312517441610317817") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "4083388403051261561339134360296703918092") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "4083388403051261561339134360296703918092") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "451") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "451") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938462411910195230323769349") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938462411910195230323769349") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780669567180148351959046") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780669567180148351959046") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "355") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "355") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463186673446326124937233") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463186673446326124937233") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "18446744073709550094") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "18446744073709550094") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "-19") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-19") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "-43") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-43") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938462965312517441610317817") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938462965312517441610317817") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-4083388403051261561339134360296703918092") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-4083388403051261561339134360296703918092") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "-451") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-451") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938462411910195230323769349") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938462411910195230323769349") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780669567180148351959046") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780669567180148351959046") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "-355") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-355") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463186673446326124937233") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463186673446326124937233") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "-18446744073709550094") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-18446744073709550094") + self.modTest(lhs: "18446744073709551635", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551635", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "20") + self.modTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "20") + self.modTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "18") + self.modTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "18") + self.modTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "12") + self.modTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "12") + self.modTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "6") + self.modTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "6") + self.modTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551635") + self.modTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "0") + self.modTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "-20") + self.modTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "-20") + self.modTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "-18") + self.modTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "-18") + self.modTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "-12") + self.modTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "-12") + self.modTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "-6") + self.modTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "-6") + self.modTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551635") + self.modTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "0") + } + + // MARK: - DivMod + + func test_divMod_smi_smi() { + self.divModTest(lhs: "0", rhs: "1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "2147483647", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-2147483648", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1932735283", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1932735284", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1717986919", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1717986920", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1503238555", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1503238556", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1288490191", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1288490192", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1073741827", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1073741828", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "858993463", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-858993464", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "644245099", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-644245100", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "429496735", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-429496736", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "214748371", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-214748372", div: "0", mod: "0") + self.divModTest(lhs: "1", rhs: "1", div: "1", mod: "0") + self.divModTest(lhs: "1", rhs: "-1", div: "-1", mod: "0") + self.divModTest(lhs: "1", rhs: "2147483647", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-2147483648", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1932735283", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1932735284", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1717986919", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1717986920", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1503238555", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1503238556", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1288490191", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1288490192", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1073741827", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1073741828", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "858993463", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-858993464", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "644245099", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-644245100", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "429496735", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-429496736", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "214748371", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-214748372", div: "0", mod: "1") + self.divModTest(lhs: "-1", rhs: "1", div: "-1", mod: "0") + self.divModTest(lhs: "-1", rhs: "-1", div: "1", mod: "0") + self.divModTest(lhs: "-1", rhs: "2147483647", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-2147483648", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1932735283", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1932735284", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1717986919", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1717986920", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1503238555", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1503238556", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1288490191", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1288490192", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1073741827", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1073741828", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "858993463", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-858993464", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "644245099", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-644245100", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "429496735", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-429496736", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "214748371", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-214748372", div: "0", mod: "-1") + self.divModTest(lhs: "2147483647", rhs: "1", div: "2147483647", mod: "0") + self.divModTest(lhs: "2147483647", rhs: "-1", div: "-2147483647", mod: "0") + self.divModTest(lhs: "2147483647", rhs: "2147483647", div: "1", mod: "0") + self.divModTest(lhs: "2147483647", rhs: "-2147483648", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "1932735283", div: "1", mod: "214748364") + self.divModTest(lhs: "2147483647", rhs: "-1932735284", div: "-1", mod: "214748363") + self.divModTest(lhs: "2147483647", rhs: "1717986919", div: "1", mod: "429496728") + self.divModTest(lhs: "2147483647", rhs: "-1717986920", div: "-1", mod: "429496727") + self.divModTest(lhs: "2147483647", rhs: "1503238555", div: "1", mod: "644245092") + self.divModTest(lhs: "2147483647", rhs: "-1503238556", div: "-1", mod: "644245091") + self.divModTest(lhs: "2147483647", rhs: "1288490191", div: "1", mod: "858993456") + self.divModTest(lhs: "2147483647", rhs: "-1288490192", div: "-1", mod: "858993455") + self.divModTest(lhs: "2147483647", rhs: "1073741827", div: "1", mod: "1073741820") + self.divModTest(lhs: "2147483647", rhs: "-1073741828", div: "-1", mod: "1073741819") + self.divModTest(lhs: "2147483647", rhs: "858993463", div: "2", mod: "429496721") + self.divModTest(lhs: "2147483647", rhs: "-858993464", div: "-2", mod: "429496719") + self.divModTest(lhs: "2147483647", rhs: "644245099", div: "3", mod: "214748350") + self.divModTest(lhs: "2147483647", rhs: "-644245100", div: "-3", mod: "214748347") + self.divModTest(lhs: "2147483647", rhs: "429496735", div: "4", mod: "429496707") + self.divModTest(lhs: "2147483647", rhs: "-429496736", div: "-4", mod: "429496703") + self.divModTest(lhs: "2147483647", rhs: "214748371", div: "9", mod: "214748308") + self.divModTest(lhs: "2147483647", rhs: "-214748372", div: "-9", mod: "214748299") + self.divModTest(lhs: "-2147483648", rhs: "1", div: "-2147483648", mod: "0") + self.divModTest(lhs: "-2147483648", rhs: "-1", div: "2147483648", mod: "0") + self.divModTest(lhs: "-2147483648", rhs: "2147483647", div: "-1", mod: "-1") + self.divModTest(lhs: "-2147483648", rhs: "-2147483648", div: "1", mod: "0") + self.divModTest(lhs: "-2147483648", rhs: "1932735283", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-2147483648", rhs: "-1932735284", div: "1", mod: "-214748364") + self.divModTest(lhs: "-2147483648", rhs: "1717986919", div: "-1", mod: "-429496729") + self.divModTest(lhs: "-2147483648", rhs: "-1717986920", div: "1", mod: "-429496728") + self.divModTest(lhs: "-2147483648", rhs: "1503238555", div: "-1", mod: "-644245093") + self.divModTest(lhs: "-2147483648", rhs: "-1503238556", div: "1", mod: "-644245092") + self.divModTest(lhs: "-2147483648", rhs: "1288490191", div: "-1", mod: "-858993457") + self.divModTest(lhs: "-2147483648", rhs: "-1288490192", div: "1", mod: "-858993456") + self.divModTest(lhs: "-2147483648", rhs: "1073741827", div: "-1", mod: "-1073741821") + self.divModTest(lhs: "-2147483648", rhs: "-1073741828", div: "1", mod: "-1073741820") + self.divModTest(lhs: "-2147483648", rhs: "858993463", div: "-2", mod: "-429496722") + self.divModTest(lhs: "-2147483648", rhs: "-858993464", div: "2", mod: "-429496720") + self.divModTest(lhs: "-2147483648", rhs: "644245099", div: "-3", mod: "-214748351") + self.divModTest(lhs: "-2147483648", rhs: "-644245100", div: "3", mod: "-214748348") + self.divModTest(lhs: "-2147483648", rhs: "429496735", div: "-4", mod: "-429496708") + self.divModTest(lhs: "-2147483648", rhs: "-429496736", div: "4", mod: "-429496704") + self.divModTest(lhs: "-2147483648", rhs: "214748371", div: "-9", mod: "-214748309") + self.divModTest(lhs: "-2147483648", rhs: "-214748372", div: "9", mod: "-214748300") + self.divModTest(lhs: "1932735283", rhs: "1", div: "1932735283", mod: "0") + self.divModTest(lhs: "1932735283", rhs: "-1", div: "-1932735283", mod: "0") + self.divModTest(lhs: "1932735283", rhs: "2147483647", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-2147483648", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "1932735283", div: "1", mod: "0") + self.divModTest(lhs: "1932735283", rhs: "-1932735284", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "1717986919", div: "1", mod: "214748364") + self.divModTest(lhs: "1932735283", rhs: "-1717986920", div: "-1", mod: "214748363") + self.divModTest(lhs: "1932735283", rhs: "1503238555", div: "1", mod: "429496728") + self.divModTest(lhs: "1932735283", rhs: "-1503238556", div: "-1", mod: "429496727") + self.divModTest(lhs: "1932735283", rhs: "1288490191", div: "1", mod: "644245092") + self.divModTest(lhs: "1932735283", rhs: "-1288490192", div: "-1", mod: "644245091") + self.divModTest(lhs: "1932735283", rhs: "1073741827", div: "1", mod: "858993456") + self.divModTest(lhs: "1932735283", rhs: "-1073741828", div: "-1", mod: "858993455") + self.divModTest(lhs: "1932735283", rhs: "858993463", div: "2", mod: "214748357") + self.divModTest(lhs: "1932735283", rhs: "-858993464", div: "-2", mod: "214748355") + self.divModTest(lhs: "1932735283", rhs: "644245099", div: "2", mod: "644245085") + self.divModTest(lhs: "1932735283", rhs: "-644245100", div: "-2", mod: "644245083") + self.divModTest(lhs: "1932735283", rhs: "429496735", div: "4", mod: "214748343") + self.divModTest(lhs: "1932735283", rhs: "-429496736", div: "-4", mod: "214748339") + self.divModTest(lhs: "1932735283", rhs: "214748371", div: "8", mod: "214748315") + self.divModTest(lhs: "1932735283", rhs: "-214748372", div: "-8", mod: "214748307") + self.divModTest(lhs: "-1932735284", rhs: "1", div: "-1932735284", mod: "0") + self.divModTest(lhs: "-1932735284", rhs: "-1", div: "1932735284", mod: "0") + self.divModTest(lhs: "-1932735284", rhs: "2147483647", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-2147483648", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "1932735283", div: "-1", mod: "-1") + self.divModTest(lhs: "-1932735284", rhs: "-1932735284", div: "1", mod: "0") + self.divModTest(lhs: "-1932735284", rhs: "1717986919", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-1932735284", rhs: "-1717986920", div: "1", mod: "-214748364") + self.divModTest(lhs: "-1932735284", rhs: "1503238555", div: "-1", mod: "-429496729") + self.divModTest(lhs: "-1932735284", rhs: "-1503238556", div: "1", mod: "-429496728") + self.divModTest(lhs: "-1932735284", rhs: "1288490191", div: "-1", mod: "-644245093") + self.divModTest(lhs: "-1932735284", rhs: "-1288490192", div: "1", mod: "-644245092") + self.divModTest(lhs: "-1932735284", rhs: "1073741827", div: "-1", mod: "-858993457") + self.divModTest(lhs: "-1932735284", rhs: "-1073741828", div: "1", mod: "-858993456") + self.divModTest(lhs: "-1932735284", rhs: "858993463", div: "-2", mod: "-214748358") + self.divModTest(lhs: "-1932735284", rhs: "-858993464", div: "2", mod: "-214748356") + self.divModTest(lhs: "-1932735284", rhs: "644245099", div: "-2", mod: "-644245086") + self.divModTest(lhs: "-1932735284", rhs: "-644245100", div: "2", mod: "-644245084") + self.divModTest(lhs: "-1932735284", rhs: "429496735", div: "-4", mod: "-214748344") + self.divModTest(lhs: "-1932735284", rhs: "-429496736", div: "4", mod: "-214748340") + self.divModTest(lhs: "-1932735284", rhs: "214748371", div: "-8", mod: "-214748316") + self.divModTest(lhs: "-1932735284", rhs: "-214748372", div: "8", mod: "-214748308") + self.divModTest(lhs: "1717986919", rhs: "1", div: "1717986919", mod: "0") + self.divModTest(lhs: "1717986919", rhs: "-1", div: "-1717986919", mod: "0") + self.divModTest(lhs: "1717986919", rhs: "2147483647", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-2147483648", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "1932735283", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-1932735284", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "1717986919", div: "1", mod: "0") + self.divModTest(lhs: "1717986919", rhs: "-1717986920", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "1503238555", div: "1", mod: "214748364") + self.divModTest(lhs: "1717986919", rhs: "-1503238556", div: "-1", mod: "214748363") + self.divModTest(lhs: "1717986919", rhs: "1288490191", div: "1", mod: "429496728") + self.divModTest(lhs: "1717986919", rhs: "-1288490192", div: "-1", mod: "429496727") + self.divModTest(lhs: "1717986919", rhs: "1073741827", div: "1", mod: "644245092") + self.divModTest(lhs: "1717986919", rhs: "-1073741828", div: "-1", mod: "644245091") + self.divModTest(lhs: "1717986919", rhs: "858993463", div: "1", mod: "858993456") + self.divModTest(lhs: "1717986919", rhs: "-858993464", div: "-1", mod: "858993455") + self.divModTest(lhs: "1717986919", rhs: "644245099", div: "2", mod: "429496721") + self.divModTest(lhs: "1717986919", rhs: "-644245100", div: "-2", mod: "429496719") + self.divModTest(lhs: "1717986919", rhs: "429496735", div: "3", mod: "429496714") + self.divModTest(lhs: "1717986919", rhs: "-429496736", div: "-3", mod: "429496711") + self.divModTest(lhs: "1717986919", rhs: "214748371", div: "7", mod: "214748322") + self.divModTest(lhs: "1717986919", rhs: "-214748372", div: "-7", mod: "214748315") + self.divModTest(lhs: "-1717986920", rhs: "1", div: "-1717986920", mod: "0") + self.divModTest(lhs: "-1717986920", rhs: "-1", div: "1717986920", mod: "0") + self.divModTest(lhs: "-1717986920", rhs: "2147483647", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-2147483648", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "1932735283", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-1932735284", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "1717986919", div: "-1", mod: "-1") + self.divModTest(lhs: "-1717986920", rhs: "-1717986920", div: "1", mod: "0") + self.divModTest(lhs: "-1717986920", rhs: "1503238555", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-1717986920", rhs: "-1503238556", div: "1", mod: "-214748364") + self.divModTest(lhs: "-1717986920", rhs: "1288490191", div: "-1", mod: "-429496729") + self.divModTest(lhs: "-1717986920", rhs: "-1288490192", div: "1", mod: "-429496728") + self.divModTest(lhs: "-1717986920", rhs: "1073741827", div: "-1", mod: "-644245093") + self.divModTest(lhs: "-1717986920", rhs: "-1073741828", div: "1", mod: "-644245092") + self.divModTest(lhs: "-1717986920", rhs: "858993463", div: "-1", mod: "-858993457") + self.divModTest(lhs: "-1717986920", rhs: "-858993464", div: "1", mod: "-858993456") + self.divModTest(lhs: "-1717986920", rhs: "644245099", div: "-2", mod: "-429496722") + self.divModTest(lhs: "-1717986920", rhs: "-644245100", div: "2", mod: "-429496720") + self.divModTest(lhs: "-1717986920", rhs: "429496735", div: "-3", mod: "-429496715") + self.divModTest(lhs: "-1717986920", rhs: "-429496736", div: "3", mod: "-429496712") + self.divModTest(lhs: "-1717986920", rhs: "214748371", div: "-7", mod: "-214748323") + self.divModTest(lhs: "-1717986920", rhs: "-214748372", div: "7", mod: "-214748316") + self.divModTest(lhs: "1503238555", rhs: "1", div: "1503238555", mod: "0") + self.divModTest(lhs: "1503238555", rhs: "-1", div: "-1503238555", mod: "0") + self.divModTest(lhs: "1503238555", rhs: "2147483647", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-2147483648", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "1932735283", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-1932735284", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "1717986919", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-1717986920", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "1503238555", div: "1", mod: "0") + self.divModTest(lhs: "1503238555", rhs: "-1503238556", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "1288490191", div: "1", mod: "214748364") + self.divModTest(lhs: "1503238555", rhs: "-1288490192", div: "-1", mod: "214748363") + self.divModTest(lhs: "1503238555", rhs: "1073741827", div: "1", mod: "429496728") + self.divModTest(lhs: "1503238555", rhs: "-1073741828", div: "-1", mod: "429496727") + self.divModTest(lhs: "1503238555", rhs: "858993463", div: "1", mod: "644245092") + self.divModTest(lhs: "1503238555", rhs: "-858993464", div: "-1", mod: "644245091") + self.divModTest(lhs: "1503238555", rhs: "644245099", div: "2", mod: "214748357") + self.divModTest(lhs: "1503238555", rhs: "-644245100", div: "-2", mod: "214748355") + self.divModTest(lhs: "1503238555", rhs: "429496735", div: "3", mod: "214748350") + self.divModTest(lhs: "1503238555", rhs: "-429496736", div: "-3", mod: "214748347") + self.divModTest(lhs: "1503238555", rhs: "214748371", div: "6", mod: "214748329") + self.divModTest(lhs: "1503238555", rhs: "-214748372", div: "-6", mod: "214748323") + self.divModTest(lhs: "-1503238556", rhs: "1", div: "-1503238556", mod: "0") + self.divModTest(lhs: "-1503238556", rhs: "-1", div: "1503238556", mod: "0") + self.divModTest(lhs: "-1503238556", rhs: "2147483647", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-2147483648", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "1932735283", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-1932735284", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "1717986919", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-1717986920", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "1503238555", div: "-1", mod: "-1") + self.divModTest(lhs: "-1503238556", rhs: "-1503238556", div: "1", mod: "0") + self.divModTest(lhs: "-1503238556", rhs: "1288490191", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-1503238556", rhs: "-1288490192", div: "1", mod: "-214748364") + self.divModTest(lhs: "-1503238556", rhs: "1073741827", div: "-1", mod: "-429496729") + self.divModTest(lhs: "-1503238556", rhs: "-1073741828", div: "1", mod: "-429496728") + self.divModTest(lhs: "-1503238556", rhs: "858993463", div: "-1", mod: "-644245093") + self.divModTest(lhs: "-1503238556", rhs: "-858993464", div: "1", mod: "-644245092") + self.divModTest(lhs: "-1503238556", rhs: "644245099", div: "-2", mod: "-214748358") + self.divModTest(lhs: "-1503238556", rhs: "-644245100", div: "2", mod: "-214748356") + self.divModTest(lhs: "-1503238556", rhs: "429496735", div: "-3", mod: "-214748351") + self.divModTest(lhs: "-1503238556", rhs: "-429496736", div: "3", mod: "-214748348") + self.divModTest(lhs: "-1503238556", rhs: "214748371", div: "-6", mod: "-214748330") + self.divModTest(lhs: "-1503238556", rhs: "-214748372", div: "6", mod: "-214748324") + self.divModTest(lhs: "1288490191", rhs: "1", div: "1288490191", mod: "0") + self.divModTest(lhs: "1288490191", rhs: "-1", div: "-1288490191", mod: "0") + self.divModTest(lhs: "1288490191", rhs: "2147483647", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-2147483648", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "1932735283", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-1932735284", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "1717986919", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-1717986920", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "1503238555", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-1503238556", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "1288490191", div: "1", mod: "0") + self.divModTest(lhs: "1288490191", rhs: "-1288490192", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "1073741827", div: "1", mod: "214748364") + self.divModTest(lhs: "1288490191", rhs: "-1073741828", div: "-1", mod: "214748363") + self.divModTest(lhs: "1288490191", rhs: "858993463", div: "1", mod: "429496728") + self.divModTest(lhs: "1288490191", rhs: "-858993464", div: "-1", mod: "429496727") + self.divModTest(lhs: "1288490191", rhs: "644245099", div: "1", mod: "644245092") + self.divModTest(lhs: "1288490191", rhs: "-644245100", div: "-1", mod: "644245091") + self.divModTest(lhs: "1288490191", rhs: "429496735", div: "2", mod: "429496721") + self.divModTest(lhs: "1288490191", rhs: "-429496736", div: "-2", mod: "429496719") + self.divModTest(lhs: "1288490191", rhs: "214748371", div: "5", mod: "214748336") + self.divModTest(lhs: "1288490191", rhs: "-214748372", div: "-5", mod: "214748331") + self.divModTest(lhs: "-1288490192", rhs: "1", div: "-1288490192", mod: "0") + self.divModTest(lhs: "-1288490192", rhs: "-1", div: "1288490192", mod: "0") + self.divModTest(lhs: "-1288490192", rhs: "2147483647", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-2147483648", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "1932735283", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-1932735284", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "1717986919", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-1717986920", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "1503238555", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-1503238556", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "1288490191", div: "-1", mod: "-1") + self.divModTest(lhs: "-1288490192", rhs: "-1288490192", div: "1", mod: "0") + self.divModTest(lhs: "-1288490192", rhs: "1073741827", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-1288490192", rhs: "-1073741828", div: "1", mod: "-214748364") + self.divModTest(lhs: "-1288490192", rhs: "858993463", div: "-1", mod: "-429496729") + self.divModTest(lhs: "-1288490192", rhs: "-858993464", div: "1", mod: "-429496728") + self.divModTest(lhs: "-1288490192", rhs: "644245099", div: "-1", mod: "-644245093") + self.divModTest(lhs: "-1288490192", rhs: "-644245100", div: "1", mod: "-644245092") + self.divModTest(lhs: "-1288490192", rhs: "429496735", div: "-2", mod: "-429496722") + self.divModTest(lhs: "-1288490192", rhs: "-429496736", div: "2", mod: "-429496720") + self.divModTest(lhs: "-1288490192", rhs: "214748371", div: "-5", mod: "-214748337") + self.divModTest(lhs: "-1288490192", rhs: "-214748372", div: "5", mod: "-214748332") + self.divModTest(lhs: "1073741827", rhs: "1", div: "1073741827", mod: "0") + self.divModTest(lhs: "1073741827", rhs: "-1", div: "-1073741827", mod: "0") + self.divModTest(lhs: "1073741827", rhs: "2147483647", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-2147483648", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "1932735283", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-1932735284", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "1717986919", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-1717986920", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "1503238555", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-1503238556", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "1288490191", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-1288490192", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "1073741827", div: "1", mod: "0") + self.divModTest(lhs: "1073741827", rhs: "-1073741828", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "858993463", div: "1", mod: "214748364") + self.divModTest(lhs: "1073741827", rhs: "-858993464", div: "-1", mod: "214748363") + self.divModTest(lhs: "1073741827", rhs: "644245099", div: "1", mod: "429496728") + self.divModTest(lhs: "1073741827", rhs: "-644245100", div: "-1", mod: "429496727") + self.divModTest(lhs: "1073741827", rhs: "429496735", div: "2", mod: "214748357") + self.divModTest(lhs: "1073741827", rhs: "-429496736", div: "-2", mod: "214748355") + self.divModTest(lhs: "1073741827", rhs: "214748371", div: "4", mod: "214748343") + self.divModTest(lhs: "1073741827", rhs: "-214748372", div: "-4", mod: "214748339") + self.divModTest(lhs: "-1073741828", rhs: "1", div: "-1073741828", mod: "0") + self.divModTest(lhs: "-1073741828", rhs: "-1", div: "1073741828", mod: "0") + self.divModTest(lhs: "-1073741828", rhs: "2147483647", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-2147483648", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "1932735283", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-1932735284", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "1717986919", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-1717986920", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "1503238555", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-1503238556", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "1288490191", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-1288490192", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "1073741827", div: "-1", mod: "-1") + self.divModTest(lhs: "-1073741828", rhs: "-1073741828", div: "1", mod: "0") + self.divModTest(lhs: "-1073741828", rhs: "858993463", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-1073741828", rhs: "-858993464", div: "1", mod: "-214748364") + self.divModTest(lhs: "-1073741828", rhs: "644245099", div: "-1", mod: "-429496729") + self.divModTest(lhs: "-1073741828", rhs: "-644245100", div: "1", mod: "-429496728") + self.divModTest(lhs: "-1073741828", rhs: "429496735", div: "-2", mod: "-214748358") + self.divModTest(lhs: "-1073741828", rhs: "-429496736", div: "2", mod: "-214748356") + self.divModTest(lhs: "-1073741828", rhs: "214748371", div: "-4", mod: "-214748344") + self.divModTest(lhs: "-1073741828", rhs: "-214748372", div: "4", mod: "-214748340") + self.divModTest(lhs: "858993463", rhs: "1", div: "858993463", mod: "0") + self.divModTest(lhs: "858993463", rhs: "-1", div: "-858993463", mod: "0") + self.divModTest(lhs: "858993463", rhs: "2147483647", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-2147483648", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "1932735283", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-1932735284", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "1717986919", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-1717986920", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "1503238555", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-1503238556", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "1288490191", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-1288490192", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "1073741827", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-1073741828", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "858993463", div: "1", mod: "0") + self.divModTest(lhs: "858993463", rhs: "-858993464", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "644245099", div: "1", mod: "214748364") + self.divModTest(lhs: "858993463", rhs: "-644245100", div: "-1", mod: "214748363") + self.divModTest(lhs: "858993463", rhs: "429496735", div: "1", mod: "429496728") + self.divModTest(lhs: "858993463", rhs: "-429496736", div: "-1", mod: "429496727") + self.divModTest(lhs: "858993463", rhs: "214748371", div: "3", mod: "214748350") + self.divModTest(lhs: "858993463", rhs: "-214748372", div: "-3", mod: "214748347") + self.divModTest(lhs: "-858993464", rhs: "1", div: "-858993464", mod: "0") + self.divModTest(lhs: "-858993464", rhs: "-1", div: "858993464", mod: "0") + self.divModTest(lhs: "-858993464", rhs: "2147483647", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-2147483648", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "1932735283", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-1932735284", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "1717986919", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-1717986920", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "1503238555", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-1503238556", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "1288490191", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-1288490192", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "1073741827", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-1073741828", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "858993463", div: "-1", mod: "-1") + self.divModTest(lhs: "-858993464", rhs: "-858993464", div: "1", mod: "0") + self.divModTest(lhs: "-858993464", rhs: "644245099", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-858993464", rhs: "-644245100", div: "1", mod: "-214748364") + self.divModTest(lhs: "-858993464", rhs: "429496735", div: "-1", mod: "-429496729") + self.divModTest(lhs: "-858993464", rhs: "-429496736", div: "1", mod: "-429496728") + self.divModTest(lhs: "-858993464", rhs: "214748371", div: "-3", mod: "-214748351") + self.divModTest(lhs: "-858993464", rhs: "-214748372", div: "3", mod: "-214748348") + self.divModTest(lhs: "644245099", rhs: "1", div: "644245099", mod: "0") + self.divModTest(lhs: "644245099", rhs: "-1", div: "-644245099", mod: "0") + self.divModTest(lhs: "644245099", rhs: "2147483647", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-2147483648", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "1932735283", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-1932735284", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "1717986919", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-1717986920", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "1503238555", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-1503238556", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "1288490191", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-1288490192", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "1073741827", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-1073741828", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "858993463", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-858993464", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "644245099", div: "1", mod: "0") + self.divModTest(lhs: "644245099", rhs: "-644245100", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "429496735", div: "1", mod: "214748364") + self.divModTest(lhs: "644245099", rhs: "-429496736", div: "-1", mod: "214748363") + self.divModTest(lhs: "644245099", rhs: "214748371", div: "2", mod: "214748357") + self.divModTest(lhs: "644245099", rhs: "-214748372", div: "-2", mod: "214748355") + self.divModTest(lhs: "-644245100", rhs: "1", div: "-644245100", mod: "0") + self.divModTest(lhs: "-644245100", rhs: "-1", div: "644245100", mod: "0") + self.divModTest(lhs: "-644245100", rhs: "2147483647", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-2147483648", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "1932735283", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-1932735284", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "1717986919", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-1717986920", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "1503238555", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-1503238556", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "1288490191", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-1288490192", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "1073741827", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-1073741828", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "858993463", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-858993464", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "644245099", div: "-1", mod: "-1") + self.divModTest(lhs: "-644245100", rhs: "-644245100", div: "1", mod: "0") + self.divModTest(lhs: "-644245100", rhs: "429496735", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-644245100", rhs: "-429496736", div: "1", mod: "-214748364") + self.divModTest(lhs: "-644245100", rhs: "214748371", div: "-2", mod: "-214748358") + self.divModTest(lhs: "-644245100", rhs: "-214748372", div: "2", mod: "-214748356") + self.divModTest(lhs: "429496735", rhs: "1", div: "429496735", mod: "0") + self.divModTest(lhs: "429496735", rhs: "-1", div: "-429496735", mod: "0") + self.divModTest(lhs: "429496735", rhs: "2147483647", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-2147483648", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "1932735283", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-1932735284", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "1717986919", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-1717986920", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "1503238555", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-1503238556", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "1288490191", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-1288490192", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "1073741827", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-1073741828", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "858993463", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-858993464", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "644245099", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-644245100", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "429496735", div: "1", mod: "0") + self.divModTest(lhs: "429496735", rhs: "-429496736", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "214748371", div: "1", mod: "214748364") + self.divModTest(lhs: "429496735", rhs: "-214748372", div: "-1", mod: "214748363") + self.divModTest(lhs: "-429496736", rhs: "1", div: "-429496736", mod: "0") + self.divModTest(lhs: "-429496736", rhs: "-1", div: "429496736", mod: "0") + self.divModTest(lhs: "-429496736", rhs: "2147483647", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-2147483648", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "1932735283", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-1932735284", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "1717986919", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-1717986920", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "1503238555", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-1503238556", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "1288490191", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-1288490192", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "1073741827", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-1073741828", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "858993463", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-858993464", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "644245099", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-644245100", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "429496735", div: "-1", mod: "-1") + self.divModTest(lhs: "-429496736", rhs: "-429496736", div: "1", mod: "0") + self.divModTest(lhs: "-429496736", rhs: "214748371", div: "-1", mod: "-214748365") + self.divModTest(lhs: "-429496736", rhs: "-214748372", div: "1", mod: "-214748364") + self.divModTest(lhs: "214748371", rhs: "1", div: "214748371", mod: "0") + self.divModTest(lhs: "214748371", rhs: "-1", div: "-214748371", mod: "0") + self.divModTest(lhs: "214748371", rhs: "2147483647", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-2147483648", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "1932735283", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-1932735284", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "1717986919", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-1717986920", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "1503238555", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-1503238556", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "1288490191", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-1288490192", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "1073741827", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-1073741828", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "858993463", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-858993464", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "644245099", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-644245100", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "429496735", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-429496736", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "214748371", div: "1", mod: "0") + self.divModTest(lhs: "214748371", rhs: "-214748372", div: "0", mod: "214748371") + self.divModTest(lhs: "-214748372", rhs: "1", div: "-214748372", mod: "0") + self.divModTest(lhs: "-214748372", rhs: "-1", div: "214748372", mod: "0") + self.divModTest(lhs: "-214748372", rhs: "2147483647", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-2147483648", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "1932735283", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-1932735284", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "1717986919", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-1717986920", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "1503238555", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-1503238556", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "1288490191", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-1288490192", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "1073741827", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-1073741828", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "858993463", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-858993464", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "644245099", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-644245100", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "429496735", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-429496736", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "214748371", div: "-1", mod: "-1") + self.divModTest(lhs: "-214748372", rhs: "-214748372", div: "1", mod: "0") + } + + func test_divMod_smi_heap() { + self.divModTest(lhs: "0", rhs: "1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551615", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551615", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551617", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551617", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "340282366920938463481821351505477763074", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551623", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551623", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "340282366920938463592501815947735072770", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551629", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551629", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "340282366920938463703182280389992382466", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551635", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551635", div: "0", mod: "0") + self.divModTest(lhs: "1", rhs: "1", div: "1", mod: "0") + self.divModTest(lhs: "1", rhs: "-1", div: "-1", mod: "0") + self.divModTest(lhs: "1", rhs: "18446744073709551615", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551615", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551617", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551617", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "340282366920938463481821351505477763074", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551623", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551623", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "340282366920938463592501815947735072770", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551629", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551629", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "340282366920938463703182280389992382466", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551635", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551635", div: "0", mod: "1") + self.divModTest(lhs: "-1", rhs: "1", div: "-1", mod: "0") + self.divModTest(lhs: "-1", rhs: "-1", div: "1", mod: "0") + self.divModTest(lhs: "-1", rhs: "18446744073709551615", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551615", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551617", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551617", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551623", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551623", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551629", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551629", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551635", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551635", div: "0", mod: "-1") + self.divModTest(lhs: "2147483647", rhs: "1", div: "2147483647", mod: "0") + self.divModTest(lhs: "2147483647", rhs: "-1", div: "-2147483647", mod: "0") + self.divModTest(lhs: "2147483647", rhs: "18446744073709551615", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-18446744073709551615", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "18446744073709551617", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-18446744073709551617", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "18446744073709551623", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-18446744073709551623", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "18446744073709551629", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-18446744073709551629", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "18446744073709551635", div: "0", mod: "2147483647") + self.divModTest(lhs: "2147483647", rhs: "-18446744073709551635", div: "0", mod: "2147483647") + self.divModTest(lhs: "-2147483648", rhs: "1", div: "-2147483648", mod: "0") + self.divModTest(lhs: "-2147483648", rhs: "-1", div: "2147483648", mod: "0") + self.divModTest(lhs: "-2147483648", rhs: "18446744073709551615", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-18446744073709551615", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "18446744073709551617", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-18446744073709551617", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "18446744073709551623", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-18446744073709551623", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "18446744073709551629", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-18446744073709551629", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "18446744073709551635", div: "0", mod: "-2147483648") + self.divModTest(lhs: "-2147483648", rhs: "-18446744073709551635", div: "0", mod: "-2147483648") + self.divModTest(lhs: "1932735283", rhs: "1", div: "1932735283", mod: "0") + self.divModTest(lhs: "1932735283", rhs: "-1", div: "-1932735283", mod: "0") + self.divModTest(lhs: "1932735283", rhs: "18446744073709551615", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-18446744073709551615", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "18446744073709551617", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-18446744073709551617", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "18446744073709551623", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-18446744073709551623", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "18446744073709551629", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-18446744073709551629", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "18446744073709551635", div: "0", mod: "1932735283") + self.divModTest(lhs: "1932735283", rhs: "-18446744073709551635", div: "0", mod: "1932735283") + self.divModTest(lhs: "-1932735284", rhs: "1", div: "-1932735284", mod: "0") + self.divModTest(lhs: "-1932735284", rhs: "-1", div: "1932735284", mod: "0") + self.divModTest(lhs: "-1932735284", rhs: "18446744073709551615", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-18446744073709551615", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "18446744073709551617", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-18446744073709551617", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "18446744073709551623", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-18446744073709551623", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "18446744073709551629", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-18446744073709551629", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "18446744073709551635", div: "0", mod: "-1932735284") + self.divModTest(lhs: "-1932735284", rhs: "-18446744073709551635", div: "0", mod: "-1932735284") + self.divModTest(lhs: "1717986919", rhs: "1", div: "1717986919", mod: "0") + self.divModTest(lhs: "1717986919", rhs: "-1", div: "-1717986919", mod: "0") + self.divModTest(lhs: "1717986919", rhs: "18446744073709551615", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-18446744073709551615", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "18446744073709551617", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-18446744073709551617", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "18446744073709551623", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-18446744073709551623", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "18446744073709551629", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-18446744073709551629", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "18446744073709551635", div: "0", mod: "1717986919") + self.divModTest(lhs: "1717986919", rhs: "-18446744073709551635", div: "0", mod: "1717986919") + self.divModTest(lhs: "-1717986920", rhs: "1", div: "-1717986920", mod: "0") + self.divModTest(lhs: "-1717986920", rhs: "-1", div: "1717986920", mod: "0") + self.divModTest(lhs: "-1717986920", rhs: "18446744073709551615", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-18446744073709551615", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "18446744073709551617", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-18446744073709551617", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "18446744073709551623", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-18446744073709551623", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "18446744073709551629", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-18446744073709551629", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "18446744073709551635", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-18446744073709551635", div: "0", mod: "-1717986920") + self.divModTest(lhs: "1503238555", rhs: "1", div: "1503238555", mod: "0") + self.divModTest(lhs: "1503238555", rhs: "-1", div: "-1503238555", mod: "0") + self.divModTest(lhs: "1503238555", rhs: "18446744073709551615", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-18446744073709551615", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "18446744073709551617", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-18446744073709551617", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "18446744073709551623", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-18446744073709551623", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "18446744073709551629", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-18446744073709551629", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "18446744073709551635", div: "0", mod: "1503238555") + self.divModTest(lhs: "1503238555", rhs: "-18446744073709551635", div: "0", mod: "1503238555") + self.divModTest(lhs: "-1503238556", rhs: "1", div: "-1503238556", mod: "0") + self.divModTest(lhs: "-1503238556", rhs: "-1", div: "1503238556", mod: "0") + self.divModTest(lhs: "-1503238556", rhs: "18446744073709551615", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-18446744073709551615", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "18446744073709551617", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-18446744073709551617", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "18446744073709551623", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-18446744073709551623", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "18446744073709551629", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-18446744073709551629", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "18446744073709551635", div: "0", mod: "-1503238556") + self.divModTest(lhs: "-1503238556", rhs: "-18446744073709551635", div: "0", mod: "-1503238556") + self.divModTest(lhs: "1288490191", rhs: "1", div: "1288490191", mod: "0") + self.divModTest(lhs: "1288490191", rhs: "-1", div: "-1288490191", mod: "0") + self.divModTest(lhs: "1288490191", rhs: "18446744073709551615", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-18446744073709551615", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "18446744073709551617", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-18446744073709551617", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "18446744073709551623", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-18446744073709551623", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "18446744073709551629", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-18446744073709551629", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "18446744073709551635", div: "0", mod: "1288490191") + self.divModTest(lhs: "1288490191", rhs: "-18446744073709551635", div: "0", mod: "1288490191") + self.divModTest(lhs: "-1288490192", rhs: "1", div: "-1288490192", mod: "0") + self.divModTest(lhs: "-1288490192", rhs: "-1", div: "1288490192", mod: "0") + self.divModTest(lhs: "-1288490192", rhs: "18446744073709551615", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-18446744073709551615", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "18446744073709551617", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-18446744073709551617", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "18446744073709551623", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-18446744073709551623", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "18446744073709551629", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-18446744073709551629", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "18446744073709551635", div: "0", mod: "-1288490192") + self.divModTest(lhs: "-1288490192", rhs: "-18446744073709551635", div: "0", mod: "-1288490192") + self.divModTest(lhs: "1073741827", rhs: "1", div: "1073741827", mod: "0") + self.divModTest(lhs: "1073741827", rhs: "-1", div: "-1073741827", mod: "0") + self.divModTest(lhs: "1073741827", rhs: "18446744073709551615", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-18446744073709551615", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "18446744073709551617", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-18446744073709551617", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "18446744073709551623", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-18446744073709551623", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "18446744073709551629", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-18446744073709551629", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "18446744073709551635", div: "0", mod: "1073741827") + self.divModTest(lhs: "1073741827", rhs: "-18446744073709551635", div: "0", mod: "1073741827") + self.divModTest(lhs: "-1073741828", rhs: "1", div: "-1073741828", mod: "0") + self.divModTest(lhs: "-1073741828", rhs: "-1", div: "1073741828", mod: "0") + self.divModTest(lhs: "-1073741828", rhs: "18446744073709551615", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-18446744073709551615", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "18446744073709551617", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-18446744073709551617", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "18446744073709551623", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-18446744073709551623", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "18446744073709551629", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-18446744073709551629", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "18446744073709551635", div: "0", mod: "-1073741828") + self.divModTest(lhs: "-1073741828", rhs: "-18446744073709551635", div: "0", mod: "-1073741828") + self.divModTest(lhs: "858993463", rhs: "1", div: "858993463", mod: "0") + self.divModTest(lhs: "858993463", rhs: "-1", div: "-858993463", mod: "0") + self.divModTest(lhs: "858993463", rhs: "18446744073709551615", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-18446744073709551615", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "18446744073709551617", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-18446744073709551617", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "18446744073709551623", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-18446744073709551623", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "18446744073709551629", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-18446744073709551629", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "18446744073709551635", div: "0", mod: "858993463") + self.divModTest(lhs: "858993463", rhs: "-18446744073709551635", div: "0", mod: "858993463") + self.divModTest(lhs: "-858993464", rhs: "1", div: "-858993464", mod: "0") + self.divModTest(lhs: "-858993464", rhs: "-1", div: "858993464", mod: "0") + self.divModTest(lhs: "-858993464", rhs: "18446744073709551615", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-18446744073709551615", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "18446744073709551617", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-18446744073709551617", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "18446744073709551623", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-18446744073709551623", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "18446744073709551629", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-18446744073709551629", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "18446744073709551635", div: "0", mod: "-858993464") + self.divModTest(lhs: "-858993464", rhs: "-18446744073709551635", div: "0", mod: "-858993464") + self.divModTest(lhs: "644245099", rhs: "1", div: "644245099", mod: "0") + self.divModTest(lhs: "644245099", rhs: "-1", div: "-644245099", mod: "0") + self.divModTest(lhs: "644245099", rhs: "18446744073709551615", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-18446744073709551615", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "18446744073709551617", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-18446744073709551617", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "18446744073709551623", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-18446744073709551623", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "18446744073709551629", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-18446744073709551629", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "18446744073709551635", div: "0", mod: "644245099") + self.divModTest(lhs: "644245099", rhs: "-18446744073709551635", div: "0", mod: "644245099") + self.divModTest(lhs: "-644245100", rhs: "1", div: "-644245100", mod: "0") + self.divModTest(lhs: "-644245100", rhs: "-1", div: "644245100", mod: "0") + self.divModTest(lhs: "-644245100", rhs: "18446744073709551615", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-18446744073709551615", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "18446744073709551617", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-18446744073709551617", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "18446744073709551623", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-18446744073709551623", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "18446744073709551629", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-18446744073709551629", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "18446744073709551635", div: "0", mod: "-644245100") + self.divModTest(lhs: "-644245100", rhs: "-18446744073709551635", div: "0", mod: "-644245100") + self.divModTest(lhs: "429496735", rhs: "1", div: "429496735", mod: "0") + self.divModTest(lhs: "429496735", rhs: "-1", div: "-429496735", mod: "0") + self.divModTest(lhs: "429496735", rhs: "18446744073709551615", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-18446744073709551615", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "18446744073709551617", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-18446744073709551617", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "18446744073709551623", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-18446744073709551623", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "18446744073709551629", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-18446744073709551629", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "18446744073709551635", div: "0", mod: "429496735") + self.divModTest(lhs: "429496735", rhs: "-18446744073709551635", div: "0", mod: "429496735") + self.divModTest(lhs: "-429496736", rhs: "1", div: "-429496736", mod: "0") + self.divModTest(lhs: "-429496736", rhs: "-1", div: "429496736", mod: "0") + self.divModTest(lhs: "-429496736", rhs: "18446744073709551615", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-18446744073709551615", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "18446744073709551617", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-18446744073709551617", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "18446744073709551623", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-18446744073709551623", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "18446744073709551629", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-18446744073709551629", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "18446744073709551635", div: "0", mod: "-429496736") + self.divModTest(lhs: "-429496736", rhs: "-18446744073709551635", div: "0", mod: "-429496736") + self.divModTest(lhs: "214748371", rhs: "1", div: "214748371", mod: "0") + self.divModTest(lhs: "214748371", rhs: "-1", div: "-214748371", mod: "0") + self.divModTest(lhs: "214748371", rhs: "18446744073709551615", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-18446744073709551615", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "18446744073709551617", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-18446744073709551617", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "18446744073709551623", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-18446744073709551623", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "18446744073709551629", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-18446744073709551629", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "18446744073709551635", div: "0", mod: "214748371") + self.divModTest(lhs: "214748371", rhs: "-18446744073709551635", div: "0", mod: "214748371") + self.divModTest(lhs: "-214748372", rhs: "1", div: "-214748372", mod: "0") + self.divModTest(lhs: "-214748372", rhs: "-1", div: "214748372", mod: "0") + self.divModTest(lhs: "-214748372", rhs: "18446744073709551615", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-18446744073709551615", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "18446744073709551617", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-18446744073709551617", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "18446744073709551623", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-18446744073709551623", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "18446744073709551629", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-18446744073709551629", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "18446744073709551635", div: "0", mod: "-214748372") + self.divModTest(lhs: "-214748372", rhs: "-18446744073709551635", div: "0", mod: "-214748372") + } + + func test_divMod_heap_smi() { + self.divModTest(lhs: "0", rhs: "1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "2147483647", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-2147483648", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1932735283", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1932735284", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1717986919", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1717986920", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1503238555", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1503238556", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1288490191", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1288490192", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1073741827", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1073741828", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "858993463", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-858993464", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "644245099", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-644245100", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "429496735", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-429496736", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "214748371", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-214748372", div: "0", mod: "0") + self.divModTest(lhs: "1", rhs: "1", div: "1", mod: "0") + self.divModTest(lhs: "1", rhs: "-1", div: "-1", mod: "0") + self.divModTest(lhs: "1", rhs: "2147483647", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-2147483648", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1932735283", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1932735284", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1717986919", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1717986920", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1503238555", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1503238556", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1288490191", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1288490192", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1073741827", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1073741828", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "858993463", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-858993464", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "644245099", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-644245100", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "429496735", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-429496736", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "214748371", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-214748372", div: "0", mod: "1") + self.divModTest(lhs: "-1", rhs: "1", div: "-1", mod: "0") + self.divModTest(lhs: "-1", rhs: "-1", div: "1", mod: "0") + self.divModTest(lhs: "-1", rhs: "2147483647", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-2147483648", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1932735283", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1932735284", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1717986919", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1717986920", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1503238555", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1503238556", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1288490191", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1288490192", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1073741827", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1073741828", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "858993463", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-858993464", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "644245099", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-644245100", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "429496735", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-429496736", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "214748371", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-214748372", div: "0", mod: "-1") + self.divModTest(lhs: "18446744073709551615", rhs: "1", div: "18446744073709551615", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "-1", div: "-18446744073709551615", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "2147483647", div: "8589934596", mod: "3") + self.divModTest(lhs: "18446744073709551615", rhs: "-2147483648", div: "-8589934591", mod: "2147483647") + self.divModTest(lhs: "18446744073709551615", rhs: "1932735283", div: "9544371769", mod: "1694125988") + self.divModTest(lhs: "18446744073709551615", rhs: "-1932735284", div: "-9544371764", mod: "1813430639") + self.divModTest(lhs: "18446744073709551615", rhs: "1717986919", div: "10737418236", mod: "429496731") + self.divModTest(lhs: "18446744073709551615", rhs: "-1717986920", div: "-10737418230", mod: "15") + self.divModTest(lhs: "18446744073709551615", rhs: "1503238555", div: "12271335120", mod: "15") + self.divModTest(lhs: "18446744073709551615", rhs: "-1503238556", div: "-12271335111", mod: "1257811899") + self.divModTest(lhs: "18446744073709551615", rhs: "1288490191", div: "14316557628", mod: "1145324667") + self.divModTest(lhs: "18446744073709551615", rhs: "-1288490192", div: "-14316557617", mod: "1002159151") + self.divModTest(lhs: "18446744073709551615", rhs: "1073741827", div: "17179869136", mod: "143") + self.divModTest(lhs: "18446744073709551615", rhs: "-1073741828", div: "-17179869120", mod: "255") + self.divModTest(lhs: "18446744073709551615", rhs: "858993463", div: "21474836385", mod: "360") + self.divModTest(lhs: "18446744073709551615", rhs: "-858993464", div: "-21474836360", mod: "575") + self.divModTest(lhs: "18446744073709551615", rhs: "644245099", div: "28633115102", mod: "143166517") + self.divModTest(lhs: "18446744073709551615", rhs: "-644245100", div: "-28633115057", mod: "501080915") + self.divModTest(lhs: "18446744073709551615", rhs: "429496735", div: "42949672420", mod: "2915") + self.divModTest(lhs: "18446744073709551615", rhs: "-429496736", div: "-42949672320", mod: "4095") + self.divModTest(lhs: "18446744073709551615", rhs: "214748371", div: "85899343440", mod: "15375") + self.divModTest(lhs: "18446744073709551615", rhs: "-214748372", div: "-85899343040", mod: "20735") + self.divModTest(lhs: "-18446744073709551615", rhs: "1", div: "-18446744073709551615", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1", div: "18446744073709551615", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "2147483647", div: "-8589934596", mod: "-3") + self.divModTest(lhs: "-18446744073709551615", rhs: "-2147483648", div: "8589934591", mod: "-2147483647") + self.divModTest(lhs: "-18446744073709551615", rhs: "1932735283", div: "-9544371769", mod: "-1694125988") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1932735284", div: "9544371764", mod: "-1813430639") + self.divModTest(lhs: "-18446744073709551615", rhs: "1717986919", div: "-10737418236", mod: "-429496731") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1717986920", div: "10737418230", mod: "-15") + self.divModTest(lhs: "-18446744073709551615", rhs: "1503238555", div: "-12271335120", mod: "-15") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1503238556", div: "12271335111", mod: "-1257811899") + self.divModTest(lhs: "-18446744073709551615", rhs: "1288490191", div: "-14316557628", mod: "-1145324667") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1288490192", div: "14316557617", mod: "-1002159151") + self.divModTest(lhs: "-18446744073709551615", rhs: "1073741827", div: "-17179869136", mod: "-143") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1073741828", div: "17179869120", mod: "-255") + self.divModTest(lhs: "-18446744073709551615", rhs: "858993463", div: "-21474836385", mod: "-360") + self.divModTest(lhs: "-18446744073709551615", rhs: "-858993464", div: "21474836360", mod: "-575") + self.divModTest(lhs: "-18446744073709551615", rhs: "644245099", div: "-28633115102", mod: "-143166517") + self.divModTest(lhs: "-18446744073709551615", rhs: "-644245100", div: "28633115057", mod: "-501080915") + self.divModTest(lhs: "-18446744073709551615", rhs: "429496735", div: "-42949672420", mod: "-2915") + self.divModTest(lhs: "-18446744073709551615", rhs: "-429496736", div: "42949672320", mod: "-4095") + self.divModTest(lhs: "-18446744073709551615", rhs: "214748371", div: "-85899343440", mod: "-15375") + self.divModTest(lhs: "-18446744073709551615", rhs: "-214748372", div: "85899343040", mod: "-20735") + self.divModTest(lhs: "18446744073709551617", rhs: "1", div: "18446744073709551617", mod: "0") + self.divModTest(lhs: "18446744073709551617", rhs: "-1", div: "-18446744073709551617", mod: "0") + self.divModTest(lhs: "18446744073709551617", rhs: "2147483647", div: "8589934596", mod: "5") + self.divModTest(lhs: "18446744073709551617", rhs: "-2147483648", div: "-8589934592", mod: "1") + self.divModTest(lhs: "18446744073709551617", rhs: "1932735283", div: "9544371769", mod: "1694125990") + self.divModTest(lhs: "18446744073709551617", rhs: "-1932735284", div: "-9544371764", mod: "1813430641") + self.divModTest(lhs: "18446744073709551617", rhs: "1717986919", div: "10737418236", mod: "429496733") + self.divModTest(lhs: "18446744073709551617", rhs: "-1717986920", div: "-10737418230", mod: "17") + self.divModTest(lhs: "18446744073709551617", rhs: "1503238555", div: "12271335120", mod: "17") + self.divModTest(lhs: "18446744073709551617", rhs: "-1503238556", div: "-12271335111", mod: "1257811901") + self.divModTest(lhs: "18446744073709551617", rhs: "1288490191", div: "14316557628", mod: "1145324669") + self.divModTest(lhs: "18446744073709551617", rhs: "-1288490192", div: "-14316557617", mod: "1002159153") + self.divModTest(lhs: "18446744073709551617", rhs: "1073741827", div: "17179869136", mod: "145") + self.divModTest(lhs: "18446744073709551617", rhs: "-1073741828", div: "-17179869120", mod: "257") + self.divModTest(lhs: "18446744073709551617", rhs: "858993463", div: "21474836385", mod: "362") + self.divModTest(lhs: "18446744073709551617", rhs: "-858993464", div: "-21474836360", mod: "577") + self.divModTest(lhs: "18446744073709551617", rhs: "644245099", div: "28633115102", mod: "143166519") + self.divModTest(lhs: "18446744073709551617", rhs: "-644245100", div: "-28633115057", mod: "501080917") + self.divModTest(lhs: "18446744073709551617", rhs: "429496735", div: "42949672420", mod: "2917") + self.divModTest(lhs: "18446744073709551617", rhs: "-429496736", div: "-42949672320", mod: "4097") + self.divModTest(lhs: "18446744073709551617", rhs: "214748371", div: "85899343440", mod: "15377") + self.divModTest(lhs: "18446744073709551617", rhs: "-214748372", div: "-85899343040", mod: "20737") + self.divModTest(lhs: "-18446744073709551617", rhs: "1", div: "-18446744073709551617", mod: "0") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1", div: "18446744073709551617", mod: "0") + self.divModTest(lhs: "-18446744073709551617", rhs: "2147483647", div: "-8589934596", mod: "-5") + self.divModTest(lhs: "-18446744073709551617", rhs: "-2147483648", div: "8589934592", mod: "-1") + self.divModTest(lhs: "-18446744073709551617", rhs: "1932735283", div: "-9544371769", mod: "-1694125990") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1932735284", div: "9544371764", mod: "-1813430641") + self.divModTest(lhs: "-18446744073709551617", rhs: "1717986919", div: "-10737418236", mod: "-429496733") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1717986920", div: "10737418230", mod: "-17") + self.divModTest(lhs: "-18446744073709551617", rhs: "1503238555", div: "-12271335120", mod: "-17") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1503238556", div: "12271335111", mod: "-1257811901") + self.divModTest(lhs: "-18446744073709551617", rhs: "1288490191", div: "-14316557628", mod: "-1145324669") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1288490192", div: "14316557617", mod: "-1002159153") + self.divModTest(lhs: "-18446744073709551617", rhs: "1073741827", div: "-17179869136", mod: "-145") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1073741828", div: "17179869120", mod: "-257") + self.divModTest(lhs: "-18446744073709551617", rhs: "858993463", div: "-21474836385", mod: "-362") + self.divModTest(lhs: "-18446744073709551617", rhs: "-858993464", div: "21474836360", mod: "-577") + self.divModTest(lhs: "-18446744073709551617", rhs: "644245099", div: "-28633115102", mod: "-143166519") + self.divModTest(lhs: "-18446744073709551617", rhs: "-644245100", div: "28633115057", mod: "-501080917") + self.divModTest(lhs: "-18446744073709551617", rhs: "429496735", div: "-42949672420", mod: "-2917") + self.divModTest(lhs: "-18446744073709551617", rhs: "-429496736", div: "42949672320", mod: "-4097") + self.divModTest(lhs: "-18446744073709551617", rhs: "214748371", div: "-85899343440", mod: "-15377") + self.divModTest(lhs: "-18446744073709551617", rhs: "-214748372", div: "85899343040", mod: "-20737") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1", div: "340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", div: "-340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", div: "158456325102315651524875780116", mod: "22") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", div: "-158456325028528675195677835264", mod: "2") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", div: "176062583383250867822968879647", mod: "740277973") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", div: "-176062583292155835388485281828", mod: "1818143922") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", div: "198070406216485553742345666547", mod: "1395864381") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", div: "-198070406101193403429300469590", mod: "274") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", div: "226366178401363889633486250960", mod: "274") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", div: "-226366178250778224106315000282", mod: "424490282") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", div: "264093874596627382072031118400", mod: "318148674") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", div: "-264093874391663559889807334680", mod: "636304514") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", div: "316912649171613637327198348496", mod: "20882") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", div: "-316912648876465734071990861760", mod: "65794") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", div: "396140810818881008739203119530", mod: "130684") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", div: "-396140810357712411513554137480", mod: "332354") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", div: "528187746323761266955049589760", mod: "637176834") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", div: "-528187745503905987770526080067", mod: "105341374") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", div: "792281615181401701416476079860", mod: "8505974") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", div: "-792281613336727344726133964160", mod: "16781314") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", div: "1584563204537362769945395075921", mod: "21688383") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", div: "-1584563197158665600882046973122", mod: "505690") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", div: "-340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", div: "340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", div: "-158456325102315651524875780116", mod: "-22") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", div: "158456325028528675195677835264", mod: "-2") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", div: "-176062583383250867822968879647", mod: "-740277973") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", div: "176062583292155835388485281828", mod: "-1818143922") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", div: "-198070406216485553742345666547", mod: "-1395864381") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", div: "198070406101193403429300469590", mod: "-274") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", div: "-226366178401363889633486250960", mod: "-274") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", div: "226366178250778224106315000282", mod: "-424490282") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", div: "-264093874596627382072031118400", mod: "-318148674") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", div: "264093874391663559889807334680", mod: "-636304514") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", div: "-316912649171613637327198348496", mod: "-20882") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", div: "316912648876465734071990861760", mod: "-65794") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", div: "-396140810818881008739203119530", mod: "-130684") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", div: "396140810357712411513554137480", mod: "-332354") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", div: "-528187746323761266955049589760", mod: "-637176834") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", div: "528187745503905987770526080067", mod: "-105341374") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", div: "-792281615181401701416476079860", mod: "-8505974") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", div: "792281613336727344726133964160", mod: "-16781314") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", div: "-1584563204537362769945395075921", mod: "-21688383") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", div: "1584563197158665600882046973122", mod: "-505690") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", div: "6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", div: "-6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", div: "2923003276022935305041861469899958378128063070300", mod: "97") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", div: "-2923003274661805836724282315489623389677450952704", mod: "5") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", div: "3247781416626976724218240577879253908674392381987", mod: "1172836876") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", div: "-3247781414946569974513050881441632201821311560043", mod: "1670726985") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", div: "3653754092051198420397492070223116374619298201567", mod: "1530082124") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", div: "-3653754089924433629865094756978442736345546749130", mod: "4597") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", div: "4175718959913638434131536865118220270109196284720", mod: "4597") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", div: "-4175718957135823200982581873751210079400503292608", mod: "565990149") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", div: "4871672116118329661786578674117002527503647806391", mod: "390773516") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", div: "-4871672112337414489621783754369116177960521033794", mod: "591835749") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", div: "5846006532990058106878939863678741969144374139440", mod: "3027317") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", div: "-5846006527545540271638141079337316589114620870720", mod: "16908037") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", div: "7307508154327689877328384461814633556775574571810", mod: "47306167") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", div: "-7307508145820630789475196934734236048867838551160", mod: "191765957") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", div: "9743344179303847159753642389834529952723253724362", mod: "145982359") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", div: "-9743344164180186647157043425009430949510765258833", mod: "469415897") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", div: "14615016189556553356607831156270706791311598481077", mod: "330600602") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", div: "-14615016155528317599406283164511739951873948386080", mod: "33549317") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", div: "29230031902717812767559266640721308861572961199569", mod: "212732098") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", div: "-29230031766604874492442504556214020300049855163762", mod: "178488733") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", div: "-6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", div: "6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", div: "-2923003276022935305041861469899958378128063070300", mod: "-97") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", div: "2923003274661805836724282315489623389677450952704", mod: "-5") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", div: "-3247781416626976724218240577879253908674392381987", mod: "-1172836876") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", div: "3247781414946569974513050881441632201821311560043", mod: "-1670726985") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", div: "-3653754092051198420397492070223116374619298201567", mod: "-1530082124") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", div: "3653754089924433629865094756978442736345546749130", mod: "-4597") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", div: "-4175718959913638434131536865118220270109196284720", mod: "-4597") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", div: "4175718957135823200982581873751210079400503292608", mod: "-565990149") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", div: "-4871672116118329661786578674117002527503647806391", mod: "-390773516") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", div: "4871672112337414489621783754369116177960521033794", mod: "-591835749") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", div: "-5846006532990058106878939863678741969144374139440", mod: "-3027317") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", div: "5846006527545540271638141079337316589114620870720", mod: "-16908037") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", div: "-7307508154327689877328384461814633556775574571810", mod: "-47306167") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", div: "7307508145820630789475196934734236048867838551160", mod: "-191765957") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", div: "-9743344179303847159753642389834529952723253724362", mod: "-145982359") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", div: "9743344164180186647157043425009430949510765258833", mod: "-469415897") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", div: "-14615016189556553356607831156270706791311598481077", mod: "-330600602") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", div: "14615016155528317599406283164511739951873948386080", mod: "-33549317") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", div: "-29230031902717812767559266640721308861572961199569", mod: "-212732098") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", div: "29230031766604874492442504556214020300049855163762", mod: "-178488733") + self.divModTest(lhs: "18446744073709551623", rhs: "1", div: "18446744073709551623", mod: "0") + self.divModTest(lhs: "18446744073709551623", rhs: "-1", div: "-18446744073709551623", mod: "0") + self.divModTest(lhs: "18446744073709551623", rhs: "2147483647", div: "8589934596", mod: "11") + self.divModTest(lhs: "18446744073709551623", rhs: "-2147483648", div: "-8589934592", mod: "7") + self.divModTest(lhs: "18446744073709551623", rhs: "1932735283", div: "9544371769", mod: "1694125996") + self.divModTest(lhs: "18446744073709551623", rhs: "-1932735284", div: "-9544371764", mod: "1813430647") + self.divModTest(lhs: "18446744073709551623", rhs: "1717986919", div: "10737418236", mod: "429496739") + self.divModTest(lhs: "18446744073709551623", rhs: "-1717986920", div: "-10737418230", mod: "23") + self.divModTest(lhs: "18446744073709551623", rhs: "1503238555", div: "12271335120", mod: "23") + self.divModTest(lhs: "18446744073709551623", rhs: "-1503238556", div: "-12271335111", mod: "1257811907") + self.divModTest(lhs: "18446744073709551623", rhs: "1288490191", div: "14316557628", mod: "1145324675") + self.divModTest(lhs: "18446744073709551623", rhs: "-1288490192", div: "-14316557617", mod: "1002159159") + self.divModTest(lhs: "18446744073709551623", rhs: "1073741827", div: "17179869136", mod: "151") + self.divModTest(lhs: "18446744073709551623", rhs: "-1073741828", div: "-17179869120", mod: "263") + self.divModTest(lhs: "18446744073709551623", rhs: "858993463", div: "21474836385", mod: "368") + self.divModTest(lhs: "18446744073709551623", rhs: "-858993464", div: "-21474836360", mod: "583") + self.divModTest(lhs: "18446744073709551623", rhs: "644245099", div: "28633115102", mod: "143166525") + self.divModTest(lhs: "18446744073709551623", rhs: "-644245100", div: "-28633115057", mod: "501080923") + self.divModTest(lhs: "18446744073709551623", rhs: "429496735", div: "42949672420", mod: "2923") + self.divModTest(lhs: "18446744073709551623", rhs: "-429496736", div: "-42949672320", mod: "4103") + self.divModTest(lhs: "18446744073709551623", rhs: "214748371", div: "85899343440", mod: "15383") + self.divModTest(lhs: "18446744073709551623", rhs: "-214748372", div: "-85899343040", mod: "20743") + self.divModTest(lhs: "-18446744073709551623", rhs: "1", div: "-18446744073709551623", mod: "0") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1", div: "18446744073709551623", mod: "0") + self.divModTest(lhs: "-18446744073709551623", rhs: "2147483647", div: "-8589934596", mod: "-11") + self.divModTest(lhs: "-18446744073709551623", rhs: "-2147483648", div: "8589934592", mod: "-7") + self.divModTest(lhs: "-18446744073709551623", rhs: "1932735283", div: "-9544371769", mod: "-1694125996") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1932735284", div: "9544371764", mod: "-1813430647") + self.divModTest(lhs: "-18446744073709551623", rhs: "1717986919", div: "-10737418236", mod: "-429496739") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1717986920", div: "10737418230", mod: "-23") + self.divModTest(lhs: "-18446744073709551623", rhs: "1503238555", div: "-12271335120", mod: "-23") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1503238556", div: "12271335111", mod: "-1257811907") + self.divModTest(lhs: "-18446744073709551623", rhs: "1288490191", div: "-14316557628", mod: "-1145324675") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1288490192", div: "14316557617", mod: "-1002159159") + self.divModTest(lhs: "-18446744073709551623", rhs: "1073741827", div: "-17179869136", mod: "-151") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1073741828", div: "17179869120", mod: "-263") + self.divModTest(lhs: "-18446744073709551623", rhs: "858993463", div: "-21474836385", mod: "-368") + self.divModTest(lhs: "-18446744073709551623", rhs: "-858993464", div: "21474836360", mod: "-583") + self.divModTest(lhs: "-18446744073709551623", rhs: "644245099", div: "-28633115102", mod: "-143166525") + self.divModTest(lhs: "-18446744073709551623", rhs: "-644245100", div: "28633115057", mod: "-501080923") + self.divModTest(lhs: "-18446744073709551623", rhs: "429496735", div: "-42949672420", mod: "-2923") + self.divModTest(lhs: "-18446744073709551623", rhs: "-429496736", div: "42949672320", mod: "-4103") + self.divModTest(lhs: "-18446744073709551623", rhs: "214748371", div: "-85899343440", mod: "-15383") + self.divModTest(lhs: "-18446744073709551623", rhs: "-214748372", div: "85899343040", mod: "-20743") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1", div: "340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", div: "-340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", div: "158456325102315651576415387692", mod: "46") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", div: "-158456325028528675247217442816", mod: "2") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", div: "176062583383250867880235110266", mod: "1241357492") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", div: "-176062583292155835445751512418", mod: "1102316058") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", div: "198070406216485553806770175965", mod: "536870935") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", div: "-198070406101193403493724978970", mod: "370") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", div: "226366178401363889707114261680", mod: "370") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", div: "-226366178250778224179943010953", mod: "455168902") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", div: "264093874596627382157930464173", mod: "747645727") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", div: "-264093874391663559975706680387", mod: "206808466") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", div: "316912649171613637430277563312", mod: "21746") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", div: "-316912648876465734175070076480", mod: "67330") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", div: "396140810818881008868052137840", mod: "132850") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", div: "-396140810357712411642403155640", mod: "335810") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", div: "528187746323761267126848280374", mod: "207685744") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", div: "-528187745503905987942324770413", mod: "534846470") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", div: "792281615181401701674174114380", mod: "8523470") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", div: "-792281613336727344983831998080", mod: "16805890") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", div: "1584563204537362770460791136561", mod: "21780639") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", div: "-1584563197158665601397443031362", mod: "630106") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", div: "-340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", div: "340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", div: "-158456325102315651576415387692", mod: "-46") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", div: "158456325028528675247217442816", mod: "-2") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", div: "-176062583383250867880235110266", mod: "-1241357492") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", div: "176062583292155835445751512418", mod: "-1102316058") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", div: "-198070406216485553806770175965", mod: "-536870935") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", div: "198070406101193403493724978970", mod: "-370") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", div: "-226366178401363889707114261680", mod: "-370") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", div: "226366178250778224179943010953", mod: "-455168902") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", div: "-264093874596627382157930464173", mod: "-747645727") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", div: "264093874391663559975706680387", mod: "-206808466") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", div: "-316912649171613637430277563312", mod: "-21746") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", div: "316912648876465734175070076480", mod: "-67330") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", div: "-396140810818881008868052137840", mod: "-132850") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", div: "396140810357712411642403155640", mod: "-335810") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", div: "-528187746323761267126848280374", mod: "-207685744") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", div: "528187745503905987942324770413", mod: "-534846470") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", div: "-792281615181401701674174114380", mod: "-8523470") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", div: "792281613336727344983831998080", mod: "-16805890") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", div: "-1584563204537362770460791136561", mod: "-21780639") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", div: "1584563197158665601397443031362", mod: "-630106") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", div: "6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", div: "-6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", div: "2923003276022935305992599420513852287174238535844", mod: "175") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", div: "-2923003274661805837675020265660795440748438749184", mod: "11") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", div: "3247781416626976725274616078178759115497673198633", mod: "746875104") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", div: "-3247781414946569975569426381194567214037690789838", mod: "482099251") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", div: "3653754092051198421585914507522029696944523182019", mod: "1315333782") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", div: "-3653754089924433631053517193585603156792500547910", mod: "6043") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", div: "4175718959913638435489733935526403607762857769040", mod: "6043") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", div: "-4175718957135823202340778943255879423891137272960", mod: "45097483") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", div: "4871672116118329663371141921696766819764035825246", mod: "152181257") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", div: "-4871672112337414491206347000719097537127566350464", mod: "114694155") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", div: "5846006532990058108780415758708423792901405800784", mod: "3150875") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", div: "-5846006527545540273539616972596110993340407611840", mod: "17299723") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", div: "7307508154327689879705229326727919608953095252370", mod: "48085933") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", div: "-7307508145820630791852041796880510517691465339720", mod: "193753163") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", div: "9743344179303847162922768867777097554109953881701", mod: "318309844") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", div: "-9743344164180186650326169898032866875790324358543", mod: "242453943") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", div: "14615016189556553361361520847359116999295058891197", mod: "381601448") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", div: "-14615016155528317604159972844532104019715356103200", mod: "134188043") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", div: "29230031902717812777066645867945485480214539533816", mod: "127929507") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", div: "-29230031766604874501949883739166013904311344886014", mod: "181274035") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", div: "-6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", div: "6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", div: "-2923003276022935305992599420513852287174238535844", mod: "-175") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", div: "2923003274661805837675020265660795440748438749184", mod: "-11") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", div: "-3247781416626976725274616078178759115497673198633", mod: "-746875104") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", div: "3247781414946569975569426381194567214037690789838", mod: "-482099251") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", div: "-3653754092051198421585914507522029696944523182019", mod: "-1315333782") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", div: "3653754089924433631053517193585603156792500547910", mod: "-6043") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", div: "-4175718959913638435489733935526403607762857769040", mod: "-6043") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", div: "4175718957135823202340778943255879423891137272960", mod: "-45097483") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", div: "-4871672116118329663371141921696766819764035825246", mod: "-152181257") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", div: "4871672112337414491206347000719097537127566350464", mod: "-114694155") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", div: "-5846006532990058108780415758708423792901405800784", mod: "-3150875") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", div: "5846006527545540273539616972596110993340407611840", mod: "-17299723") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", div: "-7307508154327689879705229326727919608953095252370", mod: "-48085933") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", div: "7307508145820630791852041796880510517691465339720", mod: "-193753163") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", div: "-9743344179303847162922768867777097554109953881701", mod: "-318309844") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", div: "9743344164180186650326169898032866875790324358543", mod: "-242453943") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", div: "-14615016189556553361361520847359116999295058891197", mod: "-381601448") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", div: "14615016155528317604159972844532104019715356103200", mod: "-134188043") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", div: "-29230031902717812777066645867945485480214539533816", mod: "-127929507") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", div: "29230031766604874501949883739166013904311344886014", mod: "-181274035") + self.divModTest(lhs: "18446744073709551629", rhs: "1", div: "18446744073709551629", mod: "0") + self.divModTest(lhs: "18446744073709551629", rhs: "-1", div: "-18446744073709551629", mod: "0") + self.divModTest(lhs: "18446744073709551629", rhs: "2147483647", div: "8589934596", mod: "17") + self.divModTest(lhs: "18446744073709551629", rhs: "-2147483648", div: "-8589934592", mod: "13") + self.divModTest(lhs: "18446744073709551629", rhs: "1932735283", div: "9544371769", mod: "1694126002") + self.divModTest(lhs: "18446744073709551629", rhs: "-1932735284", div: "-9544371764", mod: "1813430653") + self.divModTest(lhs: "18446744073709551629", rhs: "1717986919", div: "10737418236", mod: "429496745") + self.divModTest(lhs: "18446744073709551629", rhs: "-1717986920", div: "-10737418230", mod: "29") + self.divModTest(lhs: "18446744073709551629", rhs: "1503238555", div: "12271335120", mod: "29") + self.divModTest(lhs: "18446744073709551629", rhs: "-1503238556", div: "-12271335111", mod: "1257811913") + self.divModTest(lhs: "18446744073709551629", rhs: "1288490191", div: "14316557628", mod: "1145324681") + self.divModTest(lhs: "18446744073709551629", rhs: "-1288490192", div: "-14316557617", mod: "1002159165") + self.divModTest(lhs: "18446744073709551629", rhs: "1073741827", div: "17179869136", mod: "157") + self.divModTest(lhs: "18446744073709551629", rhs: "-1073741828", div: "-17179869120", mod: "269") + self.divModTest(lhs: "18446744073709551629", rhs: "858993463", div: "21474836385", mod: "374") + self.divModTest(lhs: "18446744073709551629", rhs: "-858993464", div: "-21474836360", mod: "589") + self.divModTest(lhs: "18446744073709551629", rhs: "644245099", div: "28633115102", mod: "143166531") + self.divModTest(lhs: "18446744073709551629", rhs: "-644245100", div: "-28633115057", mod: "501080929") + self.divModTest(lhs: "18446744073709551629", rhs: "429496735", div: "42949672420", mod: "2929") + self.divModTest(lhs: "18446744073709551629", rhs: "-429496736", div: "-42949672320", mod: "4109") + self.divModTest(lhs: "18446744073709551629", rhs: "214748371", div: "85899343440", mod: "15389") + self.divModTest(lhs: "18446744073709551629", rhs: "-214748372", div: "-85899343040", mod: "20749") + self.divModTest(lhs: "-18446744073709551629", rhs: "1", div: "-18446744073709551629", mod: "0") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1", div: "18446744073709551629", mod: "0") + self.divModTest(lhs: "-18446744073709551629", rhs: "2147483647", div: "-8589934596", mod: "-17") + self.divModTest(lhs: "-18446744073709551629", rhs: "-2147483648", div: "8589934592", mod: "-13") + self.divModTest(lhs: "-18446744073709551629", rhs: "1932735283", div: "-9544371769", mod: "-1694126002") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1932735284", div: "9544371764", mod: "-1813430653") + self.divModTest(lhs: "-18446744073709551629", rhs: "1717986919", div: "-10737418236", mod: "-429496745") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1717986920", div: "10737418230", mod: "-29") + self.divModTest(lhs: "-18446744073709551629", rhs: "1503238555", div: "-12271335120", mod: "-29") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1503238556", div: "12271335111", mod: "-1257811913") + self.divModTest(lhs: "-18446744073709551629", rhs: "1288490191", div: "-14316557628", mod: "-1145324681") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1288490192", div: "14316557617", mod: "-1002159165") + self.divModTest(lhs: "-18446744073709551629", rhs: "1073741827", div: "-17179869136", mod: "-157") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1073741828", div: "17179869120", mod: "-269") + self.divModTest(lhs: "-18446744073709551629", rhs: "858993463", div: "-21474836385", mod: "-374") + self.divModTest(lhs: "-18446744073709551629", rhs: "-858993464", div: "21474836360", mod: "-589") + self.divModTest(lhs: "-18446744073709551629", rhs: "644245099", div: "-28633115102", mod: "-143166531") + self.divModTest(lhs: "-18446744073709551629", rhs: "-644245100", div: "28633115057", mod: "-501080929") + self.divModTest(lhs: "-18446744073709551629", rhs: "429496735", div: "-42949672420", mod: "-2929") + self.divModTest(lhs: "-18446744073709551629", rhs: "-429496736", div: "42949672320", mod: "-4109") + self.divModTest(lhs: "-18446744073709551629", rhs: "214748371", div: "-85899343440", mod: "-15389") + self.divModTest(lhs: "-18446744073709551629", rhs: "-214748372", div: "85899343040", mod: "-20749") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1", div: "340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", div: "-340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", div: "158456325102315651627954995268", mod: "70") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", div: "-158456325028528675298757050368", mod: "2") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", div: "176062583383250867937501340885", mod: "1742437011") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", div: "-176062583292155835503017743008", mod: "386488194") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", div: "198070406216485553871194685382", mod: "1395864408") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", div: "-198070406101193403558149488350", mod: "466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", div: "226366178401363889780742272400", mod: "466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", div: "-226366178250778224253571021624", mod: "485847522") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", div: "264093874596627382243829809946", mod: "1177142780") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", div: "-264093874391663560061606026093", mod: "1065802610") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", div: "316912649171613637533356778128", mod: "22610") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", div: "-316912648876465734278149291200", mod: "68866") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", div: "396140810818881008996901156150", mod: "135016") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", div: "-396140810357712411771252173800", mod: "339266") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", div: "528187746323761267298646970987", mod: "422439753") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", div: "-528187745503905988114123460760", mod: "320106466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", div: "792281615181401701931872148900", mod: "8540966") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", div: "-792281613336727345241530032000", mod: "16830466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", div: "1584563204537362770976187197201", mod: "21872895") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", div: "-1584563197158665601912839089602", mod: "754522") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", div: "-340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", div: "340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", div: "-158456325102315651627954995268", mod: "-70") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", div: "158456325028528675298757050368", mod: "-2") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", div: "-176062583383250867937501340885", mod: "-1742437011") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", div: "176062583292155835503017743008", mod: "-386488194") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", div: "-198070406216485553871194685382", mod: "-1395864408") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", div: "198070406101193403558149488350", mod: "-466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", div: "-226366178401363889780742272400", mod: "-466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", div: "226366178250778224253571021624", mod: "-485847522") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", div: "-264093874596627382243829809946", mod: "-1177142780") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", div: "264093874391663560061606026093", mod: "-1065802610") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", div: "-316912649171613637533356778128", mod: "-22610") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", div: "316912648876465734278149291200", mod: "-68866") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", div: "-396140810818881008996901156150", mod: "-135016") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", div: "396140810357712411771252173800", mod: "-339266") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", div: "-528187746323761267298646970987", mod: "-422439753") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", div: "528187745503905988114123460760", mod: "-320106466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", div: "-792281615181401701931872148900", mod: "-8540966") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", div: "792281613336727345241530032000", mod: "-16830466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", div: "-1584563204537362770976187197201", mod: "-21872895") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", div: "1584563197158665601912839089602", mod: "-754522") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", div: "6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", div: "-6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", div: "2923003276022935306943337371127746196220414001388", mod: "253") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", div: "-2923003274661805838625758215831967491819426545664", mod: "17") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", div: "3247781416626976726330991578478264322320954015279", mod: "320913332") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", div: "-3247781414946569976625801880947502226254070019632", mod: "1226206801") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", div: "3653754092051198422774336944820943019269748162471", mod: "1100585440") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", div: "-3653754089924433632241939630192763577239454346690", mod: "7489") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", div: "4175718959913638436847931005934586945416519253360", mod: "7489") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", div: "-4175718957135823203698976012760548768381771253311", mod: "1027443373") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", div: "4871672116118329664955705169276531112024423844100", mod: "1202079189") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", div: "-4871672112337414492790910247069078896294611667133", mod: "926042753") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", div: "5846006532990058110681891653738105616658437462128", mod: "3274433") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", div: "-5846006527545540275441092865854905397566194352960", mod: "17691409") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", div: "7307508154327689882082074191641205661130615932930", mod: "48865699") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", div: "-7307508145820630794228886659026784986515092128280", mod: "195740369") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", div: "9743344179303847166091895345719665155496654039040", mod: "490637329") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", div: "-9743344164180186653495296371056302802069883458253", mod: "15491989") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", div: "14615016189556553366115210538447527207278519301318", mod: "3105559") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", div: "-14615016155528317608913662524552468087556763820320", mod: "234826769") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", div: "29230031902717812786574025095169662098856117868063", mod: "43126916") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", div: "-29230031766604874511457262922118007508572834608266", mod: "184059337") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", div: "-6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", div: "6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", div: "-2923003276022935306943337371127746196220414001388", mod: "-253") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", div: "2923003274661805838625758215831967491819426545664", mod: "-17") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", div: "-3247781416626976726330991578478264322320954015279", mod: "-320913332") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", div: "3247781414946569976625801880947502226254070019632", mod: "-1226206801") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", div: "-3653754092051198422774336944820943019269748162471", mod: "-1100585440") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", div: "3653754089924433632241939630192763577239454346690", mod: "-7489") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", div: "-4175718959913638436847931005934586945416519253360", mod: "-7489") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", div: "4175718957135823203698976012760548768381771253311", mod: "-1027443373") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", div: "-4871672116118329664955705169276531112024423844100", mod: "-1202079189") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", div: "4871672112337414492790910247069078896294611667133", mod: "-926042753") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", div: "-5846006532990058110681891653738105616658437462128", mod: "-3274433") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", div: "5846006527545540275441092865854905397566194352960", mod: "-17691409") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", div: "-7307508154327689882082074191641205661130615932930", mod: "-48865699") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", div: "7307508145820630794228886659026784986515092128280", mod: "-195740369") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", div: "-9743344179303847166091895345719665155496654039040", mod: "-490637329") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", div: "9743344164180186653495296371056302802069883458253", mod: "-15491989") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", div: "-14615016189556553366115210538447527207278519301318", mod: "-3105559") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", div: "14615016155528317608913662524552468087556763820320", mod: "-234826769") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", div: "-29230031902717812786574025095169662098856117868063", mod: "-43126916") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", div: "29230031766604874511457262922118007508572834608266", mod: "-184059337") + self.divModTest(lhs: "18446744073709551635", rhs: "1", div: "18446744073709551635", mod: "0") + self.divModTest(lhs: "18446744073709551635", rhs: "-1", div: "-18446744073709551635", mod: "0") + self.divModTest(lhs: "18446744073709551635", rhs: "2147483647", div: "8589934596", mod: "23") + self.divModTest(lhs: "18446744073709551635", rhs: "-2147483648", div: "-8589934592", mod: "19") + self.divModTest(lhs: "18446744073709551635", rhs: "1932735283", div: "9544371769", mod: "1694126008") + self.divModTest(lhs: "18446744073709551635", rhs: "-1932735284", div: "-9544371764", mod: "1813430659") + self.divModTest(lhs: "18446744073709551635", rhs: "1717986919", div: "10737418236", mod: "429496751") + self.divModTest(lhs: "18446744073709551635", rhs: "-1717986920", div: "-10737418230", mod: "35") + self.divModTest(lhs: "18446744073709551635", rhs: "1503238555", div: "12271335120", mod: "35") + self.divModTest(lhs: "18446744073709551635", rhs: "-1503238556", div: "-12271335111", mod: "1257811919") + self.divModTest(lhs: "18446744073709551635", rhs: "1288490191", div: "14316557628", mod: "1145324687") + self.divModTest(lhs: "18446744073709551635", rhs: "-1288490192", div: "-14316557617", mod: "1002159171") + self.divModTest(lhs: "18446744073709551635", rhs: "1073741827", div: "17179869136", mod: "163") + self.divModTest(lhs: "18446744073709551635", rhs: "-1073741828", div: "-17179869120", mod: "275") + self.divModTest(lhs: "18446744073709551635", rhs: "858993463", div: "21474836385", mod: "380") + self.divModTest(lhs: "18446744073709551635", rhs: "-858993464", div: "-21474836360", mod: "595") + self.divModTest(lhs: "18446744073709551635", rhs: "644245099", div: "28633115102", mod: "143166537") + self.divModTest(lhs: "18446744073709551635", rhs: "-644245100", div: "-28633115057", mod: "501080935") + self.divModTest(lhs: "18446744073709551635", rhs: "429496735", div: "42949672420", mod: "2935") + self.divModTest(lhs: "18446744073709551635", rhs: "-429496736", div: "-42949672320", mod: "4115") + self.divModTest(lhs: "18446744073709551635", rhs: "214748371", div: "85899343440", mod: "15395") + self.divModTest(lhs: "18446744073709551635", rhs: "-214748372", div: "-85899343040", mod: "20755") + self.divModTest(lhs: "-18446744073709551635", rhs: "1", div: "-18446744073709551635", mod: "0") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1", div: "18446744073709551635", mod: "0") + self.divModTest(lhs: "-18446744073709551635", rhs: "2147483647", div: "-8589934596", mod: "-23") + self.divModTest(lhs: "-18446744073709551635", rhs: "-2147483648", div: "8589934592", mod: "-19") + self.divModTest(lhs: "-18446744073709551635", rhs: "1932735283", div: "-9544371769", mod: "-1694126008") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1932735284", div: "9544371764", mod: "-1813430659") + self.divModTest(lhs: "-18446744073709551635", rhs: "1717986919", div: "-10737418236", mod: "-429496751") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1717986920", div: "10737418230", mod: "-35") + self.divModTest(lhs: "-18446744073709551635", rhs: "1503238555", div: "-12271335120", mod: "-35") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1503238556", div: "12271335111", mod: "-1257811919") + self.divModTest(lhs: "-18446744073709551635", rhs: "1288490191", div: "-14316557628", mod: "-1145324687") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1288490192", div: "14316557617", mod: "-1002159171") + self.divModTest(lhs: "-18446744073709551635", rhs: "1073741827", div: "-17179869136", mod: "-163") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1073741828", div: "17179869120", mod: "-275") + self.divModTest(lhs: "-18446744073709551635", rhs: "858993463", div: "-21474836385", mod: "-380") + self.divModTest(lhs: "-18446744073709551635", rhs: "-858993464", div: "21474836360", mod: "-595") + self.divModTest(lhs: "-18446744073709551635", rhs: "644245099", div: "-28633115102", mod: "-143166537") + self.divModTest(lhs: "-18446744073709551635", rhs: "-644245100", div: "28633115057", mod: "-501080935") + self.divModTest(lhs: "-18446744073709551635", rhs: "429496735", div: "-42949672420", mod: "-2935") + self.divModTest(lhs: "-18446744073709551635", rhs: "-429496736", div: "42949672320", mod: "-4115") + self.divModTest(lhs: "-18446744073709551635", rhs: "214748371", div: "-85899343440", mod: "-15395") + self.divModTest(lhs: "-18446744073709551635", rhs: "-214748372", div: "85899343040", mod: "-20755") + } + + func test_divMod_heap_heap() { + self.divModTest(lhs: "0", rhs: "1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551615", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551615", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551617", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551617", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "340282366920938463481821351505477763074", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551623", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551623", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "340282366920938463592501815947735072770", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551629", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551629", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "340282366920938463703182280389992382466", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "18446744073709551635", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-18446744073709551635", div: "0", mod: "0") + self.divModTest(lhs: "1", rhs: "1", div: "1", mod: "0") + self.divModTest(lhs: "1", rhs: "-1", div: "-1", mod: "0") + self.divModTest(lhs: "1", rhs: "18446744073709551615", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551615", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551617", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551617", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "340282366920938463481821351505477763074", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551623", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551623", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "340282366920938463592501815947735072770", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551629", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551629", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "340282366920938463703182280389992382466", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "18446744073709551635", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-18446744073709551635", div: "0", mod: "1") + self.divModTest(lhs: "-1", rhs: "1", div: "-1", mod: "0") + self.divModTest(lhs: "-1", rhs: "-1", div: "1", mod: "0") + self.divModTest(lhs: "-1", rhs: "18446744073709551615", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551615", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551617", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551617", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551623", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551623", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551629", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551629", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "18446744073709551635", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-18446744073709551635", div: "0", mod: "-1") + self.divModTest(lhs: "18446744073709551615", rhs: "1", div: "18446744073709551615", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "-1", div: "-18446744073709551615", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "18446744073709551615", div: "1", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", div: "-1", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "18446744073709551617", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "18446744073709551623", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "18446744073709551629", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "18446744073709551635", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", div: "0", mod: "18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "1", div: "-18446744073709551615", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1", div: "18446744073709551615", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", div: "-1", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", div: "1", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", div: "0", mod: "-18446744073709551615") + self.divModTest(lhs: "18446744073709551617", rhs: "1", div: "18446744073709551617", mod: "0") + self.divModTest(lhs: "18446744073709551617", rhs: "-1", div: "-18446744073709551617", mod: "0") + self.divModTest(lhs: "18446744073709551617", rhs: "18446744073709551615", div: "1", mod: "2") + self.divModTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", div: "-1", mod: "2") + self.divModTest(lhs: "18446744073709551617", rhs: "18446744073709551617", div: "1", mod: "0") + self.divModTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", div: "-1", mod: "0") + self.divModTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "18446744073709551623", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "18446744073709551629", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "18446744073709551635", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", div: "0", mod: "18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "1", div: "-18446744073709551617", mod: "0") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1", div: "18446744073709551617", mod: "0") + self.divModTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", div: "-1", mod: "-2") + self.divModTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", div: "1", mod: "-2") + self.divModTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", div: "-1", mod: "0") + self.divModTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", div: "1", mod: "0") + self.divModTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", div: "0", mod: "-18446744073709551617") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1", div: "340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", div: "-340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", div: "18446744073709551618", mod: "4") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", div: "-18446744073709551618", mod: "4") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", div: "18446744073709551616", mod: "2") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", div: "-18446744073709551616", mod: "2") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", div: "1", mod: "0") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", div: "-1", mod: "0") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", div: "18446744073709551610", mod: "44") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", div: "-18446744073709551610", mod: "44") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", div: "18446744073709551604", mod: "158") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", div: "-18446744073709551604", mod: "158") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "340282366920938463481821351505477763074") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", div: "18446744073709551598", mod: "344") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", div: "-18446744073709551598", mod: "344") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", div: "-340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", div: "340282366920938463481821351505477763074", mod: "0") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", div: "-18446744073709551618", mod: "-4") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", div: "18446744073709551618", mod: "-4") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", div: "-18446744073709551616", mod: "-2") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", div: "18446744073709551616", mod: "-2") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", div: "-1", mod: "0") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", div: "1", mod: "0") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", div: "-18446744073709551610", mod: "-44") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", div: "18446744073709551610", mod: "-44") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", div: "-18446744073709551604", mod: "-158") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", div: "18446744073709551604", mod: "-158") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-340282366920938463481821351505477763074") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", div: "-18446744073709551598", mod: "-344") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", div: "18446744073709551598", mod: "-344") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", div: "6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", div: "-6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", div: "340282366920938463518714839652896866306", mod: "7") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", div: "-340282366920938463518714839652896866306", mod: "7") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", div: "340282366920938463481821351505477763070", mod: "7") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", div: "-340282366920938463481821351505477763070", mod: "7") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", div: "18446744073709551616", mod: "340282366920938463408034375210639556613") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", div: "-18446744073709551616", mod: "340282366920938463408034375210639556613") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "1", mod: "0") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "-1", mod: "0") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", div: "340282366920938463371140887063220453409", mod: "18446744073709551390") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", div: "-340282366920938463371140887063220453409", mod: "18446744073709551390") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", div: "18446744073709551611", mod: "590295810358705651727") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", div: "-18446744073709551611", mod: "590295810358705651727") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", div: "340282366920938463260460422620963143821", mod: "18446744073709549788") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", div: "-340282366920938463260460422620963143821", mod: "18446744073709549788") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", div: "18446744073709551605", mod: "2582544170319337226267") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", div: "-18446744073709551605", mod: "2582544170319337226267") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", div: "340282366920938463149779958178705834305", mod: "18446744073709545522") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", div: "-340282366920938463149779958178705834305", mod: "18446744073709545522") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", div: "-6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", div: "6277101735386680764516354157049543343010657915253861384197", mod: "0") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", div: "-340282366920938463518714839652896866306", mod: "-7") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", div: "340282366920938463518714839652896866306", mod: "-7") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", div: "-340282366920938463481821351505477763070", mod: "-7") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", div: "340282366920938463481821351505477763070", mod: "-7") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", div: "-18446744073709551616", mod: "-340282366920938463408034375210639556613") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", div: "18446744073709551616", mod: "-340282366920938463408034375210639556613") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "-1", mod: "0") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "1", mod: "0") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", div: "-340282366920938463371140887063220453409", mod: "-18446744073709551390") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", div: "340282366920938463371140887063220453409", mod: "-18446744073709551390") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", div: "-18446744073709551611", mod: "-590295810358705651727") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", div: "18446744073709551611", mod: "-590295810358705651727") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", div: "-340282366920938463260460422620963143821", mod: "-18446744073709549788") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", div: "340282366920938463260460422620963143821", mod: "-18446744073709549788") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", div: "-18446744073709551605", mod: "-2582544170319337226267") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", div: "18446744073709551605", mod: "-2582544170319337226267") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6277101735386680764516354157049543343010657915253861384197") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", div: "-340282366920938463149779958178705834305", mod: "-18446744073709545522") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", div: "340282366920938463149779958178705834305", mod: "-18446744073709545522") + self.divModTest(lhs: "18446744073709551623", rhs: "1", div: "18446744073709551623", mod: "0") + self.divModTest(lhs: "18446744073709551623", rhs: "-1", div: "-18446744073709551623", mod: "0") + self.divModTest(lhs: "18446744073709551623", rhs: "18446744073709551615", div: "1", mod: "8") + self.divModTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", div: "-1", mod: "8") + self.divModTest(lhs: "18446744073709551623", rhs: "18446744073709551617", div: "1", mod: "6") + self.divModTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", div: "-1", mod: "6") + self.divModTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "18446744073709551623", div: "1", mod: "0") + self.divModTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", div: "-1", mod: "0") + self.divModTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "18446744073709551629", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "18446744073709551635", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", div: "0", mod: "18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "1", div: "-18446744073709551623", mod: "0") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1", div: "18446744073709551623", mod: "0") + self.divModTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", div: "-1", mod: "-8") + self.divModTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", div: "1", mod: "-8") + self.divModTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", div: "-1", mod: "-6") + self.divModTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", div: "1", mod: "-6") + self.divModTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", div: "-1", mod: "0") + self.divModTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", div: "1", mod: "0") + self.divModTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", div: "0", mod: "-18446744073709551623") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1", div: "340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", div: "-340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", div: "18446744073709551624", mod: "10") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", div: "-18446744073709551624", mod: "10") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", div: "18446744073709551621", mod: "18446744073709551613") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", div: "-18446744073709551621", mod: "18446744073709551613") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", div: "1", mod: "110680464442257309696") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", div: "-1", mod: "110680464442257309696") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", div: "18446744073709551616", mod: "2") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", div: "-18446744073709551616", mod: "2") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", div: "1", mod: "0") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", div: "-1", mod: "0") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", div: "18446744073709551610", mod: "80") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", div: "-18446744073709551610", mod: "80") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "340282366920938463592501815947735072770") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", div: "18446744073709551604", mod: "230") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", div: "-18446744073709551604", mod: "230") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", div: "-340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", div: "340282366920938463592501815947735072770", mod: "0") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", div: "-18446744073709551624", mod: "-10") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", div: "18446744073709551624", mod: "-10") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", div: "-18446744073709551621", mod: "-18446744073709551613") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", div: "18446744073709551621", mod: "-18446744073709551613") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", div: "-1", mod: "-110680464442257309696") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", div: "1", mod: "-110680464442257309696") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", div: "-18446744073709551616", mod: "-2") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", div: "18446744073709551616", mod: "-2") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", div: "-1", mod: "0") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", div: "1", mod: "0") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", div: "-18446744073709551610", mod: "-80") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", div: "18446744073709551610", mod: "-80") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-340282366920938463592501815947735072770") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", div: "-18446744073709551604", mod: "-230") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", div: "18446744073709551604", mod: "-230") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", div: "6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", div: "-6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", div: "340282366920938463629395304095154176002", mod: "13") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", div: "-340282366920938463629395304095154176002", mod: "13") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", div: "340282366920938463592501815947735072754", mod: "25") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", div: "-340282366920938463592501815947735072754", mod: "25") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", div: "18446744073709551622", mod: "340282366920938463186673446326124937215") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", div: "-18446744073709551622", mod: "340282366920938463186673446326124937215") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "1", mod: "2041694201525630780669567180148351959046") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "-1", mod: "2041694201525630780669567180148351959046") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", div: "340282366920938463481821351505477763058", mod: "109") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", div: "-340282366920938463481821351505477763058", mod: "109") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", div: "18446744073709551616", mod: "340282366920938463297353910768382246923") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", div: "-18446744073709551616", mod: "340282366920938463297353910768382246923") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "1", mod: "0") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "-1", mod: "0") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", div: "340282366920938463371140887063220453433", mod: "18446744073709550886") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", div: "-340282366920938463371140887063220453433", mod: "18446744073709550886") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", div: "18446744073709551611", mod: "1033017668127734890517") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", div: "-18446744073709551611", mod: "1033017668127734890517") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6277101735386680766558048358575174123680225095402213343243") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6277101735386680766558048358575174123680225095402213343243") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", div: "340282366920938463260460422620963143881", mod: "18446744073709547808") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", div: "-340282366920938463260460422620963143881", mod: "18446744073709547808") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", div: "-6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", div: "6277101735386680766558048358575174123680225095402213343243", mod: "0") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", div: "-340282366920938463629395304095154176002", mod: "-13") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", div: "340282366920938463629395304095154176002", mod: "-13") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", div: "-340282366920938463592501815947735072754", mod: "-25") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", div: "340282366920938463592501815947735072754", mod: "-25") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", div: "-18446744073709551622", mod: "-340282366920938463186673446326124937215") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", div: "18446744073709551622", mod: "-340282366920938463186673446326124937215") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "-1", mod: "-2041694201525630780669567180148351959046") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "1", mod: "-2041694201525630780669567180148351959046") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", div: "-340282366920938463481821351505477763058", mod: "-109") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", div: "340282366920938463481821351505477763058", mod: "-109") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", div: "-18446744073709551616", mod: "-340282366920938463297353910768382246923") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", div: "18446744073709551616", mod: "-340282366920938463297353910768382246923") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "-1", mod: "0") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "1", mod: "0") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", div: "-340282366920938463371140887063220453433", mod: "-18446744073709550886") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", div: "340282366920938463371140887063220453433", mod: "-18446744073709550886") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", div: "-18446744073709551611", mod: "-1033017668127734890517") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", div: "18446744073709551611", mod: "-1033017668127734890517") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6277101735386680766558048358575174123680225095402213343243") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6277101735386680766558048358575174123680225095402213343243") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", div: "-340282366920938463260460422620963143881", mod: "-18446744073709547808") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", div: "340282366920938463260460422620963143881", mod: "-18446744073709547808") + self.divModTest(lhs: "18446744073709551629", rhs: "1", div: "18446744073709551629", mod: "0") + self.divModTest(lhs: "18446744073709551629", rhs: "-1", div: "-18446744073709551629", mod: "0") + self.divModTest(lhs: "18446744073709551629", rhs: "18446744073709551615", div: "1", mod: "14") + self.divModTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", div: "-1", mod: "14") + self.divModTest(lhs: "18446744073709551629", rhs: "18446744073709551617", div: "1", mod: "12") + self.divModTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", div: "-1", mod: "12") + self.divModTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "18446744073709551623", div: "1", mod: "6") + self.divModTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", div: "-1", mod: "6") + self.divModTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "18446744073709551629", div: "1", mod: "0") + self.divModTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", div: "-1", mod: "0") + self.divModTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "18446744073709551635", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", div: "0", mod: "18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "1", div: "-18446744073709551629", mod: "0") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1", div: "18446744073709551629", mod: "0") + self.divModTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", div: "-1", mod: "-14") + self.divModTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", div: "1", mod: "-14") + self.divModTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", div: "-1", mod: "-12") + self.divModTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", div: "1", mod: "-12") + self.divModTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", div: "-1", mod: "-6") + self.divModTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", div: "1", mod: "-6") + self.divModTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", div: "-1", mod: "0") + self.divModTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", div: "1", mod: "0") + self.divModTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", div: "0", mod: "-18446744073709551629") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1", div: "340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", div: "-340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", div: "18446744073709551630", mod: "16") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", div: "-18446744073709551630", mod: "16") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", div: "18446744073709551627", mod: "18446744073709551607") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", div: "-18446744073709551627", mod: "18446744073709551607") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", div: "1", mod: "221360928884514619392") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", div: "-1", mod: "221360928884514619392") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "340282366920938463703182280389992382466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "340282366920938463703182280389992382466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", div: "18446744073709551621", mod: "18446744073709551583") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", div: "-18446744073709551621", mod: "18446744073709551583") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", div: "1", mod: "110680464442257309696") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", div: "-1", mod: "110680464442257309696") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "340282366920938463703182280389992382466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "340282366920938463703182280389992382466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", div: "18446744073709551616", mod: "2") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", div: "-18446744073709551616", mod: "2") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", div: "1", mod: "0") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", div: "-1", mod: "0") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "340282366920938463703182280389992382466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "340282366920938463703182280389992382466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", div: "18446744073709551610", mod: "116") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", div: "-18446744073709551610", mod: "116") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", div: "-340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", div: "340282366920938463703182280389992382466", mod: "0") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", div: "-18446744073709551630", mod: "-16") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", div: "18446744073709551630", mod: "-16") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", div: "-18446744073709551627", mod: "-18446744073709551607") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", div: "18446744073709551627", mod: "-18446744073709551607") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", div: "-1", mod: "-221360928884514619392") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", div: "1", mod: "-221360928884514619392") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-340282366920938463703182280389992382466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-340282366920938463703182280389992382466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", div: "-18446744073709551621", mod: "-18446744073709551583") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", div: "18446744073709551621", mod: "-18446744073709551583") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", div: "-1", mod: "-110680464442257309696") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", div: "1", mod: "-110680464442257309696") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-340282366920938463703182280389992382466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-340282366920938463703182280389992382466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", div: "-18446744073709551616", mod: "-2") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", div: "18446744073709551616", mod: "-2") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", div: "-1", mod: "0") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", div: "1", mod: "0") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-340282366920938463703182280389992382466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-340282366920938463703182280389992382466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", div: "-18446744073709551610", mod: "-116") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", div: "18446744073709551610", mod: "-116") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", div: "6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", div: "-6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", div: "340282366920938463740075768537411485698", mod: "19") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", div: "-340282366920938463740075768537411485698", mod: "19") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", div: "340282366920938463703182280389992382438", mod: "43") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", div: "-340282366920938463703182280389992382438", mod: "43") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", div: "18446744073709551628", mod: "340282366920938462965312517441610317817") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", div: "-18446744073709551628", mod: "340282366920938462965312517441610317817") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "1", mod: "4083388403051261561339134360296703918092") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "-1", mod: "4083388403051261561339134360296703918092") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", div: "340282366920938463592501815947735072706", mod: "451") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", div: "-340282366920938463592501815947735072706", mod: "451") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", div: "18446744073709551622", mod: "340282366920938462411910195230323769349") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", div: "-18446744073709551622", mod: "340282366920938462411910195230323769349") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "1", mod: "2041694201525630780669567180148351959046") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "-1", mod: "2041694201525630780669567180148351959046") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", div: "340282366920938463481821351505477763046", mod: "355") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", div: "-340282366920938463481821351505477763046", mod: "355") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", div: "18446744073709551616", mod: "340282366920938463186673446326124937233") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", div: "-18446744073709551616", mod: "340282366920938463186673446326124937233") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "1", mod: "0") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "-1", mod: "0") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", div: "340282366920938463371140887063220453457", mod: "18446744073709550094") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", div: "-340282366920938463371140887063220453457", mod: "18446744073709550094") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", div: "-6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", div: "6277101735386680768599742560100804904349792275550565302289", mod: "0") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", div: "-340282366920938463740075768537411485698", mod: "-19") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", div: "340282366920938463740075768537411485698", mod: "-19") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", div: "-340282366920938463703182280389992382438", mod: "-43") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", div: "340282366920938463703182280389992382438", mod: "-43") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", div: "-18446744073709551628", mod: "-340282366920938462965312517441610317817") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", div: "18446744073709551628", mod: "-340282366920938462965312517441610317817") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "-1", mod: "-4083388403051261561339134360296703918092") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "1", mod: "-4083388403051261561339134360296703918092") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", div: "-340282366920938463592501815947735072706", mod: "-451") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", div: "340282366920938463592501815947735072706", mod: "-451") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", div: "-18446744073709551622", mod: "-340282366920938462411910195230323769349") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", div: "18446744073709551622", mod: "-340282366920938462411910195230323769349") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "-1", mod: "-2041694201525630780669567180148351959046") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "1", mod: "-2041694201525630780669567180148351959046") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", div: "-340282366920938463481821351505477763046", mod: "-355") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", div: "340282366920938463481821351505477763046", mod: "-355") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", div: "-18446744073709551616", mod: "-340282366920938463186673446326124937233") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", div: "18446744073709551616", mod: "-340282366920938463186673446326124937233") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "-1", mod: "0") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "1", mod: "0") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", div: "-340282366920938463371140887063220453457", mod: "-18446744073709550094") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", div: "340282366920938463371140887063220453457", mod: "-18446744073709550094") + self.divModTest(lhs: "18446744073709551635", rhs: "1", div: "18446744073709551635", mod: "0") + self.divModTest(lhs: "18446744073709551635", rhs: "-1", div: "-18446744073709551635", mod: "0") + self.divModTest(lhs: "18446744073709551635", rhs: "18446744073709551615", div: "1", mod: "20") + self.divModTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", div: "-1", mod: "20") + self.divModTest(lhs: "18446744073709551635", rhs: "18446744073709551617", div: "1", mod: "18") + self.divModTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", div: "-1", mod: "18") + self.divModTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "18446744073709551623", div: "1", mod: "12") + self.divModTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", div: "-1", mod: "12") + self.divModTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "18446744073709551629", div: "1", mod: "6") + self.divModTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", div: "-1", mod: "6") + self.divModTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "18446744073709551635") + self.divModTest(lhs: "18446744073709551635", rhs: "18446744073709551635", div: "1", mod: "0") + self.divModTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", div: "-1", mod: "0") + self.divModTest(lhs: "-18446744073709551635", rhs: "1", div: "-18446744073709551635", mod: "0") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1", div: "18446744073709551635", mod: "0") + self.divModTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", div: "-1", mod: "-20") + self.divModTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", div: "1", mod: "-20") + self.divModTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", div: "-1", mod: "-18") + self.divModTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", div: "1", mod: "-18") + self.divModTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", div: "-1", mod: "-12") + self.divModTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", div: "1", mod: "-12") + self.divModTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", div: "-1", mod: "-6") + self.divModTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", div: "1", mod: "-6") + self.divModTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-18446744073709551635") + self.divModTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", div: "-1", mod: "0") + self.divModTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", div: "1", mod: "0") + } + + // MARK: - Power + + func test_power_smi() { + self.powerTest(base: "0", exponent: 0, expecting: "1") + self.powerTest(base: "0", exponent: 1, expecting: "0") + self.powerTest(base: "0", exponent: 2, expecting: "0") + self.powerTest(base: "0", exponent: 3, expecting: "0") + self.powerTest(base: "0", exponent: 5, expecting: "0") + self.powerTest(base: "0", exponent: 10, expecting: "0") + self.powerTest(base: "1", exponent: 0, expecting: "1") + self.powerTest(base: "1", exponent: 1, expecting: "1") + self.powerTest(base: "1", exponent: 2, expecting: "1") + self.powerTest(base: "1", exponent: 3, expecting: "1") + self.powerTest(base: "1", exponent: 5, expecting: "1") + self.powerTest(base: "1", exponent: 10, expecting: "1") + self.powerTest(base: "-1", exponent: 0, expecting: "1") + self.powerTest(base: "-1", exponent: 1, expecting: "-1") + self.powerTest(base: "-1", exponent: 2, expecting: "1") + self.powerTest(base: "-1", exponent: 3, expecting: "-1") + self.powerTest(base: "-1", exponent: 5, expecting: "-1") + self.powerTest(base: "-1", exponent: 10, expecting: "1") + self.powerTest(base: "2147483647", exponent: 0, expecting: "1") + self.powerTest(base: "2147483647", exponent: 1, expecting: "2147483647") + self.powerTest(base: "2147483647", exponent: 2, expecting: "4611686014132420609") + self.powerTest(base: "2147483647", exponent: 3, expecting: "9903520300447984150353281023") + self.powerTest(base: "2147483647", exponent: 5, expecting: "45671926060252476630107084286792841360213803007") + self.powerTest(base: "2147483647", exponent: 10, expecting: "2085924830053169311564321191305931199741711560688200050463950578047164169337729650765802242049") + self.powerTest(base: "-2147483648", exponent: 0, expecting: "1") + self.powerTest(base: "-2147483648", exponent: 1, expecting: "-2147483648") + self.powerTest(base: "-2147483648", exponent: 2, expecting: "4611686018427387904") + self.powerTest(base: "-2147483648", exponent: 3, expecting: "-9903520314283042199192993792") + self.powerTest(base: "-2147483648", exponent: 5, expecting: "-45671926166590716193865151022383844364247891968") + self.powerTest(base: "-2147483648", exponent: 10, expecting: "2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913024") + self.powerTest(base: "1932735283", exponent: 0, expecting: "1") + self.powerTest(base: "1932735283", exponent: 1, expecting: "1932735283") + self.powerTest(base: "1932735283", exponent: 2, expecting: "3735465674153090089") + self.powerTest(base: "1932735283", exponent: 3, expecting: "7219666306871058358487910187") + self.powerTest(base: "1932735283", exponent: 5, expecting: "26968815668156448199651566683158529113951836643") + self.powerTest(base: "1932735283", exponent: 10, expecting: "727317018543000731540011603450199279861998549075565713345977297840445084745377368312957509449") + self.powerTest(base: "-1932735284", exponent: 0, expecting: "1") + self.powerTest(base: "-1932735284", exponent: 1, expecting: "-1932735284") + self.powerTest(base: "-1932735284", exponent: 2, expecting: "3735465678018560656") + self.powerTest(base: "-1932735284", exponent: 3, expecting: "-7219666318077455386745386304") + self.powerTest(base: "-1932735284", exponent: 5, expecting: "-26968815737924967285728228894232002186775655424") + self.powerTest(base: "-1932735284", exponent: 10, expecting: "727317022306149397752970834295471705239310390342547461407081866645757928216503155064780619776") + self.powerTest(base: "1717986919", exponent: 0, expecting: "1") + self.powerTest(base: "1717986919", exponent: 1, expecting: "1717986919") + self.powerTest(base: "1717986919", exponent: 2, expecting: "2951479053855112561") + self.powerTest(base: "1717986919", exponent: 3, expecting: "5070602406225579901070589559") + self.powerTest(base: "1717986919", exponent: 5, expecting: "14965776792402131680187975330663606106576350599") + self.powerTest(base: "1717986919", exponent: 10, expecting: "223974475000002237197532044690438648528731610343068702699477535052770868129718495000967658801") + self.powerTest(base: "-1717986920", exponent: 0, expecting: "1") + self.powerTest(base: "-1717986920", exponent: 1, expecting: "-1717986920") + self.powerTest(base: "-1717986920", exponent: 2, expecting: "2951479057291086400") + self.powerTest(base: "-1717986920", exponent: 3, expecting: "-5070602415080017067789888000") + self.powerTest(base: "-1717986920", exponent: 5, expecting: "-14965776835958274757621351588577130454323200000") + self.powerTest(base: "-1717986920", exponent: 10, expecting: "223974476303705269564268017122530399262663049446519051751811643131790503241570058240000000000") + self.powerTest(base: "1503238555", exponent: 0, expecting: "1") + self.powerTest(base: "1503238555", exponent: 1, expecting: "1503238555") + self.powerTest(base: "1503238555", exponent: 2, expecting: "2259726153238488025") + self.powerTest(base: "1503238555", exponent: 3, expecting: "3396907477289933309085803875") + self.powerTest(base: "1503238555", exponent: 5, expecting: "7676080666563437617533632084631830796686096875") + self.powerTest(base: "1503238555", exponent: 10, expecting: "58922214399588988761211493648051319682775215520993602766503468244105262885799453921884765625") + self.powerTest(base: "-1503238556", exponent: 0, expecting: "1") + self.powerTest(base: "-1503238556", exponent: 1, expecting: "-1503238556") + self.powerTest(base: "-1503238556", exponent: 2, expecting: "2259726156244965136") + self.powerTest(base: "-1503238556", exponent: 3, expecting: "-3396907484069111773310983616") + self.powerTest(base: "-1503238556", exponent: 5, expecting: "-7676080692095249089652780198110986367787211776") + self.powerTest(base: "-1503238556", exponent: 10, expecting: "58922214791557478260037638514759038021493998088429378329319335951845021535775417964273074176") + self.powerTest(base: "1288490191", exponent: 0, expecting: "1") + self.powerTest(base: "1288490191", exponent: 1, expecting: "1288490191") + self.powerTest(base: "1288490191", exponent: 2, expecting: "1660206972303216481") + self.powerTest(base: "1288490191", exponent: 3, expecting: "2139160398842503113518037871") + self.powerTest(base: "1288490191", exponent: 5, expecting: "3551449009033253087425934188506719585269351951") + self.powerTest(base: "1288490191", exponent: 10, expecting: "12612790063763275369771154437166173744326258594748342210168006581166345618731871143507506401") + self.powerTest(base: "-1288490192", exponent: 0, expecting: "1") + self.powerTest(base: "-1288490192", exponent: 1, expecting: "-1288490192") + self.powerTest(base: "-1288490192", exponent: 2, expecting: "1660206974880196864") + self.powerTest(base: "-1288490192", exponent: 3, expecting: "-2139160403823124034293157888") + self.powerTest(base: "-1288490192", exponent: 5, expecting: "-3551449022814689063238603271808576941674463232") + self.powerTest(base: "-1288490192", exponent: 10, expecting: "12612790161651409838409385754381734422376906224592824058943266191256492059349967275319885824") + self.powerTest(base: "1073741827", exponent: 0, expecting: "1") + self.powerTest(base: "1073741827", exponent: 1, expecting: "1073741827") + self.powerTest(base: "1073741827", exponent: 2, expecting: "1152921511049297929") + self.powerTest(base: "1073741827", exponent: 3, expecting: "1237940049661673845351776283") + self.powerTest(base: "1073741827", exponent: 5, expecting: "1427247712644379929246627909979632460223217907") + self.powerTest(base: "1073741827", exponent: 10, expecting: "2037036033248614503767168629683433982214050772396744218594812774432527540750748674005460649") + self.powerTest(base: "-1073741828", exponent: 0, expecting: "1") + self.powerTest(base: "-1073741828", exponent: 1, expecting: "-1073741828") + self.powerTest(base: "-1073741828", exponent: 2, expecting: "1152921513196781584") + self.powerTest(base: "-1073741828", exponent: 3, expecting: "-1237940053120438381720895552") + self.powerTest(base: "-1073741828", exponent: 5, expecting: "-1427247719290519994827010451056244648621114368") + self.powerTest(base: "-1073741828", exponent: 10, expecting: "2037036052219990960965886799112658810142425218048382918377479687703032558377587986136039424") + self.powerTest(base: "858993463", exponent: 0, expecting: "1") + self.powerTest(base: "858993463", exponent: 1, expecting: "858993463") + self.powerTest(base: "858993463", exponent: 2, expecting: "737869769476732369") + self.powerTest(base: "858993463", exponent: 3, expecting: "633825308525830035571503847") + self.powerTest(base: "858993463", exponent: 5, expecting: "467680534290472979746082177117858640872923543") + self.powerTest(base: "858993463", exponent: 10, expecting: "218725082154222272644812345967293286889024899506246239684243807860398985965918551923672849") + self.powerTest(base: "-858993464", exponent: 0, expecting: "1") + self.powerTest(base: "-858993464", exponent: 1, expecting: "-858993464") + self.powerTest(base: "-858993464", exponent: 2, expecting: "737869771194719296") + self.powerTest(base: "-858993464", exponent: 3, expecting: "-633825310739439346578681344") + self.powerTest(base: "-858993464", exponent: 5, expecting: "-467680537012731969622566105779753063912013824") + self.powerTest(base: "-858993464", exponent: 10, expecting: "218725084700517357780460910388617379421597521660019214800530770907844155356455039167102976") + self.powerTest(base: "644245099", exponent: 0, expecting: "1") + self.powerTest(base: "644245099", exponent: 1, expecting: "644245099") + self.powerTest(base: "644245099", exponent: 2, expecting: "415051747585519801") + self.powerTest(base: "644245099", exponent: 3, expecting: "267395054213356215161705299") + self.powerTest(base: "644245099", exponent: 5, expecting: "110982784546978306767562214492702222491125499") + self.powerTest(base: "644245099", exponent: 10, expecting: "12317178465801006844525458989519876924910621503021296671622634776284105517521811767999001") + self.powerTest(base: "-644245100", exponent: 0, expecting: "1") + self.powerTest(base: "-644245100", exponent: 1, expecting: "-644245100") + self.powerTest(base: "-644245100", exponent: 2, expecting: "415051748874010000") + self.powerTest(base: "-644245100", exponent: 3, expecting: "-267395055458511459851000000") + self.powerTest(base: "-644245100", exponent: 5, expecting: "-110982785408318075310482970572372510000000000") + self.powerTest(base: "-644245100", exponent: 10, expecting: "12317178656988779494317930163647133259665957947681234029919690203700100000000000000000000") + self.powerTest(base: "429496735", exponent: 0, expecting: "1") + self.powerTest(base: "429496735", exponent: 1, expecting: "429496735") + self.powerTest(base: "429496735", exponent: 2, expecting: "184467445375660225") + self.powerTest(base: "429496735", exponent: 3, expecting: "79228165502636915106865375") + self.powerTest(base: "429496735", exponent: 5, expecting: "14615017292071442971503179307567820817209375") + self.powerTest(base: "429496735", exponent: 10, expecting: "213598730447547293791826761724337779503155098840943602978035844453262572456162587890625") + self.powerTest(base: "-429496736", exponent: 0, expecting: "1") + self.powerTest(base: "-429496736", exponent: 1, expecting: "-429496736") + self.powerTest(base: "-429496736", exponent: 2, expecting: "184467446234653696") + self.powerTest(base: "-429496736", exponent: 3, expecting: "-79228166056039252522336256") + self.powerTest(base: "-429496736", exponent: 5, expecting: "-14615017462212635780895780822965701025202176") + self.powerTest(base: "-429496736", exponent: 10, expecting: "213598735420780272745720899434854060729605339425069061304170834337013877765901675134976") + self.powerTest(base: "214748371", exponent: 0, expecting: "1") + self.powerTest(base: "214748371", exponent: 1, expecting: "214748371") + self.powerTest(base: "214748371", exponent: 2, expecting: "46116862847153641") + self.powerTest(base: "214748371", exponent: 3, expecting: "9903521172056666391468811") + self.powerTest(base: "214748371", exponent: 5, expecting: "456719327595619559783797526046216576590851") + self.powerTest(base: "214748371", exponent: 10, expecting: "208592544199394858339747203197230766745850469925788344895751028021029996641456904201") + self.powerTest(base: "-214748372", exponent: 0, expecting: "1") + self.powerTest(base: "-214748372", exponent: 1, expecting: "-214748372") + self.powerTest(base: "-214748372", exponent: 2, expecting: "46116863276650384") + self.powerTest(base: "-214748372", exponent: 3, expecting: "-9903521310407255577174848") + self.powerTest(base: "-214748372", exponent: 5, expecting: "-456719338229444853134908844073387334341632") + self.powerTest(base: "-214748372", exponent: 10, expecting: "208592553912742046915210524541185262328026618248604748926119849228586479494888423424") + } + + func test_power_heap() { + self.powerTest(base: "0", exponent: 0, expecting: "1") + self.powerTest(base: "0", exponent: 1, expecting: "0") + self.powerTest(base: "0", exponent: 2, expecting: "0") + self.powerTest(base: "0", exponent: 3, expecting: "0") + self.powerTest(base: "0", exponent: 5, expecting: "0") + self.powerTest(base: "0", exponent: 10, expecting: "0") + self.powerTest(base: "1", exponent: 0, expecting: "1") + self.powerTest(base: "1", exponent: 1, expecting: "1") + self.powerTest(base: "1", exponent: 2, expecting: "1") + self.powerTest(base: "1", exponent: 3, expecting: "1") + self.powerTest(base: "1", exponent: 5, expecting: "1") + self.powerTest(base: "1", exponent: 10, expecting: "1") + self.powerTest(base: "-1", exponent: 0, expecting: "1") + self.powerTest(base: "-1", exponent: 1, expecting: "-1") + self.powerTest(base: "-1", exponent: 2, expecting: "1") + self.powerTest(base: "-1", exponent: 3, expecting: "-1") + self.powerTest(base: "-1", exponent: 5, expecting: "-1") + self.powerTest(base: "-1", exponent: 10, expecting: "1") + self.powerTest(base: "18446744073709551615", exponent: 0, expecting: "1") + self.powerTest(base: "18446744073709551615", exponent: 1, expecting: "18446744073709551615") + self.powerTest(base: "18446744073709551615", exponent: 2, expecting: "340282366920938463426481119284349108225") + self.powerTest(base: "18446744073709551615", exponent: 3, expecting: "6277101735386680762814942322444851025767571854389858533375") + self.powerTest(base: "18446744073709551615", exponent: 5, expecting: "2135987035920910081816061259982971137547620614667080038315646755056884185109834672074087649509375") + self.powerTest(base: "18446744073709551615", exponent: 10, expecting: "4562440617622195216167867590969245984891554653899504899621489504890947016946973851858280558761216359448457602639022263584702472373544404781548821642340247967685262840465307909823993678212890625") + self.powerTest(base: "-18446744073709551615", exponent: 0, expecting: "1") + self.powerTest(base: "-18446744073709551615", exponent: 1, expecting: "-18446744073709551615") + self.powerTest(base: "-18446744073709551615", exponent: 2, expecting: "340282366920938463426481119284349108225") + self.powerTest(base: "-18446744073709551615", exponent: 3, expecting: "-6277101735386680762814942322444851025767571854389858533375") + self.powerTest(base: "-18446744073709551615", exponent: 5, expecting: "-2135987035920910081816061259982971137547620614667080038315646755056884185109834672074087649509375") + self.powerTest(base: "-18446744073709551615", exponent: 10, expecting: "4562440617622195216167867590969245984891554653899504899621489504890947016946973851858280558761216359448457602639022263584702472373544404781548821642340247967685262840465307909823993678212890625") + self.powerTest(base: "18446744073709551617", exponent: 0, expecting: "1") + self.powerTest(base: "18446744073709551617", exponent: 1, expecting: "18446744073709551617") + self.powerTest(base: "18446744073709551617", exponent: 2, expecting: "340282366920938463500268095579187314689") + self.powerTest(base: "18446744073709551617", exponent: 3, expecting: "6277101735386680764856636523970481806547819498980467802113") + self.powerTest(base: "18446744073709551617", exponent: 5, expecting: "2135987035920910082973982152356133091783330464753959116855152249051708594773678004301854310137857") + self.powerTest(base: "18446744073709551617", exponent: 10, expecting: "4562440617622195221114475620431336666101605074292448700498557780746129468960072687609346149137804166885846097012967902119918784306843962750546220299215157461423159709740361743657559246344552449") + self.powerTest(base: "-18446744073709551617", exponent: 0, expecting: "1") + self.powerTest(base: "-18446744073709551617", exponent: 1, expecting: "-18446744073709551617") + self.powerTest(base: "-18446744073709551617", exponent: 2, expecting: "340282366920938463500268095579187314689") + self.powerTest(base: "-18446744073709551617", exponent: 3, expecting: "-6277101735386680764856636523970481806547819498980467802113") + self.powerTest(base: "-18446744073709551617", exponent: 5, expecting: "-2135987035920910082973982152356133091783330464753959116855152249051708594773678004301854310137857") + self.powerTest(base: "-18446744073709551617", exponent: 10, expecting: "4562440617622195221114475620431336666101605074292448700498557780746129468960072687609346149137804166885846097012967902119918784306843962750546220299215157461423159709740361743657559246344552449") + self.powerTest(base: "340282366920938463481821351505477763074", exponent: 0, expecting: "1") + self.powerTest(base: "340282366920938463481821351505477763074", exponent: 1, expecting: "340282366920938463481821351505477763074") + self.powerTest(base: "340282366920938463481821351505477763074", exponent: 2, expecting: "115792089237316195436125188479461269382642975346660589189052954910294877929476") + self.powerTest(base: "340282366920938463481821351505477763074", exponent: 3, expecting: "39402006196394479218687001207906344053306933192109948770650148158953898101953755641977967064333848271587421208969224") + self.powerTest(base: "340282366920938463481821351505477763074", exponent: 5, expecting: "4562440617622195219877823613065813995463897270945647822782671699584231633860183384427268451439817225662323844468178369210578518412089910977863799869444558646103937920921232535516973493326446624") + self.powerTest(base: "340282366920938463481821351505477763074", exponent: 10, expecting: "20815864389328798175134783351265136606263362428453524317834117329188934940573371635507059654540334540867692933460555142931620461177306865196690380822232933853517694024520505470288004026515856598088080090730729731168868089700246116222310916754552913460215340674372578375855080933108851882596165710577719163073300016567248378114670912520164889991423523016281764741573232081242662320997376") + self.powerTest(base: "-340282366920938463481821351505477763074", exponent: 0, expecting: "1") + self.powerTest(base: "-340282366920938463481821351505477763074", exponent: 1, expecting: "-340282366920938463481821351505477763074") + self.powerTest(base: "-340282366920938463481821351505477763074", exponent: 2, expecting: "115792089237316195436125188479461269382642975346660589189052954910294877929476") + self.powerTest(base: "-340282366920938463481821351505477763074", exponent: 3, expecting: "-39402006196394479218687001207906344053306933192109948770650148158953898101953755641977967064333848271587421208969224") + self.powerTest(base: "-340282366920938463481821351505477763074", exponent: 5, expecting: "-4562440617622195219877823613065813995463897270945647822782671699584231633860183384427268451439817225662323844468178369210578518412089910977863799869444558646103937920921232535516973493326446624") + self.powerTest(base: "-340282366920938463481821351505477763074", exponent: 10, expecting: "20815864389328798175134783351265136606263362428453524317834117329188934940573371635507059654540334540867692933460555142931620461177306865196690380822232933853517694024520505470288004026515856598088080090730729731168868089700246116222310916754552913460215340674372578375855080933108851882596165710577719163073300016567248378114670912520164889991423523016281764741573232081242662320997376") + self.powerTest(base: "6277101735386680764516354157049543343010657915253861384197", exponent: 0, expecting: "1") + self.powerTest(base: "6277101735386680764516354157049543343010657915253861384197", exponent: 1, expecting: "6277101735386680764516354157049543343010657915253861384197") + self.powerTest(base: "6277101735386680764516354157049543343010657915253861384197", exponent: 2, expecting: "39402006196394479220822988243827254134891410273618287517243916074102028751582077678279011992315553540896416841334809") + self.powerTest(base: "6277101735386680764516354157049543343010657915253861384197", exponent: 3, expecting: "247330401473104534140949368599302772639117047609107378694316587355603965453500012858766393950279930397236981262265646808398776048816775610951852203730230908401992137858613373") + self.powerTest(base: "6277101735386680764516354157049543343010657915253861384197", exponent: 5, expecting: "9745314011399999085636327699231840775401986343906797234311950831252329340020285300160601172013073651491196733324239204169030029952801044517561551200201739575150360491402839695681854606678475539055610237290646390228524019917332682423916893138769799865443279301011515878707710149319177800757") + self.powerTest(base: "6277101735386680764516354157049543343010657915253861384197", exponent: 10, expecting: "94971145180789141508437785624332801912002859315873809236188630884737729646825685859131326744169330827912688563217955903440260628932475046535673553731051225959200655558633458167375677162004346409594614120692512407273961992098942426569007854617208347639023517209390341511345759694806598876178193335708469057306386739742794481751229027343537151191738128537993675593924339247507711682214516861680261237469999534196165688675419730071006027025892071012882432257647358157504139286061348019717729681609489816706937696247080380192156528863503210417256986391024778256332034082075189773049") + self.powerTest(base: "-6277101735386680764516354157049543343010657915253861384197", exponent: 0, expecting: "1") + self.powerTest(base: "-6277101735386680764516354157049543343010657915253861384197", exponent: 1, expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.powerTest(base: "-6277101735386680764516354157049543343010657915253861384197", exponent: 2, expecting: "39402006196394479220822988243827254134891410273618287517243916074102028751582077678279011992315553540896416841334809") + self.powerTest(base: "-6277101735386680764516354157049543343010657915253861384197", exponent: 3, expecting: "-247330401473104534140949368599302772639117047609107378694316587355603965453500012858766393950279930397236981262265646808398776048816775610951852203730230908401992137858613373") + self.powerTest(base: "-6277101735386680764516354157049543343010657915253861384197", exponent: 5, expecting: "-9745314011399999085636327699231840775401986343906797234311950831252329340020285300160601172013073651491196733324239204169030029952801044517561551200201739575150360491402839695681854606678475539055610237290646390228524019917332682423916893138769799865443279301011515878707710149319177800757") + self.powerTest(base: "-6277101735386680764516354157049543343010657915253861384197", exponent: 10, expecting: "94971145180789141508437785624332801912002859315873809236188630884737729646825685859131326744169330827912688563217955903440260628932475046535673553731051225959200655558633458167375677162004346409594614120692512407273961992098942426569007854617208347639023517209390341511345759694806598876178193335708469057306386739742794481751229027343537151191738128537993675593924339247507711682214516861680261237469999534196165688675419730071006027025892071012882432257647358157504139286061348019717729681609489816706937696247080380192156528863503210417256986391024778256332034082075189773049") + self.powerTest(base: "18446744073709551623", exponent: 0, expecting: "1") + self.powerTest(base: "18446744073709551623", exponent: 1, expecting: "18446744073709551623") + self.powerTest(base: "18446744073709551623", exponent: 2, expecting: "340282366920938463721629024463701934129") + self.powerTest(base: "18446744073709551623", exponent: 3, expecting: "6277101735386680770981719128547374151544893579366471041367") + self.powerTest(base: "18446744073709551623", exponent: 5, expecting: "2135987035920910086447744829475618957503468848000203120258196407030214940952638224183146668114343") + self.powerTest(base: "18446744073709551623", exponent: 10, expecting: "4562440617622195235954299708817608738692621464147289867515793968035174307162146424369272973320830896296832361091872226199266163958117002442852144500929892882570783090312990935049302931322321649") + self.powerTest(base: "-18446744073709551623", exponent: 0, expecting: "1") + self.powerTest(base: "-18446744073709551623", exponent: 1, expecting: "-18446744073709551623") + self.powerTest(base: "-18446744073709551623", exponent: 2, expecting: "340282366920938463721629024463701934129") + self.powerTest(base: "-18446744073709551623", exponent: 3, expecting: "-6277101735386680770981719128547374151544893579366471041367") + self.powerTest(base: "-18446744073709551623", exponent: 5, expecting: "-2135987035920910086447744829475618957503468848000203120258196407030214940952638224183146668114343") + self.powerTest(base: "-18446744073709551623", exponent: 10, expecting: "4562440617622195235954299708817608738692621464147289867515793968035174307162146424369272973320830896296832361091872226199266163958117002442852144500929892882570783090312990935049302931322321649") + self.powerTest(base: "340282366920938463592501815947735072770", exponent: 0, expecting: "1") + self.powerTest(base: "340282366920938463592501815947735072770", exponent: 1, expecting: "340282366920938463592501815947735072770") + self.powerTest(base: "340282366920938463592501815947735072770", exponent: 2, expecting: "115792089237316195511450409304101438565006002037357632428965923258357195472900") + self.powerTest(base: "340282366920938463592501815947735072770", exponent: 3, expecting: "39402006196394479257134767854482725553091384753335418977091771521074792528197400517511367523812425475661996062933000") + self.powerTest(base: "340282366920938463592501815947735072770", exponent: 5, expecting: "4562440617622195227297735657258950023714720707907510134292373902681314192468997650170980472422777842006931604825277937047503538490984108286581947883478101003961685863890510519971291096015700000") + self.powerTest(base: "340282366920938463592501815947735072770", exponent: 10, expecting: "20815864389328798242840599530486929888735409694313525660214321435772303953962247270734665297502270175722593566674682822516754890655887049816746366962161605536257303146811240151703237391488771597993461949535594139375293836070220775062025880332427545475388674050252736505547093519505442904217854714451286943093402731891976884754061833557699559465887870067646071495979756414646490000000000") + self.powerTest(base: "-340282366920938463592501815947735072770", exponent: 0, expecting: "1") + self.powerTest(base: "-340282366920938463592501815947735072770", exponent: 1, expecting: "-340282366920938463592501815947735072770") + self.powerTest(base: "-340282366920938463592501815947735072770", exponent: 2, expecting: "115792089237316195511450409304101438565006002037357632428965923258357195472900") + self.powerTest(base: "-340282366920938463592501815947735072770", exponent: 3, expecting: "-39402006196394479257134767854482725553091384753335418977091771521074792528197400517511367523812425475661996062933000") + self.powerTest(base: "-340282366920938463592501815947735072770", exponent: 5, expecting: "-4562440617622195227297735657258950023714720707907510134292373902681314192468997650170980472422777842006931604825277937047503538490984108286581947883478101003961685863890510519971291096015700000") + self.powerTest(base: "-340282366920938463592501815947735072770", exponent: 10, expecting: "20815864389328798242840599530486929888735409694313525660214321435772303953962247270734665297502270175722593566674682822516754890655887049816746366962161605536257303146811240151703237391488771597993461949535594139375293836070220775062025880332427545475388674050252736505547093519505442904217854714451286943093402731891976884754061833557699559465887870067646071495979756414646490000000000") + self.powerTest(base: "6277101735386680766558048358575174123680225095402213343243", exponent: 0, expecting: "1") + self.powerTest(base: "6277101735386680766558048358575174123680225095402213343243", exponent: 1, expecting: "6277101735386680766558048358575174123680225095402213343243") + self.powerTest(base: "6277101735386680766558048358575174123680225095402213343243", exponent: 2, expecting: "39402006196394479246454832674878175129189691031044090272205175856201760214644718054320331246175250139652711333757049") + self.powerTest(base: "6277101735386680766558048358575174123680225095402213343243", exponent: 3, expecting: "247330401473104534382289911338269520549197370912700925265737226231009887700307358551069052531609620923016476406588787466376825039091351354826785603007012031444675282207769907") + self.powerTest(base: "6277101735386680766558048358575174123680225095402213343243", exponent: 5, expecting: "9745314011399999101485163633301798182296355124933023322590624642810461595582485088817414048111508443343060695802891220570862187762252768214365156239691046708432571277267698864930456319868817404813251212191734752553229731351852443109645376725231692685348102569537395676911729675366031324443") + self.powerTest(base: "6277101735386680766558048358575174123680225095402213343243", exponent: 10, expecting: "94971145180789141817341551409676298270406613126765449269766752339120622259593838615765358014366113640276950341474525967054865240835902581740676589787237799144010330827804057961989755153422110990750828661443724864476668909683567381645128726196905034942498926804798767883372786946190062289542066778326971975558221336545397693056366946638587876945225410951597521407438732207003891294591657985810859514138500190166833074868736224055681975537305940599263992801925902150020075256230866538554205419795852660469492982831921877060068175078928784932590491149491483018450822523496729260249") + self.powerTest(base: "-6277101735386680766558048358575174123680225095402213343243", exponent: 0, expecting: "1") + self.powerTest(base: "-6277101735386680766558048358575174123680225095402213343243", exponent: 1, expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.powerTest(base: "-6277101735386680766558048358575174123680225095402213343243", exponent: 2, expecting: "39402006196394479246454832674878175129189691031044090272205175856201760214644718054320331246175250139652711333757049") + self.powerTest(base: "-6277101735386680766558048358575174123680225095402213343243", exponent: 3, expecting: "-247330401473104534382289911338269520549197370912700925265737226231009887700307358551069052531609620923016476406588787466376825039091351354826785603007012031444675282207769907") + self.powerTest(base: "-6277101735386680766558048358575174123680225095402213343243", exponent: 5, expecting: "-9745314011399999101485163633301798182296355124933023322590624642810461595582485088817414048111508443343060695802891220570862187762252768214365156239691046708432571277267698864930456319868817404813251212191734752553229731351852443109645376725231692685348102569537395676911729675366031324443") + self.powerTest(base: "-6277101735386680766558048358575174123680225095402213343243", exponent: 10, expecting: "94971145180789141817341551409676298270406613126765449269766752339120622259593838615765358014366113640276950341474525967054865240835902581740676589787237799144010330827804057961989755153422110990750828661443724864476668909683567381645128726196905034942498926804798767883372786946190062289542066778326971975558221336545397693056366946638587876945225410951597521407438732207003891294591657985810859514138500190166833074868736224055681975537305940599263992801925902150020075256230866538554205419795852660469492982831921877060068175078928784932590491149491483018450822523496729260249") + self.powerTest(base: "18446744073709551629", exponent: 0, expecting: "1") + self.powerTest(base: "18446744073709551629", exponent: 1, expecting: "18446744073709551629") + self.powerTest(base: "18446744073709551629", exponent: 2, expecting: "340282366920938463942989953348216553641") + self.powerTest(base: "18446744073709551629", exponent: 3, expecting: "6277101735386680777106801733124266500526464379673737431189") + self.powerTest(base: "18446744073709551629", exponent: 5, expecting: "2135987035920910089921507506595104827743120480724857278768078337562830676482991624403573964909149") + self.powerTest(base: "18446744073709551629", exponent: 10, expecting: "4562440617622195250794123797203880854724935547016145769030489285706075016266927240577990713802969447172673482591312972702243083414032719598419919684759212226062286103497721088443028419823904201") + self.powerTest(base: "-18446744073709551629", exponent: 0, expecting: "1") + self.powerTest(base: "-18446744073709551629", exponent: 1, expecting: "-18446744073709551629") + self.powerTest(base: "-18446744073709551629", exponent: 2, expecting: "340282366920938463942989953348216553641") + self.powerTest(base: "-18446744073709551629", exponent: 3, expecting: "-6277101735386680777106801733124266500526464379673737431189") + self.powerTest(base: "-18446744073709551629", exponent: 5, expecting: "-2135987035920910089921507506595104827743120480724857278768078337562830676482991624403573964909149") + self.powerTest(base: "-18446744073709551629", exponent: 10, expecting: "4562440617622195250794123797203880854724935547016145769030489285706075016266927240577990713802969447172673482591312972702243083414032719598419919684759212226062286103497721088443028419823904201") + self.powerTest(base: "340282366920938463703182280389992382466", exponent: 0, expecting: "1") + self.powerTest(base: "340282366920938463703182280389992382466", exponent: 1, expecting: "340282366920938463703182280389992382466") + self.powerTest(base: "340282366920938463703182280389992382466", exponent: 2, expecting: "115792089237316195586775630128741607771869359146362245038241863341506824241156") + self.powerTest(base: "340282366920938463703182280389992382466", exponent: 3, expecting: "39402006196394479295582534501059107077886927589821187404515705468976936365814077671222966853176780087885950969970696") + self.powerTest(base: "340282366920938463703182280389992382466", exponent: 5, expecting: "4562440617622195234717647701452086061619165854428042368485175615836182152819906284907932566260020086775409828407795125355015493194111849237885348855125317897887420195928039295284156143757164576") + self.powerTest(base: "340282366920938463703182280389992382466", exponent: 10, expecting: "20815864389328798310546415709708723369405798036998032693663282732427366657324132747756807537932206005870466833247454177914183522694302800685177414541954712756309579728735772743810264867835203566947339749573621970764452871033779405745320793087570066304149939441927481757918666484061274676960294372534292089529445745223237213029003716165589831292808545087404682654970220638078931149259776") + self.powerTest(base: "-340282366920938463703182280389992382466", exponent: 0, expecting: "1") + self.powerTest(base: "-340282366920938463703182280389992382466", exponent: 1, expecting: "-340282366920938463703182280389992382466") + self.powerTest(base: "-340282366920938463703182280389992382466", exponent: 2, expecting: "115792089237316195586775630128741607771869359146362245038241863341506824241156") + self.powerTest(base: "-340282366920938463703182280389992382466", exponent: 3, expecting: "-39402006196394479295582534501059107077886927589821187404515705468976936365814077671222966853176780087885950969970696") + self.powerTest(base: "-340282366920938463703182280389992382466", exponent: 5, expecting: "-4562440617622195234717647701452086061619165854428042368485175615836182152819906284907932566260020086775409828407795125355015493194111849237885348855125317897887420195928039295284156143757164576") + self.powerTest(base: "-340282366920938463703182280389992382466", exponent: 10, expecting: "20815864389328798310546415709708723369405798036998032693663282732427366657324132747756807537932206005870466833247454177914183522694302800685177414541954712756309579728735772743810264867835203566947339749573621970764452871033779405745320793087570066304149939441927481757918666484061274676960294372534292089529445745223237213029003716165589831292808545087404682654970220638078931149259776") + self.powerTest(base: "6277101735386680768599742560100804904349792275550565302289", exponent: 0, expecting: "1") + self.powerTest(base: "6277101735386680768599742560100804904349792275550565302289", exponent: 1, expecting: "6277101735386680768599742560100804904349792275550565302289") + self.powerTest(base: "6277101735386680768599742560100804904349792275550565302289", exponent: 2, expecting: "39402006196394479272086677105929096131825002213556659096759643909031339013223944640600789855062586187034577948639521") + self.powerTest(base: "6277101735386680768599742560100804904349792275550565302289", exponent: 3, expecting: "247330401473104534623630454077236268616274858664145560246876807640752034417387410126440204070353564085622045545844637387401131737149127135377981630409243506288526395657163569") + self.powerTest(base: "6277101735386680768599742560100804904349792275550565302289", exponent: 5, expecting: "9745314011399999117333999567371755609810734727261221502642709468657707105950106423043703064398359444101744728099617970949884540058110456769099521244925006860643881495745841709075602590806660915230641661732479334843869863140388388244241020249927361809777710224559877109826919793441314810449") + self.powerTest(base: "6277101735386680768599742560100804904349792275550565302289", exponent: 10, expecting: "94971145180789142126245317195019795533078528611898791903959804017761604155146599256169068349550466834278091733260590625512507973206647003849758244042666953084959908741439875161537154957837574490565366205241200451696911028687625779459972142965250407465193405452538338050611540610460174920907324146870392641941223478984013631925849216526647895085986093799999797707376427173593899992102045894251673214466591102737161273878578135783007927419480747104062456921497765360601428988005269193448564139461989403408263887478010962508294805197655636997016000403164976485401396035636799581601") + self.powerTest(base: "-6277101735386680768599742560100804904349792275550565302289", exponent: 0, expecting: "1") + self.powerTest(base: "-6277101735386680768599742560100804904349792275550565302289", exponent: 1, expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.powerTest(base: "-6277101735386680768599742560100804904349792275550565302289", exponent: 2, expecting: "39402006196394479272086677105929096131825002213556659096759643909031339013223944640600789855062586187034577948639521") + self.powerTest(base: "-6277101735386680768599742560100804904349792275550565302289", exponent: 3, expecting: "-247330401473104534623630454077236268616274858664145560246876807640752034417387410126440204070353564085622045545844637387401131737149127135377981630409243506288526395657163569") + self.powerTest(base: "-6277101735386680768599742560100804904349792275550565302289", exponent: 5, expecting: "-9745314011399999117333999567371755609810734727261221502642709468657707105950106423043703064398359444101744728099617970949884540058110456769099521244925006860643881495745841709075602590806660915230641661732479334843869863140388388244241020249927361809777710224559877109826919793441314810449") + self.powerTest(base: "-6277101735386680768599742560100804904349792275550565302289", exponent: 10, expecting: "94971145180789142126245317195019795533078528611898791903959804017761604155146599256169068349550466834278091733260590625512507973206647003849758244042666953084959908741439875161537154957837574490565366205241200451696911028687625779459972142965250407465193405452538338050611540610460174920907324146870392641941223478984013631925849216526647895085986093799999797707376427173593899992102045894251673214466591102737161273878578135783007927419480747104062456921497765360601428988005269193448564139461989403408263887478010962508294805197655636997016000403164976485401396035636799581601") + self.powerTest(base: "18446744073709551635", exponent: 0, expecting: "1") + self.powerTest(base: "18446744073709551635", exponent: 1, expecting: "18446744073709551635") + self.powerTest(base: "18446744073709551635", exponent: 2, expecting: "340282366920938464164350882232731173225") + self.powerTest(base: "18446744073709551635", exponent: 3, expecting: "6277101735386680783231884337701158853492531899902266972875") + self.powerTest(base: "18446744073709551635", exponent: 5, expecting: "2135987035920910093395270183714590702502285362927921596794857515944918292631469181184368001271875") + self.powerTest(base: "18446744073709551635", exponent: 10, expecting: "4562440617622195265633947885590153014198547322899016518080602136211615643451253995406823810197009438483745860778557362473231721402499629630710397167455228289454087840507289061736101617666015625") + self.powerTest(base: "-18446744073709551635", exponent: 0, expecting: "1") + self.powerTest(base: "-18446744073709551635", exponent: 1, expecting: "-18446744073709551635") + self.powerTest(base: "-18446744073709551635", exponent: 2, expecting: "340282366920938464164350882232731173225") + self.powerTest(base: "-18446744073709551635", exponent: 3, expecting: "-6277101735386680783231884337701158853492531899902266972875") + self.powerTest(base: "-18446744073709551635", exponent: 5, expecting: "-2135987035920910093395270183714590702502285362927921596794857515944918292631469181184368001271875") + self.powerTest(base: "-18446744073709551635", exponent: 10, expecting: "4562440617622195265633947885590153014198547322899016518080602136211615643451253995406823810197009438483745860778557362473231721402499629630710397167455228289454087840507289061736101617666015625") + } + + // MARK: - And + + func test_and_smi_smi() { + self.andTest(lhs: "0", rhs: "0", expecting: "0") + self.andTest(lhs: "0", rhs: "1", expecting: "0") + self.andTest(lhs: "0", rhs: "-1", expecting: "0") + self.andTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.andTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.andTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.andTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.andTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.andTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.andTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.andTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.andTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.andTest(lhs: "0", rhs: "858993463", expecting: "0") + self.andTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.andTest(lhs: "0", rhs: "644245099", expecting: "0") + self.andTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.andTest(lhs: "0", rhs: "429496735", expecting: "0") + self.andTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.andTest(lhs: "0", rhs: "214748371", expecting: "0") + self.andTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.andTest(lhs: "1", rhs: "0", expecting: "0") + self.andTest(lhs: "1", rhs: "1", expecting: "1") + self.andTest(lhs: "1", rhs: "-1", expecting: "1") + self.andTest(lhs: "1", rhs: "2147483647", expecting: "1") + self.andTest(lhs: "1", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "1", rhs: "1932735283", expecting: "1") + self.andTest(lhs: "1", rhs: "-1932735284", expecting: "0") + self.andTest(lhs: "1", rhs: "1717986919", expecting: "1") + self.andTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "1", rhs: "1503238555", expecting: "1") + self.andTest(lhs: "1", rhs: "-1503238556", expecting: "0") + self.andTest(lhs: "1", rhs: "1288490191", expecting: "1") + self.andTest(lhs: "1", rhs: "-1288490192", expecting: "0") + self.andTest(lhs: "1", rhs: "1073741827", expecting: "1") + self.andTest(lhs: "1", rhs: "-1073741828", expecting: "0") + self.andTest(lhs: "1", rhs: "858993463", expecting: "1") + self.andTest(lhs: "1", rhs: "-858993464", expecting: "0") + self.andTest(lhs: "1", rhs: "644245099", expecting: "1") + self.andTest(lhs: "1", rhs: "-644245100", expecting: "0") + self.andTest(lhs: "1", rhs: "429496735", expecting: "1") + self.andTest(lhs: "1", rhs: "-429496736", expecting: "0") + self.andTest(lhs: "1", rhs: "214748371", expecting: "1") + self.andTest(lhs: "1", rhs: "-214748372", expecting: "0") + self.andTest(lhs: "-1", rhs: "0", expecting: "0") + self.andTest(lhs: "-1", rhs: "1", expecting: "1") + self.andTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.andTest(lhs: "-1", rhs: "2147483647", expecting: "2147483647") + self.andTest(lhs: "-1", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-1", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "-1", rhs: "-1932735284", expecting: "-1932735284") + self.andTest(lhs: "-1", rhs: "1717986919", expecting: "1717986919") + self.andTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986920") + self.andTest(lhs: "-1", rhs: "1503238555", expecting: "1503238555") + self.andTest(lhs: "-1", rhs: "-1503238556", expecting: "-1503238556") + self.andTest(lhs: "-1", rhs: "1288490191", expecting: "1288490191") + self.andTest(lhs: "-1", rhs: "-1288490192", expecting: "-1288490192") + self.andTest(lhs: "-1", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "-1", rhs: "-1073741828", expecting: "-1073741828") + self.andTest(lhs: "-1", rhs: "858993463", expecting: "858993463") + self.andTest(lhs: "-1", rhs: "-858993464", expecting: "-858993464") + self.andTest(lhs: "-1", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "-1", rhs: "-644245100", expecting: "-644245100") + self.andTest(lhs: "-1", rhs: "429496735", expecting: "429496735") + self.andTest(lhs: "-1", rhs: "-429496736", expecting: "-429496736") + self.andTest(lhs: "-1", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "-1", rhs: "-214748372", expecting: "-214748372") + self.andTest(lhs: "2147483647", rhs: "0", expecting: "0") + self.andTest(lhs: "2147483647", rhs: "1", expecting: "1") + self.andTest(lhs: "2147483647", rhs: "-1", expecting: "2147483647") + self.andTest(lhs: "2147483647", rhs: "2147483647", expecting: "2147483647") + self.andTest(lhs: "2147483647", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "2147483647", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "2147483647", rhs: "-1932735284", expecting: "214748364") + self.andTest(lhs: "2147483647", rhs: "1717986919", expecting: "1717986919") + self.andTest(lhs: "2147483647", rhs: "-1717986920", expecting: "429496728") + self.andTest(lhs: "2147483647", rhs: "1503238555", expecting: "1503238555") + self.andTest(lhs: "2147483647", rhs: "-1503238556", expecting: "644245092") + self.andTest(lhs: "2147483647", rhs: "1288490191", expecting: "1288490191") + self.andTest(lhs: "2147483647", rhs: "-1288490192", expecting: "858993456") + self.andTest(lhs: "2147483647", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "2147483647", rhs: "-1073741828", expecting: "1073741820") + self.andTest(lhs: "2147483647", rhs: "858993463", expecting: "858993463") + self.andTest(lhs: "2147483647", rhs: "-858993464", expecting: "1288490184") + self.andTest(lhs: "2147483647", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "2147483647", rhs: "-644245100", expecting: "1503238548") + self.andTest(lhs: "2147483647", rhs: "429496735", expecting: "429496735") + self.andTest(lhs: "2147483647", rhs: "-429496736", expecting: "1717986912") + self.andTest(lhs: "2147483647", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "2147483647", rhs: "-214748372", expecting: "1932735276") + self.andTest(lhs: "-2147483648", rhs: "0", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "1", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-1", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "2147483647", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "1932735283", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "1717986919", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "1503238555", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "1288490191", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "858993463", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-858993464", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "644245099", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-644245100", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "429496735", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-429496736", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "214748371", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-214748372", expecting: "-2147483648") + self.andTest(lhs: "1932735283", rhs: "0", expecting: "0") + self.andTest(lhs: "1932735283", rhs: "1", expecting: "1") + self.andTest(lhs: "1932735283", rhs: "-1", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "2147483647", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "1932735283", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "-1932735284", expecting: "0") + self.andTest(lhs: "1932735283", rhs: "1717986919", expecting: "1646404131") + self.andTest(lhs: "1932735283", rhs: "-1717986920", expecting: "286331152") + self.andTest(lhs: "1932735283", rhs: "1503238555", expecting: "1360072979") + self.andTest(lhs: "1932735283", rhs: "-1503238556", expecting: "572662304") + self.andTest(lhs: "1932735283", rhs: "1288490191", expecting: "1073741827") + self.andTest(lhs: "1932735283", rhs: "-1288490192", expecting: "858993456") + self.andTest(lhs: "1932735283", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "1932735283", rhs: "-1073741828", expecting: "858993456") + self.andTest(lhs: "1932735283", rhs: "858993463", expecting: "858993459") + self.andTest(lhs: "1932735283", rhs: "-858993464", expecting: "1073741824") + self.andTest(lhs: "1932735283", rhs: "644245099", expecting: "572662307") + self.andTest(lhs: "1932735283", rhs: "-644245100", expecting: "1360072976") + self.andTest(lhs: "1932735283", rhs: "429496735", expecting: "286331155") + self.andTest(lhs: "1932735283", rhs: "-429496736", expecting: "1646404128") + self.andTest(lhs: "1932735283", rhs: "214748371", expecting: "19") + self.andTest(lhs: "1932735283", rhs: "-214748372", expecting: "1932735264") + self.andTest(lhs: "-1932735284", rhs: "0", expecting: "0") + self.andTest(lhs: "-1932735284", rhs: "1", expecting: "0") + self.andTest(lhs: "-1932735284", rhs: "-1", expecting: "-1932735284") + self.andTest(lhs: "-1932735284", rhs: "2147483647", expecting: "214748364") + self.andTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-1932735284", rhs: "1932735283", expecting: "0") + self.andTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "-1932735284") + self.andTest(lhs: "-1932735284", rhs: "1717986919", expecting: "71582788") + self.andTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "-2004318072") + self.andTest(lhs: "-1932735284", rhs: "1503238555", expecting: "143165576") + self.andTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "-2075900860") + self.andTest(lhs: "-1932735284", rhs: "1288490191", expecting: "214748364") + self.andTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "-2147483648") + self.andTest(lhs: "-1932735284", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "-1932735284") + self.andTest(lhs: "-1932735284", rhs: "858993463", expecting: "4") + self.andTest(lhs: "-1932735284", rhs: "-858993464", expecting: "-1932735288") + self.andTest(lhs: "-1932735284", rhs: "644245099", expecting: "71582792") + self.andTest(lhs: "-1932735284", rhs: "-644245100", expecting: "-2004318076") + self.andTest(lhs: "-1932735284", rhs: "429496735", expecting: "143165580") + self.andTest(lhs: "-1932735284", rhs: "-429496736", expecting: "-2075900864") + self.andTest(lhs: "-1932735284", rhs: "214748371", expecting: "214748352") + self.andTest(lhs: "-1932735284", rhs: "-214748372", expecting: "-2147483636") + self.andTest(lhs: "1717986919", rhs: "0", expecting: "0") + self.andTest(lhs: "1717986919", rhs: "1", expecting: "1") + self.andTest(lhs: "1717986919", rhs: "-1", expecting: "1717986919") + self.andTest(lhs: "1717986919", rhs: "2147483647", expecting: "1717986919") + self.andTest(lhs: "1717986919", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "1717986919", rhs: "1932735283", expecting: "1646404131") + self.andTest(lhs: "1717986919", rhs: "-1932735284", expecting: "71582788") + self.andTest(lhs: "1717986919", rhs: "1717986919", expecting: "1717986919") + self.andTest(lhs: "1717986919", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "1717986919", rhs: "1503238555", expecting: "1073741827") + self.andTest(lhs: "1717986919", rhs: "-1503238556", expecting: "644245092") + self.andTest(lhs: "1717986919", rhs: "1288490191", expecting: "1145324615") + self.andTest(lhs: "1717986919", rhs: "-1288490192", expecting: "572662304") + self.andTest(lhs: "1717986919", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "1717986919", rhs: "-1073741828", expecting: "644245092") + self.andTest(lhs: "1717986919", rhs: "858993463", expecting: "572662311") + self.andTest(lhs: "1717986919", rhs: "-858993464", expecting: "1145324608") + self.andTest(lhs: "1717986919", rhs: "644245099", expecting: "644245091") + self.andTest(lhs: "1717986919", rhs: "-644245100", expecting: "1073741828") + self.andTest(lhs: "1717986919", rhs: "429496735", expecting: "7") + self.andTest(lhs: "1717986919", rhs: "-429496736", expecting: "1717986912") + self.andTest(lhs: "1717986919", rhs: "214748371", expecting: "71582787") + self.andTest(lhs: "1717986919", rhs: "-214748372", expecting: "1646404132") + self.andTest(lhs: "-1717986920", rhs: "0", expecting: "0") + self.andTest(lhs: "-1717986920", rhs: "1", expecting: "0") + self.andTest(lhs: "-1717986920", rhs: "-1", expecting: "-1717986920") + self.andTest(lhs: "-1717986920", rhs: "2147483647", expecting: "429496728") + self.andTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-1717986920", rhs: "1932735283", expecting: "286331152") + self.andTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "-2004318072") + self.andTest(lhs: "-1717986920", rhs: "1717986919", expecting: "0") + self.andTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "-1717986920") + self.andTest(lhs: "-1717986920", rhs: "1503238555", expecting: "429496728") + self.andTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "-2147483648") + self.andTest(lhs: "-1717986920", rhs: "1288490191", expecting: "143165576") + self.andTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "-1861152496") + self.andTest(lhs: "-1717986920", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "-1717986920") + self.andTest(lhs: "-1717986920", rhs: "858993463", expecting: "286331152") + self.andTest(lhs: "-1717986920", rhs: "-858993464", expecting: "-2004318072") + self.andTest(lhs: "-1717986920", rhs: "644245099", expecting: "8") + self.andTest(lhs: "-1717986920", rhs: "-644245100", expecting: "-1717986928") + self.andTest(lhs: "-1717986920", rhs: "429496735", expecting: "429496728") + self.andTest(lhs: "-1717986920", rhs: "-429496736", expecting: "-2147483648") + self.andTest(lhs: "-1717986920", rhs: "214748371", expecting: "143165584") + self.andTest(lhs: "-1717986920", rhs: "-214748372", expecting: "-1861152504") + self.andTest(lhs: "1503238555", rhs: "0", expecting: "0") + self.andTest(lhs: "1503238555", rhs: "1", expecting: "1") + self.andTest(lhs: "1503238555", rhs: "-1", expecting: "1503238555") + self.andTest(lhs: "1503238555", rhs: "2147483647", expecting: "1503238555") + self.andTest(lhs: "1503238555", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "1503238555", rhs: "1932735283", expecting: "1360072979") + self.andTest(lhs: "1503238555", rhs: "-1932735284", expecting: "143165576") + self.andTest(lhs: "1503238555", rhs: "1717986919", expecting: "1073741827") + self.andTest(lhs: "1503238555", rhs: "-1717986920", expecting: "429496728") + self.andTest(lhs: "1503238555", rhs: "1503238555", expecting: "1503238555") + self.andTest(lhs: "1503238555", rhs: "-1503238556", expecting: "0") + self.andTest(lhs: "1503238555", rhs: "1288490191", expecting: "1216907403") + self.andTest(lhs: "1503238555", rhs: "-1288490192", expecting: "286331152") + self.andTest(lhs: "1503238555", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "1503238555", rhs: "-1073741828", expecting: "429496728") + self.andTest(lhs: "1503238555", rhs: "858993463", expecting: "286331155") + self.andTest(lhs: "1503238555", rhs: "-858993464", expecting: "1216907400") + self.andTest(lhs: "1503238555", rhs: "644245099", expecting: "11") + self.andTest(lhs: "1503238555", rhs: "-644245100", expecting: "1503238544") + self.andTest(lhs: "1503238555", rhs: "429496735", expecting: "429496731") + self.andTest(lhs: "1503238555", rhs: "-429496736", expecting: "1073741824") + self.andTest(lhs: "1503238555", rhs: "214748371", expecting: "143165587") + self.andTest(lhs: "1503238555", rhs: "-214748372", expecting: "1360072968") + self.andTest(lhs: "-1503238556", rhs: "0", expecting: "0") + self.andTest(lhs: "-1503238556", rhs: "1", expecting: "0") + self.andTest(lhs: "-1503238556", rhs: "-1", expecting: "-1503238556") + self.andTest(lhs: "-1503238556", rhs: "2147483647", expecting: "644245092") + self.andTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-1503238556", rhs: "1932735283", expecting: "572662304") + self.andTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "-2075900860") + self.andTest(lhs: "-1503238556", rhs: "1717986919", expecting: "644245092") + self.andTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "-2147483648") + self.andTest(lhs: "-1503238556", rhs: "1503238555", expecting: "0") + self.andTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "-1503238556") + self.andTest(lhs: "-1503238556", rhs: "1288490191", expecting: "71582788") + self.andTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "-1574821344") + self.andTest(lhs: "-1503238556", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "-1503238556") + self.andTest(lhs: "-1503238556", rhs: "858993463", expecting: "572662308") + self.andTest(lhs: "-1503238556", rhs: "-858993464", expecting: "-2075900864") + self.andTest(lhs: "-1503238556", rhs: "644245099", expecting: "644245088") + self.andTest(lhs: "-1503238556", rhs: "-644245100", expecting: "-2147483644") + self.andTest(lhs: "-1503238556", rhs: "429496735", expecting: "4") + self.andTest(lhs: "-1503238556", rhs: "-429496736", expecting: "-1503238560") + self.andTest(lhs: "-1503238556", rhs: "214748371", expecting: "71582784") + self.andTest(lhs: "-1503238556", rhs: "-214748372", expecting: "-1574821340") + self.andTest(lhs: "1288490191", rhs: "0", expecting: "0") + self.andTest(lhs: "1288490191", rhs: "1", expecting: "1") + self.andTest(lhs: "1288490191", rhs: "-1", expecting: "1288490191") + self.andTest(lhs: "1288490191", rhs: "2147483647", expecting: "1288490191") + self.andTest(lhs: "1288490191", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "1288490191", rhs: "1932735283", expecting: "1073741827") + self.andTest(lhs: "1288490191", rhs: "-1932735284", expecting: "214748364") + self.andTest(lhs: "1288490191", rhs: "1717986919", expecting: "1145324615") + self.andTest(lhs: "1288490191", rhs: "-1717986920", expecting: "143165576") + self.andTest(lhs: "1288490191", rhs: "1503238555", expecting: "1216907403") + self.andTest(lhs: "1288490191", rhs: "-1503238556", expecting: "71582788") + self.andTest(lhs: "1288490191", rhs: "1288490191", expecting: "1288490191") + self.andTest(lhs: "1288490191", rhs: "-1288490192", expecting: "0") + self.andTest(lhs: "1288490191", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "1288490191", rhs: "-1073741828", expecting: "214748364") + self.andTest(lhs: "1288490191", rhs: "858993463", expecting: "7") + self.andTest(lhs: "1288490191", rhs: "-858993464", expecting: "1288490184") + self.andTest(lhs: "1288490191", rhs: "644245099", expecting: "71582795") + self.andTest(lhs: "1288490191", rhs: "-644245100", expecting: "1216907396") + self.andTest(lhs: "1288490191", rhs: "429496735", expecting: "143165583") + self.andTest(lhs: "1288490191", rhs: "-429496736", expecting: "1145324608") + self.andTest(lhs: "1288490191", rhs: "214748371", expecting: "214748355") + self.andTest(lhs: "1288490191", rhs: "-214748372", expecting: "1073741836") + self.andTest(lhs: "-1288490192", rhs: "0", expecting: "0") + self.andTest(lhs: "-1288490192", rhs: "1", expecting: "0") + self.andTest(lhs: "-1288490192", rhs: "-1", expecting: "-1288490192") + self.andTest(lhs: "-1288490192", rhs: "2147483647", expecting: "858993456") + self.andTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-1288490192", rhs: "1932735283", expecting: "858993456") + self.andTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "-2147483648") + self.andTest(lhs: "-1288490192", rhs: "1717986919", expecting: "572662304") + self.andTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "-1861152496") + self.andTest(lhs: "-1288490192", rhs: "1503238555", expecting: "286331152") + self.andTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "-1574821344") + self.andTest(lhs: "-1288490192", rhs: "1288490191", expecting: "0") + self.andTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "-1288490192") + self.andTest(lhs: "-1288490192", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "-1288490192") + self.andTest(lhs: "-1288490192", rhs: "858993463", expecting: "858993456") + self.andTest(lhs: "-1288490192", rhs: "-858993464", expecting: "-2147483648") + self.andTest(lhs: "-1288490192", rhs: "644245099", expecting: "572662304") + self.andTest(lhs: "-1288490192", rhs: "-644245100", expecting: "-1861152496") + self.andTest(lhs: "-1288490192", rhs: "429496735", expecting: "286331152") + self.andTest(lhs: "-1288490192", rhs: "-429496736", expecting: "-1574821344") + self.andTest(lhs: "-1288490192", rhs: "214748371", expecting: "16") + self.andTest(lhs: "-1288490192", rhs: "-214748372", expecting: "-1288490208") + self.andTest(lhs: "1073741827", rhs: "0", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "1", expecting: "1") + self.andTest(lhs: "1073741827", rhs: "-1", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "2147483647", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "1932735283", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "-1932735284", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "1717986919", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "1503238555", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "-1503238556", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "1288490191", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "-1288490192", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "-1073741828", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "858993463", expecting: "3") + self.andTest(lhs: "1073741827", rhs: "-858993464", expecting: "1073741824") + self.andTest(lhs: "1073741827", rhs: "644245099", expecting: "3") + self.andTest(lhs: "1073741827", rhs: "-644245100", expecting: "1073741824") + self.andTest(lhs: "1073741827", rhs: "429496735", expecting: "3") + self.andTest(lhs: "1073741827", rhs: "-429496736", expecting: "1073741824") + self.andTest(lhs: "1073741827", rhs: "214748371", expecting: "3") + self.andTest(lhs: "1073741827", rhs: "-214748372", expecting: "1073741824") + self.andTest(lhs: "-1073741828", rhs: "0", expecting: "0") + self.andTest(lhs: "-1073741828", rhs: "1", expecting: "0") + self.andTest(lhs: "-1073741828", rhs: "-1", expecting: "-1073741828") + self.andTest(lhs: "-1073741828", rhs: "2147483647", expecting: "1073741820") + self.andTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-1073741828", rhs: "1932735283", expecting: "858993456") + self.andTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "-1932735284") + self.andTest(lhs: "-1073741828", rhs: "1717986919", expecting: "644245092") + self.andTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "-1717986920") + self.andTest(lhs: "-1073741828", rhs: "1503238555", expecting: "429496728") + self.andTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "-1503238556") + self.andTest(lhs: "-1073741828", rhs: "1288490191", expecting: "214748364") + self.andTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "-1288490192") + self.andTest(lhs: "-1073741828", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "-1073741828") + self.andTest(lhs: "-1073741828", rhs: "858993463", expecting: "858993460") + self.andTest(lhs: "-1073741828", rhs: "-858993464", expecting: "-1932735288") + self.andTest(lhs: "-1073741828", rhs: "644245099", expecting: "644245096") + self.andTest(lhs: "-1073741828", rhs: "-644245100", expecting: "-1717986924") + self.andTest(lhs: "-1073741828", rhs: "429496735", expecting: "429496732") + self.andTest(lhs: "-1073741828", rhs: "-429496736", expecting: "-1503238560") + self.andTest(lhs: "-1073741828", rhs: "214748371", expecting: "214748368") + self.andTest(lhs: "-1073741828", rhs: "-214748372", expecting: "-1288490196") + self.andTest(lhs: "858993463", rhs: "0", expecting: "0") + self.andTest(lhs: "858993463", rhs: "1", expecting: "1") + self.andTest(lhs: "858993463", rhs: "-1", expecting: "858993463") + self.andTest(lhs: "858993463", rhs: "2147483647", expecting: "858993463") + self.andTest(lhs: "858993463", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "858993463", rhs: "1932735283", expecting: "858993459") + self.andTest(lhs: "858993463", rhs: "-1932735284", expecting: "4") + self.andTest(lhs: "858993463", rhs: "1717986919", expecting: "572662311") + self.andTest(lhs: "858993463", rhs: "-1717986920", expecting: "286331152") + self.andTest(lhs: "858993463", rhs: "1503238555", expecting: "286331155") + self.andTest(lhs: "858993463", rhs: "-1503238556", expecting: "572662308") + self.andTest(lhs: "858993463", rhs: "1288490191", expecting: "7") + self.andTest(lhs: "858993463", rhs: "-1288490192", expecting: "858993456") + self.andTest(lhs: "858993463", rhs: "1073741827", expecting: "3") + self.andTest(lhs: "858993463", rhs: "-1073741828", expecting: "858993460") + self.andTest(lhs: "858993463", rhs: "858993463", expecting: "858993463") + self.andTest(lhs: "858993463", rhs: "-858993464", expecting: "0") + self.andTest(lhs: "858993463", rhs: "644245099", expecting: "572662307") + self.andTest(lhs: "858993463", rhs: "-644245100", expecting: "286331156") + self.andTest(lhs: "858993463", rhs: "429496735", expecting: "286331159") + self.andTest(lhs: "858993463", rhs: "-429496736", expecting: "572662304") + self.andTest(lhs: "858993463", rhs: "214748371", expecting: "19") + self.andTest(lhs: "858993463", rhs: "-214748372", expecting: "858993444") + self.andTest(lhs: "-858993464", rhs: "0", expecting: "0") + self.andTest(lhs: "-858993464", rhs: "1", expecting: "0") + self.andTest(lhs: "-858993464", rhs: "-1", expecting: "-858993464") + self.andTest(lhs: "-858993464", rhs: "2147483647", expecting: "1288490184") + self.andTest(lhs: "-858993464", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-858993464", rhs: "1932735283", expecting: "1073741824") + self.andTest(lhs: "-858993464", rhs: "-1932735284", expecting: "-1932735288") + self.andTest(lhs: "-858993464", rhs: "1717986919", expecting: "1145324608") + self.andTest(lhs: "-858993464", rhs: "-1717986920", expecting: "-2004318072") + self.andTest(lhs: "-858993464", rhs: "1503238555", expecting: "1216907400") + self.andTest(lhs: "-858993464", rhs: "-1503238556", expecting: "-2075900864") + self.andTest(lhs: "-858993464", rhs: "1288490191", expecting: "1288490184") + self.andTest(lhs: "-858993464", rhs: "-1288490192", expecting: "-2147483648") + self.andTest(lhs: "-858993464", rhs: "1073741827", expecting: "1073741824") + self.andTest(lhs: "-858993464", rhs: "-1073741828", expecting: "-1932735288") + self.andTest(lhs: "-858993464", rhs: "858993463", expecting: "0") + self.andTest(lhs: "-858993464", rhs: "-858993464", expecting: "-858993464") + self.andTest(lhs: "-858993464", rhs: "644245099", expecting: "71582792") + self.andTest(lhs: "-858993464", rhs: "-644245100", expecting: "-930576256") + self.andTest(lhs: "-858993464", rhs: "429496735", expecting: "143165576") + self.andTest(lhs: "-858993464", rhs: "-429496736", expecting: "-1002159040") + self.andTest(lhs: "-858993464", rhs: "214748371", expecting: "214748352") + self.andTest(lhs: "-858993464", rhs: "-214748372", expecting: "-1073741816") + self.andTest(lhs: "644245099", rhs: "0", expecting: "0") + self.andTest(lhs: "644245099", rhs: "1", expecting: "1") + self.andTest(lhs: "644245099", rhs: "-1", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "2147483647", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "644245099", rhs: "1932735283", expecting: "572662307") + self.andTest(lhs: "644245099", rhs: "-1932735284", expecting: "71582792") + self.andTest(lhs: "644245099", rhs: "1717986919", expecting: "644245091") + self.andTest(lhs: "644245099", rhs: "-1717986920", expecting: "8") + self.andTest(lhs: "644245099", rhs: "1503238555", expecting: "11") + self.andTest(lhs: "644245099", rhs: "-1503238556", expecting: "644245088") + self.andTest(lhs: "644245099", rhs: "1288490191", expecting: "71582795") + self.andTest(lhs: "644245099", rhs: "-1288490192", expecting: "572662304") + self.andTest(lhs: "644245099", rhs: "1073741827", expecting: "3") + self.andTest(lhs: "644245099", rhs: "-1073741828", expecting: "644245096") + self.andTest(lhs: "644245099", rhs: "858993463", expecting: "572662307") + self.andTest(lhs: "644245099", rhs: "-858993464", expecting: "71582792") + self.andTest(lhs: "644245099", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "-644245100", expecting: "0") + self.andTest(lhs: "644245099", rhs: "429496735", expecting: "11") + self.andTest(lhs: "644245099", rhs: "-429496736", expecting: "644245088") + self.andTest(lhs: "644245099", rhs: "214748371", expecting: "71582787") + self.andTest(lhs: "644245099", rhs: "-214748372", expecting: "572662312") + self.andTest(lhs: "-644245100", rhs: "0", expecting: "0") + self.andTest(lhs: "-644245100", rhs: "1", expecting: "0") + self.andTest(lhs: "-644245100", rhs: "-1", expecting: "-644245100") + self.andTest(lhs: "-644245100", rhs: "2147483647", expecting: "1503238548") + self.andTest(lhs: "-644245100", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-644245100", rhs: "1932735283", expecting: "1360072976") + self.andTest(lhs: "-644245100", rhs: "-1932735284", expecting: "-2004318076") + self.andTest(lhs: "-644245100", rhs: "1717986919", expecting: "1073741828") + self.andTest(lhs: "-644245100", rhs: "-1717986920", expecting: "-1717986928") + self.andTest(lhs: "-644245100", rhs: "1503238555", expecting: "1503238544") + self.andTest(lhs: "-644245100", rhs: "-1503238556", expecting: "-2147483644") + self.andTest(lhs: "-644245100", rhs: "1288490191", expecting: "1216907396") + self.andTest(lhs: "-644245100", rhs: "-1288490192", expecting: "-1861152496") + self.andTest(lhs: "-644245100", rhs: "1073741827", expecting: "1073741824") + self.andTest(lhs: "-644245100", rhs: "-1073741828", expecting: "-1717986924") + self.andTest(lhs: "-644245100", rhs: "858993463", expecting: "286331156") + self.andTest(lhs: "-644245100", rhs: "-858993464", expecting: "-930576256") + self.andTest(lhs: "-644245100", rhs: "644245099", expecting: "0") + self.andTest(lhs: "-644245100", rhs: "-644245100", expecting: "-644245100") + self.andTest(lhs: "-644245100", rhs: "429496735", expecting: "429496724") + self.andTest(lhs: "-644245100", rhs: "-429496736", expecting: "-1073741824") + self.andTest(lhs: "-644245100", rhs: "214748371", expecting: "143165584") + self.andTest(lhs: "-644245100", rhs: "-214748372", expecting: "-787410684") + self.andTest(lhs: "429496735", rhs: "0", expecting: "0") + self.andTest(lhs: "429496735", rhs: "1", expecting: "1") + self.andTest(lhs: "429496735", rhs: "-1", expecting: "429496735") + self.andTest(lhs: "429496735", rhs: "2147483647", expecting: "429496735") + self.andTest(lhs: "429496735", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "429496735", rhs: "1932735283", expecting: "286331155") + self.andTest(lhs: "429496735", rhs: "-1932735284", expecting: "143165580") + self.andTest(lhs: "429496735", rhs: "1717986919", expecting: "7") + self.andTest(lhs: "429496735", rhs: "-1717986920", expecting: "429496728") + self.andTest(lhs: "429496735", rhs: "1503238555", expecting: "429496731") + self.andTest(lhs: "429496735", rhs: "-1503238556", expecting: "4") + self.andTest(lhs: "429496735", rhs: "1288490191", expecting: "143165583") + self.andTest(lhs: "429496735", rhs: "-1288490192", expecting: "286331152") + self.andTest(lhs: "429496735", rhs: "1073741827", expecting: "3") + self.andTest(lhs: "429496735", rhs: "-1073741828", expecting: "429496732") + self.andTest(lhs: "429496735", rhs: "858993463", expecting: "286331159") + self.andTest(lhs: "429496735", rhs: "-858993464", expecting: "143165576") + self.andTest(lhs: "429496735", rhs: "644245099", expecting: "11") + self.andTest(lhs: "429496735", rhs: "-644245100", expecting: "429496724") + self.andTest(lhs: "429496735", rhs: "429496735", expecting: "429496735") + self.andTest(lhs: "429496735", rhs: "-429496736", expecting: "0") + self.andTest(lhs: "429496735", rhs: "214748371", expecting: "143165587") + self.andTest(lhs: "429496735", rhs: "-214748372", expecting: "286331148") + self.andTest(lhs: "-429496736", rhs: "0", expecting: "0") + self.andTest(lhs: "-429496736", rhs: "1", expecting: "0") + self.andTest(lhs: "-429496736", rhs: "-1", expecting: "-429496736") + self.andTest(lhs: "-429496736", rhs: "2147483647", expecting: "1717986912") + self.andTest(lhs: "-429496736", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-429496736", rhs: "1932735283", expecting: "1646404128") + self.andTest(lhs: "-429496736", rhs: "-1932735284", expecting: "-2075900864") + self.andTest(lhs: "-429496736", rhs: "1717986919", expecting: "1717986912") + self.andTest(lhs: "-429496736", rhs: "-1717986920", expecting: "-2147483648") + self.andTest(lhs: "-429496736", rhs: "1503238555", expecting: "1073741824") + self.andTest(lhs: "-429496736", rhs: "-1503238556", expecting: "-1503238560") + self.andTest(lhs: "-429496736", rhs: "1288490191", expecting: "1145324608") + self.andTest(lhs: "-429496736", rhs: "-1288490192", expecting: "-1574821344") + self.andTest(lhs: "-429496736", rhs: "1073741827", expecting: "1073741824") + self.andTest(lhs: "-429496736", rhs: "-1073741828", expecting: "-1503238560") + self.andTest(lhs: "-429496736", rhs: "858993463", expecting: "572662304") + self.andTest(lhs: "-429496736", rhs: "-858993464", expecting: "-1002159040") + self.andTest(lhs: "-429496736", rhs: "644245099", expecting: "644245088") + self.andTest(lhs: "-429496736", rhs: "-644245100", expecting: "-1073741824") + self.andTest(lhs: "-429496736", rhs: "429496735", expecting: "0") + self.andTest(lhs: "-429496736", rhs: "-429496736", expecting: "-429496736") + self.andTest(lhs: "-429496736", rhs: "214748371", expecting: "71582784") + self.andTest(lhs: "-429496736", rhs: "-214748372", expecting: "-501079520") + self.andTest(lhs: "214748371", rhs: "0", expecting: "0") + self.andTest(lhs: "214748371", rhs: "1", expecting: "1") + self.andTest(lhs: "214748371", rhs: "-1", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "2147483647", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "214748371", rhs: "1932735283", expecting: "19") + self.andTest(lhs: "214748371", rhs: "-1932735284", expecting: "214748352") + self.andTest(lhs: "214748371", rhs: "1717986919", expecting: "71582787") + self.andTest(lhs: "214748371", rhs: "-1717986920", expecting: "143165584") + self.andTest(lhs: "214748371", rhs: "1503238555", expecting: "143165587") + self.andTest(lhs: "214748371", rhs: "-1503238556", expecting: "71582784") + self.andTest(lhs: "214748371", rhs: "1288490191", expecting: "214748355") + self.andTest(lhs: "214748371", rhs: "-1288490192", expecting: "16") + self.andTest(lhs: "214748371", rhs: "1073741827", expecting: "3") + self.andTest(lhs: "214748371", rhs: "-1073741828", expecting: "214748368") + self.andTest(lhs: "214748371", rhs: "858993463", expecting: "19") + self.andTest(lhs: "214748371", rhs: "-858993464", expecting: "214748352") + self.andTest(lhs: "214748371", rhs: "644245099", expecting: "71582787") + self.andTest(lhs: "214748371", rhs: "-644245100", expecting: "143165584") + self.andTest(lhs: "214748371", rhs: "429496735", expecting: "143165587") + self.andTest(lhs: "214748371", rhs: "-429496736", expecting: "71582784") + self.andTest(lhs: "214748371", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "-214748372", expecting: "0") + self.andTest(lhs: "-214748372", rhs: "0", expecting: "0") + self.andTest(lhs: "-214748372", rhs: "1", expecting: "0") + self.andTest(lhs: "-214748372", rhs: "-1", expecting: "-214748372") + self.andTest(lhs: "-214748372", rhs: "2147483647", expecting: "1932735276") + self.andTest(lhs: "-214748372", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-214748372", rhs: "1932735283", expecting: "1932735264") + self.andTest(lhs: "-214748372", rhs: "-1932735284", expecting: "-2147483636") + self.andTest(lhs: "-214748372", rhs: "1717986919", expecting: "1646404132") + self.andTest(lhs: "-214748372", rhs: "-1717986920", expecting: "-1861152504") + self.andTest(lhs: "-214748372", rhs: "1503238555", expecting: "1360072968") + self.andTest(lhs: "-214748372", rhs: "-1503238556", expecting: "-1574821340") + self.andTest(lhs: "-214748372", rhs: "1288490191", expecting: "1073741836") + self.andTest(lhs: "-214748372", rhs: "-1288490192", expecting: "-1288490208") + self.andTest(lhs: "-214748372", rhs: "1073741827", expecting: "1073741824") + self.andTest(lhs: "-214748372", rhs: "-1073741828", expecting: "-1288490196") + self.andTest(lhs: "-214748372", rhs: "858993463", expecting: "858993444") + self.andTest(lhs: "-214748372", rhs: "-858993464", expecting: "-1073741816") + self.andTest(lhs: "-214748372", rhs: "644245099", expecting: "572662312") + self.andTest(lhs: "-214748372", rhs: "-644245100", expecting: "-787410684") + self.andTest(lhs: "-214748372", rhs: "429496735", expecting: "286331148") + self.andTest(lhs: "-214748372", rhs: "-429496736", expecting: "-501079520") + self.andTest(lhs: "-214748372", rhs: "214748371", expecting: "0") + self.andTest(lhs: "-214748372", rhs: "-214748372", expecting: "-214748372") + } + + func test_and_smi_heap() { + self.andTest(lhs: "0", rhs: "0", expecting: "0") + self.andTest(lhs: "0", rhs: "1", expecting: "0") + self.andTest(lhs: "0", rhs: "-1", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.andTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.andTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.andTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.andTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.andTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.andTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.andTest(lhs: "1", rhs: "0", expecting: "0") + self.andTest(lhs: "1", rhs: "1", expecting: "1") + self.andTest(lhs: "1", rhs: "-1", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551615", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551617", expecting: "1") + self.andTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551623", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551623", expecting: "1") + self.andTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551629", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551629", expecting: "1") + self.andTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551635", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551635", expecting: "1") + self.andTest(lhs: "-1", rhs: "0", expecting: "0") + self.andTest(lhs: "-1", rhs: "1", expecting: "1") + self.andTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.andTest(lhs: "-1", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.andTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-1", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.andTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.andTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-1", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.andTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.andTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-1", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.andTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.andTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-1", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.andTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.andTest(lhs: "2147483647", rhs: "0", expecting: "0") + self.andTest(lhs: "2147483647", rhs: "1", expecting: "1") + self.andTest(lhs: "2147483647", rhs: "-1", expecting: "2147483647") + self.andTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "2147483647") + self.andTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "2147483647") + self.andTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "2147483646") + self.andTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2147483643") + self.andTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "2147483641") + self.andTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "2147483646") + self.andTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "11") + self.andTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2147483637") + self.andTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "2147483635") + self.andTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "2147483646") + self.andTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2147483631") + self.andTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "2147483629") + self.andTest(lhs: "-2147483648", rhs: "0", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "1", expecting: "0") + self.andTest(lhs: "-2147483648", rhs: "-1", expecting: "-2147483648") + self.andTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "18446744071562067968") + self.andTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "-18446744075857035264") + self.andTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507625246720") + self.andTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256008867840") + self.andTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "18446744073709551616") + self.andTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "-18446744075857035264") + self.andTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949882556416") + self.andTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404360826880") + self.andTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "-18446744075857035264") + self.andTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392139866112") + self.andTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552712785920") + self.andTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "-18446744075857035264") + self.andTest(lhs: "1932735283", rhs: "0", expecting: "0") + self.andTest(lhs: "1932735283", rhs: "1", expecting: "1") + self.andTest(lhs: "1932735283", rhs: "-1", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "1932735282") + self.andTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "1932735281") + self.andTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "1932735282") + self.andTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3") + self.andTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1932735281") + self.andTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "1") + self.andTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "1932735283") + self.andTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "1932735282") + self.andTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1932735267") + self.andTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "1932735265") + self.andTest(lhs: "-1932735284", rhs: "0", expecting: "0") + self.andTest(lhs: "-1932735284", rhs: "1", expecting: "0") + self.andTest(lhs: "-1932735284", rhs: "-1", expecting: "-1932735284") + self.andTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "18446744071776816332") + self.andTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "-18446744075642286900") + self.andTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507410498356") + self.andTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255794119480") + self.andTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "18446744073709551620") + self.andTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "-18446744075642286904") + self.andTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949667808052") + self.andTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404146078524") + self.andTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.andTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "-18446744075642286912") + self.andTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391925117748") + self.andTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552498037556") + self.andTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "-18446744075642286900") + self.andTest(lhs: "1717986919", rhs: "0", expecting: "0") + self.andTest(lhs: "1717986919", rhs: "1", expecting: "1") + self.andTest(lhs: "1717986919", rhs: "-1", expecting: "1717986919") + self.andTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "1717986919") + self.andTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "1717986919") + self.andTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "1717986918") + self.andTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1717986915") + self.andTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "1717986913") + self.andTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "1717986918") + self.andTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3") + self.andTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1717986917") + self.andTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "5") + self.andTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "1717986915") + self.andTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "1717986918") + self.andTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1717986919") + self.andTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "3") + self.andTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "1717986917") + self.andTest(lhs: "-1717986920", rhs: "0", expecting: "0") + self.andTest(lhs: "-1717986920", rhs: "1", expecting: "0") + self.andTest(lhs: "-1717986920", rhs: "-1", expecting: "-1717986920") + self.andTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "18446744071991564696") + self.andTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "-18446744075427538536") + self.andTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507195749992") + self.andTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255579371112") + self.andTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "18446744073709551616") + self.andTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "-18446744075427538536") + self.andTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949453059688") + self.andTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403931330160") + self.andTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "18446744073709551624") + self.andTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "-18446744075427538544") + self.andTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391710369384") + self.andTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552283289208") + self.andTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "18446744073709551632") + self.andTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "-18446744075427538552") + self.andTest(lhs: "1503238555", rhs: "0", expecting: "0") + self.andTest(lhs: "1503238555", rhs: "1", expecting: "1") + self.andTest(lhs: "1503238555", rhs: "-1", expecting: "1503238555") + self.andTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "1503238555") + self.andTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "1503238555") + self.andTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "1503238554") + self.andTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1503238555") + self.andTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "1503238553") + self.andTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "1503238554") + self.andTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "11") + self.andTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1503238545") + self.andTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "9") + self.andTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "1503238547") + self.andTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "1503238554") + self.andTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1503238539") + self.andTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "1503238537") + self.andTest(lhs: "-1503238556", rhs: "0", expecting: "0") + self.andTest(lhs: "-1503238556", rhs: "1", expecting: "0") + self.andTest(lhs: "-1503238556", rhs: "-1", expecting: "-1503238556") + self.andTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "18446744072206313060") + self.andTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "-18446744075212790172") + self.andTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506981001628") + self.andTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255364622752") + self.andTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "18446744073709551620") + self.andTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "-18446744075212790176") + self.andTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949238311324") + self.andTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403716581788") + self.andTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "18446744073709551620") + self.andTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "-18446744075212790176") + self.andTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391495621020") + self.andTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552068540828") + self.andTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "-18446744075212790172") + self.andTest(lhs: "1288490191", rhs: "0", expecting: "0") + self.andTest(lhs: "1288490191", rhs: "1", expecting: "1") + self.andTest(lhs: "1288490191", rhs: "-1", expecting: "1288490191") + self.andTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "1288490191") + self.andTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "1288490191") + self.andTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "1288490190") + self.andTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1288490187") + self.andTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "1288490185") + self.andTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "1288490190") + self.andTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "11") + self.andTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1288490181") + self.andTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "1288490179") + self.andTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "1288490190") + self.andTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1288490191") + self.andTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "3") + self.andTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "1288490189") + self.andTest(lhs: "-1288490192", rhs: "0", expecting: "0") + self.andTest(lhs: "-1288490192", rhs: "1", expecting: "0") + self.andTest(lhs: "-1288490192", rhs: "-1", expecting: "-1288490192") + self.andTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "18446744072421061424") + self.andTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "-18446744074998041808") + self.andTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506766253264") + self.andTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255149874384") + self.andTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "18446744073709551616") + self.andTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "-18446744074998041808") + self.andTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949023562960") + self.andTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403501833424") + self.andTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "-18446744074998041808") + self.andTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391280872656") + self.andTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551853792480") + self.andTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "18446744073709551632") + self.andTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "-18446744074998041824") + self.andTest(lhs: "1073741827", rhs: "0", expecting: "0") + self.andTest(lhs: "1073741827", rhs: "1", expecting: "1") + self.andTest(lhs: "1073741827", rhs: "-1", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "1073741826") + self.andTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "1073741825") + self.andTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "1073741826") + self.andTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3") + self.andTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1073741825") + self.andTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "1") + self.andTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "1073741826") + self.andTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1073741827") + self.andTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "3") + self.andTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "1073741825") + self.andTest(lhs: "-1073741828", rhs: "0", expecting: "0") + self.andTest(lhs: "-1073741828", rhs: "1", expecting: "0") + self.andTest(lhs: "-1073741828", rhs: "-1", expecting: "-1073741828") + self.andTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "18446744072635809788") + self.andTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "-18446744074783293444") + self.andTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506551504900") + self.andTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254935126024") + self.andTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "18446744073709551620") + self.andTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "-18446744074783293448") + self.andTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948808814596") + self.andTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403287085068") + self.andTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.andTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "-18446744074783293456") + self.andTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391066124292") + self.andTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551639044116") + self.andTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "18446744073709551632") + self.andTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "-18446744074783293460") + self.andTest(lhs: "858993463", rhs: "0", expecting: "0") + self.andTest(lhs: "858993463", rhs: "1", expecting: "1") + self.andTest(lhs: "858993463", rhs: "-1", expecting: "858993463") + self.andTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "858993463") + self.andTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "858993463") + self.andTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "858993462") + self.andTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "858993459") + self.andTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "858993457") + self.andTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "858993462") + self.andTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3") + self.andTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "858993461") + self.andTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "5") + self.andTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "858993459") + self.andTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "858993462") + self.andTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "858993447") + self.andTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "858993445") + self.andTest(lhs: "-858993464", rhs: "0", expecting: "0") + self.andTest(lhs: "-858993464", rhs: "1", expecting: "0") + self.andTest(lhs: "-858993464", rhs: "-1", expecting: "-858993464") + self.andTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "18446744072850558152") + self.andTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "-18446744074568545080") + self.andTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756536") + self.andTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377656") + self.andTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "18446744073709551616") + self.andTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "-18446744074568545080") + self.andTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066232") + self.andTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.andTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "18446744073709551624") + self.andTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "-18446744074568545088") + self.andTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375928") + self.andTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295736") + self.andTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "-18446744074568545080") + self.andTest(lhs: "644245099", rhs: "0", expecting: "0") + self.andTest(lhs: "644245099", rhs: "1", expecting: "1") + self.andTest(lhs: "644245099", rhs: "-1", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "644245098") + self.andTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "644245097") + self.andTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "644245098") + self.andTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "11") + self.andTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "644245089") + self.andTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "9") + self.andTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "644245091") + self.andTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "644245098") + self.andTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "644245099") + self.andTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "3") + self.andTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "644245097") + self.andTest(lhs: "-644245100", rhs: "0", expecting: "0") + self.andTest(lhs: "-644245100", rhs: "1", expecting: "0") + self.andTest(lhs: "-644245100", rhs: "-1", expecting: "-644245100") + self.andTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "18446744073065306516") + self.andTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "-18446744074353796716") + self.andTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506122008172") + self.andTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254505629296") + self.andTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "18446744073709551620") + self.andTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "-18446744074353796720") + self.andTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948379317868") + self.andTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402857588332") + self.andTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "18446744073709551620") + self.andTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "-18446744074353796720") + self.andTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390636627564") + self.andTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551209547388") + self.andTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "18446744073709551632") + self.andTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "-18446744074353796732") + self.andTest(lhs: "429496735", rhs: "0", expecting: "0") + self.andTest(lhs: "429496735", rhs: "1", expecting: "1") + self.andTest(lhs: "429496735", rhs: "-1", expecting: "429496735") + self.andTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "429496735") + self.andTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "429496735") + self.andTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "429496734") + self.andTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "429496731") + self.andTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "429496729") + self.andTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "429496734") + self.andTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "11") + self.andTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "429496725") + self.andTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "429496723") + self.andTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "429496734") + self.andTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "429496719") + self.andTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "429496717") + self.andTest(lhs: "-429496736", rhs: "0", expecting: "0") + self.andTest(lhs: "-429496736", rhs: "1", expecting: "0") + self.andTest(lhs: "-429496736", rhs: "-1", expecting: "-429496736") + self.andTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "18446744073280054880") + self.andTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "-18446744074139048352") + self.andTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505907259808") + self.andTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254290880928") + self.andTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "18446744073709551616") + self.andTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "-18446744074139048352") + self.andTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948164569504") + self.andTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402642839968") + self.andTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "-18446744074139048352") + self.andTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390421879200") + self.andTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550994799008") + self.andTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "-18446744074139048352") + self.andTest(lhs: "214748371", rhs: "0", expecting: "0") + self.andTest(lhs: "214748371", rhs: "1", expecting: "1") + self.andTest(lhs: "214748371", rhs: "-1", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "214748370") + self.andTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "214748369") + self.andTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "214748370") + self.andTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3") + self.andTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "214748369") + self.andTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "1") + self.andTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "214748371") + self.andTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "214748370") + self.andTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "214748355") + self.andTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "214748353") + self.andTest(lhs: "-214748372", rhs: "0", expecting: "0") + self.andTest(lhs: "-214748372", rhs: "1", expecting: "0") + self.andTest(lhs: "-214748372", rhs: "-1", expecting: "-214748372") + self.andTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "18446744073494803244") + self.andTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "-18446744073924299988") + self.andTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505692511444") + self.andTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254076132568") + self.andTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "18446744073709551620") + self.andTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "-18446744073924299992") + self.andTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947949821140") + self.andTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402428091612") + self.andTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.andTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "-18446744073924300000") + self.andTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390207130836") + self.andTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550780050644") + self.andTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "-18446744073924299988") + } + + func test_and_heap_smi() { + self.andTest(lhs: "0", rhs: "0", expecting: "0") + self.andTest(lhs: "0", rhs: "1", expecting: "0") + self.andTest(lhs: "0", rhs: "-1", expecting: "0") + self.andTest(lhs: "0", rhs: "2147483647", expecting: "0") + self.andTest(lhs: "0", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "0", rhs: "1932735283", expecting: "0") + self.andTest(lhs: "0", rhs: "-1932735284", expecting: "0") + self.andTest(lhs: "0", rhs: "1717986919", expecting: "0") + self.andTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "0", rhs: "1503238555", expecting: "0") + self.andTest(lhs: "0", rhs: "-1503238556", expecting: "0") + self.andTest(lhs: "0", rhs: "1288490191", expecting: "0") + self.andTest(lhs: "0", rhs: "-1288490192", expecting: "0") + self.andTest(lhs: "0", rhs: "1073741827", expecting: "0") + self.andTest(lhs: "0", rhs: "-1073741828", expecting: "0") + self.andTest(lhs: "0", rhs: "858993463", expecting: "0") + self.andTest(lhs: "0", rhs: "-858993464", expecting: "0") + self.andTest(lhs: "0", rhs: "644245099", expecting: "0") + self.andTest(lhs: "0", rhs: "-644245100", expecting: "0") + self.andTest(lhs: "0", rhs: "429496735", expecting: "0") + self.andTest(lhs: "0", rhs: "-429496736", expecting: "0") + self.andTest(lhs: "0", rhs: "214748371", expecting: "0") + self.andTest(lhs: "0", rhs: "-214748372", expecting: "0") + self.andTest(lhs: "1", rhs: "0", expecting: "0") + self.andTest(lhs: "1", rhs: "1", expecting: "1") + self.andTest(lhs: "1", rhs: "-1", expecting: "1") + self.andTest(lhs: "1", rhs: "2147483647", expecting: "1") + self.andTest(lhs: "1", rhs: "-2147483648", expecting: "0") + self.andTest(lhs: "1", rhs: "1932735283", expecting: "1") + self.andTest(lhs: "1", rhs: "-1932735284", expecting: "0") + self.andTest(lhs: "1", rhs: "1717986919", expecting: "1") + self.andTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "1", rhs: "1503238555", expecting: "1") + self.andTest(lhs: "1", rhs: "-1503238556", expecting: "0") + self.andTest(lhs: "1", rhs: "1288490191", expecting: "1") + self.andTest(lhs: "1", rhs: "-1288490192", expecting: "0") + self.andTest(lhs: "1", rhs: "1073741827", expecting: "1") + self.andTest(lhs: "1", rhs: "-1073741828", expecting: "0") + self.andTest(lhs: "1", rhs: "858993463", expecting: "1") + self.andTest(lhs: "1", rhs: "-858993464", expecting: "0") + self.andTest(lhs: "1", rhs: "644245099", expecting: "1") + self.andTest(lhs: "1", rhs: "-644245100", expecting: "0") + self.andTest(lhs: "1", rhs: "429496735", expecting: "1") + self.andTest(lhs: "1", rhs: "-429496736", expecting: "0") + self.andTest(lhs: "1", rhs: "214748371", expecting: "1") + self.andTest(lhs: "1", rhs: "-214748372", expecting: "0") + self.andTest(lhs: "-1", rhs: "0", expecting: "0") + self.andTest(lhs: "-1", rhs: "1", expecting: "1") + self.andTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.andTest(lhs: "-1", rhs: "2147483647", expecting: "2147483647") + self.andTest(lhs: "-1", rhs: "-2147483648", expecting: "-2147483648") + self.andTest(lhs: "-1", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "-1", rhs: "-1932735284", expecting: "-1932735284") + self.andTest(lhs: "-1", rhs: "1717986919", expecting: "1717986919") + self.andTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986920") + self.andTest(lhs: "-1", rhs: "1503238555", expecting: "1503238555") + self.andTest(lhs: "-1", rhs: "-1503238556", expecting: "-1503238556") + self.andTest(lhs: "-1", rhs: "1288490191", expecting: "1288490191") + self.andTest(lhs: "-1", rhs: "-1288490192", expecting: "-1288490192") + self.andTest(lhs: "-1", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "-1", rhs: "-1073741828", expecting: "-1073741828") + self.andTest(lhs: "-1", rhs: "858993463", expecting: "858993463") + self.andTest(lhs: "-1", rhs: "-858993464", expecting: "-858993464") + self.andTest(lhs: "-1", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "-1", rhs: "-644245100", expecting: "-644245100") + self.andTest(lhs: "-1", rhs: "429496735", expecting: "429496735") + self.andTest(lhs: "-1", rhs: "-429496736", expecting: "-429496736") + self.andTest(lhs: "-1", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "-1", rhs: "-214748372", expecting: "-214748372") + self.andTest(lhs: "18446744073709551615", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551615", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551615", rhs: "-1", expecting: "18446744073709551615") + self.andTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "2147483647") + self.andTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "18446744071562067968") + self.andTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "18446744071776816332") + self.andTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "1717986919") + self.andTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "18446744071991564696") + self.andTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "1503238555") + self.andTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "18446744072206313060") + self.andTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "1288490191") + self.andTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "18446744072421061424") + self.andTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "18446744072635809788") + self.andTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "858993463") + self.andTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "18446744072850558152") + self.andTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "18446744073065306516") + self.andTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "429496735") + self.andTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "18446744073280054880") + self.andTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "18446744073494803244") + self.andTest(lhs: "-18446744073709551615", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551615", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-18446744073709551615") + self.andTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "-18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-1", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "18446744073709551616") + self.andTest(lhs: "-18446744073709551617", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551617", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-18446744073709551617") + self.andTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "2147483647") + self.andTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "-18446744075857035264") + self.andTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "-18446744075642286900") + self.andTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "1717986919") + self.andTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-18446744075427538536") + self.andTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "1503238555") + self.andTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "-18446744075212790172") + self.andTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "1288490191") + self.andTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "-18446744074998041808") + self.andTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "-18446744074783293444") + self.andTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "858993463") + self.andTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "-18446744074568545080") + self.andTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "-18446744074353796716") + self.andTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "429496735") + self.andTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "-18446744074139048352") + self.andTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "-18446744073924299988") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763074") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "2147483646") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-340282366920938463481821351507625246720") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "1932735282") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-340282366920938463481821351507410498356") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "1717986918") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351507195749992") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "1503238554") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-340282366920938463481821351506981001628") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "1288490190") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-340282366920938463481821351506766253264") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "1073741826") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-340282366920938463481821351506551504900") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "858993462") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-340282366920938463481821351506336756536") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "644245098") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-340282366920938463481821351506122008172") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "429496734") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-340282366920938463481821351505907259808") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "214748370") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-340282366920938463481821351505692511444") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "1") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "2147483643") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-6277101735386680764516354157049543343010657915256008867840") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-6277101735386680764516354157049543343010657915255794119480") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "1717986915") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371112") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "1503238555") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-6277101735386680764516354157049543343010657915255364622752") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "1288490187") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-6277101735386680764516354157049543343010657915255149874384") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-6277101735386680764516354157049543343010657915254935126024") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "858993459") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-6277101735386680764516354157049543343010657915254720377656") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-6277101735386680764516354157049543343010657915254505629296") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "429496731") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-6277101735386680764516354157049543343010657915254290880928") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-6277101735386680764516354157049543343010657915254076132568") + self.andTest(lhs: "18446744073709551623", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551623", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551623", rhs: "-1", expecting: "18446744073709551623") + self.andTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "18446744073709551620") + self.andTest(lhs: "-18446744073709551623", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551623", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-18446744073709551623") + self.andTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "2147483641") + self.andTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "-18446744075857035264") + self.andTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "1932735281") + self.andTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "-18446744075642286904") + self.andTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "1717986913") + self.andTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-18446744075427538536") + self.andTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "1503238553") + self.andTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "-18446744075212790176") + self.andTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "1288490185") + self.andTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "-18446744074998041808") + self.andTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "1073741825") + self.andTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "-18446744074783293448") + self.andTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "858993457") + self.andTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "-18446744074568545080") + self.andTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "644245097") + self.andTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "-18446744074353796720") + self.andTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "429496729") + self.andTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "-18446744074139048352") + self.andTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "214748369") + self.andTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "-18446744073924299992") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "2147483646") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-340282366920938463592501815949882556416") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "1932735282") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-340282366920938463592501815949667808052") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "1717986918") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815949453059688") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "1503238554") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-340282366920938463592501815949238311324") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "1288490190") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-340282366920938463592501815949023562960") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "1073741826") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-340282366920938463592501815948808814596") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "858993462") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-340282366920938463592501815948594066232") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "644245098") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-340282366920938463592501815948379317868") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "429496734") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-340282366920938463592501815948164569504") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "214748370") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-340282366920938463592501815947949821140") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "1") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "11") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "3") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "3") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "11") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "11") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "3") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "3") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "11") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "11") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "3") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "1") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "2147483637") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-6277101735386680766558048358575174123680225095404360826880") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "1932735281") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-6277101735386680766558048358575174123680225095404146078524") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "1717986917") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330160") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "1503238545") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-6277101735386680766558048358575174123680225095403716581788") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "1288490181") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-6277101735386680766558048358575174123680225095403501833424") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "1073741825") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-6277101735386680766558048358575174123680225095403287085068") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "858993461") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "644245089") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-6277101735386680766558048358575174123680225095402857588332") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "429496725") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-6277101735386680766558048358575174123680225095402642839968") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "214748369") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-6277101735386680766558048358575174123680225095402428091612") + self.andTest(lhs: "18446744073709551629", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551629", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551629", rhs: "-1", expecting: "18446744073709551629") + self.andTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "13") + self.andTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "1") + self.andTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "18446744073709551628") + self.andTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "5") + self.andTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "18446744073709551624") + self.andTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "9") + self.andTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "13") + self.andTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "1") + self.andTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "18446744073709551628") + self.andTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "5") + self.andTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "18446744073709551624") + self.andTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "9") + self.andTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "13") + self.andTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "1") + self.andTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "18446744073709551628") + self.andTest(lhs: "-18446744073709551629", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551629", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-18446744073709551629") + self.andTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "2147483635") + self.andTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "-18446744075857035264") + self.andTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "1932735283") + self.andTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "-18446744075642286912") + self.andTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "1717986915") + self.andTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-18446744075427538544") + self.andTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "1503238547") + self.andTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "-18446744075212790176") + self.andTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "1288490179") + self.andTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "-18446744074998041808") + self.andTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "-18446744074783293456") + self.andTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "858993459") + self.andTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "-18446744074568545088") + self.andTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "644245091") + self.andTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "-18446744074353796720") + self.andTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "429496723") + self.andTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "-18446744074139048352") + self.andTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "214748371") + self.andTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "-18446744073924300000") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "2147483646") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-340282366920938463703182280392139866112") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "1932735282") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-340282366920938463703182280391925117748") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "1717986918") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280391710369384") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "1503238554") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-340282366920938463703182280391495621020") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "1288490190") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-340282366920938463703182280391280872656") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "1073741826") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-340282366920938463703182280391066124292") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "858993462") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-340282366920938463703182280390851375928") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "644245098") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-340282366920938463703182280390636627564") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "429496734") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-340282366920938463703182280390421879200") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "214748370") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-340282366920938463703182280390207130836") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "1") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "2147483631") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-6277101735386680768599742560100804904349792275552712785920") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "1932735267") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-6277101735386680768599742560100804904349792275552498037556") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "1717986919") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289208") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "1503238539") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-6277101735386680768599742560100804904349792275552068540828") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "1288490191") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-6277101735386680768599742560100804904349792275551853792480") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "1073741827") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-6277101735386680768599742560100804904349792275551639044116") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "858993447") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-6277101735386680768599742560100804904349792275551424295736") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "644245099") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-6277101735386680768599742560100804904349792275551209547388") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "429496719") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-6277101735386680768599742560100804904349792275550994799008") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "214748355") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-6277101735386680768599742560100804904349792275550780050644") + self.andTest(lhs: "18446744073709551635", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551635", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551635", rhs: "-1", expecting: "18446744073709551635") + self.andTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "3") + self.andTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "18446744073709551632") + self.andTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "3") + self.andTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "18446744073709551632") + self.andTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "3") + self.andTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "18446744073709551632") + self.andTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "3") + self.andTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "18446744073709551632") + self.andTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "18446744073709551616") + self.andTest(lhs: "-18446744073709551635", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551635", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-18446744073709551635") + self.andTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "2147483629") + self.andTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "-18446744075857035264") + self.andTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "1932735265") + self.andTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "-18446744075642286900") + self.andTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "1717986917") + self.andTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-18446744075427538552") + self.andTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "1503238537") + self.andTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "-18446744075212790172") + self.andTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "1288490189") + self.andTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "-18446744074998041824") + self.andTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "1073741825") + self.andTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "-18446744074783293460") + self.andTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "858993445") + self.andTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "-18446744074568545080") + self.andTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "644245097") + self.andTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "-18446744074353796732") + self.andTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "429496717") + self.andTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "-18446744074139048352") + self.andTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "214748353") + self.andTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "-18446744073924299988") + } + + func test_and_heap_heap() { + self.andTest(lhs: "0", rhs: "0", expecting: "0") + self.andTest(lhs: "0", rhs: "1", expecting: "0") + self.andTest(lhs: "0", rhs: "-1", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551615", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551615", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551617", expecting: "0") + self.andTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.andTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551623", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551623", expecting: "0") + self.andTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.andTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551629", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551629", expecting: "0") + self.andTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.andTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.andTest(lhs: "0", rhs: "18446744073709551635", expecting: "0") + self.andTest(lhs: "0", rhs: "-18446744073709551635", expecting: "0") + self.andTest(lhs: "1", rhs: "0", expecting: "0") + self.andTest(lhs: "1", rhs: "1", expecting: "1") + self.andTest(lhs: "1", rhs: "-1", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551615", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551617", expecting: "1") + self.andTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551623", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551623", expecting: "1") + self.andTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551629", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551629", expecting: "1") + self.andTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "1", rhs: "18446744073709551635", expecting: "1") + self.andTest(lhs: "1", rhs: "-18446744073709551635", expecting: "1") + self.andTest(lhs: "-1", rhs: "0", expecting: "0") + self.andTest(lhs: "-1", rhs: "1", expecting: "1") + self.andTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.andTest(lhs: "-1", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.andTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-1", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.andTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.andTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-1", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.andTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.andTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-1", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.andTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.andTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-1", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.andTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.andTest(lhs: "18446744073709551615", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551615", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551615", rhs: "-1", expecting: "18446744073709551615") + self.andTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.andTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "18446744073709551615") + self.andTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "18446744073709551614") + self.andTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551611") + self.andTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "18446744073709551609") + self.andTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "18446744073709551614") + self.andTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "11") + self.andTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551605") + self.andTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "18446744073709551603") + self.andTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "18446744073709551614") + self.andTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551599") + self.andTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "18446744073709551597") + self.andTest(lhs: "-18446744073709551615", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551615", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-18446744073709551615") + self.andTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "-36893488147419103231") + self.andTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314688") + self.andTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384193") + self.andTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935807") + self.andTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "18446744073709551617") + self.andTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "-36893488147419103231") + self.andTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624384") + self.andTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343233") + self.andTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894847") + self.andTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "18446744073709551617") + self.andTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "-36893488147419103231") + self.andTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934080") + self.andTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302273") + self.andTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853887") + self.andTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "18446744073709551617") + self.andTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "-36893488147419103231") + self.andTest(lhs: "18446744073709551617", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-1", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "1") + self.andTest(lhs: "-18446744073709551617", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551617", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-18446744073709551617") + self.andTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.andTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "-36893488147419103231") + self.andTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.andTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211458") + self.andTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.andTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832581") + self.andTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.andTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521154") + self.andTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791627") + self.andTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.andTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830850") + self.andTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750673") + self.andTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "340282366920938463463374607431768211458") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "18446744073709551618") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "340282366920938463463374607431768211456") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "340282366920938463463374607431768211458") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "18446744073709551618") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "340282366920938463463374607431768211456") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "0") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763074") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "18446744073709551614") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-340282366920938463500268095579187314688") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-340282366920938463481821351505477763074") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879528836563748383621124") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "6") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-340282366920938463481821351505477763080") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "110680464442257309698") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660198403743896735580170") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "12") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-340282366920938463481821351505477763086") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "221360928884514619394") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440867970924045087539216") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "18") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-340282366920938463481821351505477763092") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "6277101735386680764516354157049543343010657915253861384193") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "6277101735386680764516354157049543342992211171180151832581") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680764176071790128604879528836563748383621124") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "18446744073709551621") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "6277101735386680764516354157049543342992211171180151832577") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680764176071790128604879418156099306126311428") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680764516354157049543342899977450811604074497") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "110680464442257309701") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "18446744073709551621") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "6277101735386680764516354157049543342992211171180151832577") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680764176071790128604879307475634863869001732") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680764516354157049543342789296986369346764801") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "221360928884514619397") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "18446744073709551617") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "6277101735386680764516354157049543342992211171180151832581") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "0") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "1") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "18446744073709551611") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-6277101735386680764516354157049543343029104659327570935807") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-6277101735386680764516354157049543343010657915253861384199") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780780247644590609268747") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123790905559844470652943") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "9") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-6277101735386680764516354157049543343010657915253861384205") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "4083388403051261561560495289181218537489") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904571153204435079921685") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-6277101735386680764516354157049543343010657915253861384215") + self.andTest(lhs: "18446744073709551623", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551623", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551623", rhs: "-1", expecting: "18446744073709551623") + self.andTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "6") + self.andTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551621") + self.andTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.andTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "1") + self.andTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "6") + self.andTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551619") + self.andTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "5") + self.andTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "18446744073709551621") + self.andTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "6") + self.andTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "18446744073709551619") + self.andTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "5") + self.andTest(lhs: "-18446744073709551623", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551623", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-18446744073709551623") + self.andTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "18446744073709551609") + self.andTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "-36893488147419103231") + self.andTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "-18446744073709551623") + self.andTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211456") + self.andTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763080") + self.andTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832577") + self.andTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384199") + self.andTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "1") + self.andTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.andTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521152") + self.andTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072776") + self.andTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791625") + self.andTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343247") + self.andTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "9") + self.andTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "-18446744073709551631") + self.andTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830848") + self.andTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382472") + self.andTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750673") + self.andTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302295") + self.andTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "17") + self.andTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "-18446744073709551639") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "340282366920938463574055071874025521154") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "110680464442257309698") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "18446744073709551618") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "340282366920938463574055071874025521152") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "110680464442257309696") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "340282366920938463574055071874025521154") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463555608327800315969538") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "36893488147419103234") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463518714839652896866304") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "73786976294838206466") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "18446744073709551618") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "340282366920938463574055071874025521152") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "0") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "18446744073709551614") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-340282366920938463610948560021444624384") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879418156099306126311428") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "6") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-340282366920938463592501815947735072776") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660198403743896735580170") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123790905559844470652940") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "12") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-340282366920938463592501815947735072782") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "147573952589676412930") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463740075768537411485698") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440831077435897668435984") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904423579251845403508754") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "18") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-340282366920938463592501815947735072788") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "1") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "11") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "6277101735386680766558048358575174123680225095402213343233") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "6277101735386680766558048358575174123661778351328503791627") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680766217765991654235660198403743896735580170") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342899977450811604074497") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2041694201525630780780247644590609268747") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "18446744073709551619") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "6277101735386680766558048358575174123661778351328503791625") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680766217765991654235660198403743896735580170") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "18446744073709551625") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "6277101735386680766558048358575174123661778351328503791619") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463629395304095154176002") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680766217765991654235660050829791307059167242") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680765877483624733297196605901927949000507393") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "680564733841876927074323167453212835851") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "18446744073709551619") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "6277101735386680766558048358575174123661778351328503791625") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "0") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "1") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "18446744073709551605") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-6277101735386680766558048358575174123698671839475922894847") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "110680464442257309701") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680766558048358575174123790905559844470652943") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "5") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-6277101735386680766558048358575174123680225095402213343247") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680766558048358575174123790905559844470652940") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "5") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-6277101735386680766558048358575174123680225095402213343247") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "73786976294838206464") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680766558048358575174123754012071697051549708") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2722258935367507707743890347601564794897") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680769280307293942681831424115443003778138139") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "17") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-6277101735386680766558048358575174123680225095402213343259") + self.andTest(lhs: "18446744073709551629", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551629", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551629", rhs: "-1", expecting: "18446744073709551629") + self.andTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "13") + self.andTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "13") + self.andTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "12") + self.andTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551621") + self.andTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "9") + self.andTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "18446744073709551621") + self.andTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "9") + self.andTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "12") + self.andTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551625") + self.andTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "5") + self.andTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.andTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "1") + self.andTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "12") + self.andTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "13") + self.andTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "13") + self.andTest(lhs: "-18446744073709551629", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551629", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-18446744073709551629") + self.andTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "18446744073709551603") + self.andTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "-36893488147419103231") + self.andTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "-18446744073709551629") + self.andTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211458") + self.andTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763086") + self.andTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832577") + self.andTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384205") + self.andTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "-18446744073709551631") + self.andTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521154") + self.andTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072782") + self.andTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791619") + self.andTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343247") + self.andTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "1") + self.andTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.andTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830850") + self.andTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382478") + self.andTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750673") + self.andTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302301") + self.andTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "-18446744073709551647") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "340282366920938463684735536316282830850") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "221360928884514619394") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "18446744073709551618") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "340282366920938463684735536316282830848") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463555608327800315969538") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "147573952589676412930") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "340282366920938463629395304095154176002") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "73786976294838206464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "340282366920938463684735536316282830850") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "221360928884514619394") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "18446744073709551618") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "340282366920938463684735536316282830848") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "0") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "18446744073709551614") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-340282366920938463721629024463701934080") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879307475634863869001732") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "6") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-340282366920938463703182280389992382472") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "36893488147419103234") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463740075768537411485698") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660050829791307059167242") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123754012071697051549708") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "12") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-340282366920938463703182280389992382478") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440867970924045087539216") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904571153204435079921682") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "18") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-340282366920938463703182280389992382484") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "6277101735386680768599742560100804904349792275550565302273") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "6277101735386680768599742560100804904331345531476855750673") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680768259460193179866440867970924045087539216") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342789296986369346764801") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "4083388403051261561560495289181218537489") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "18446744073709551617") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "6277101735386680768599742560100804904331345531476855750673") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463518714839652896866304") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680768259460193179866440831077435897668435984") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680765877483624733297196605901927949000507393") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2722258935367507707743890347601564794897") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "18446744073709551617") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "6277101735386680768599742560100804904331345531476855750673") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680768259460193179866440867970924045087539216") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "18446744073709551633") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "6277101735386680768599742560100804904331345531476855750657") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "0") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "1") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "18446744073709551599") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-6277101735386680768599742560100804904368239019624274853887") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "221360928884514619397") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680768599742560100804904571153204435079921685") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-6277101735386680768599742560100804904349792275550565302295") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "73786976294838206466") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680768599742560100804904423579251845403508754") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "680564733841876927074323167453212835851") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680769280307293942681831424115443003778138139") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-6277101735386680768599742560100804904349792275550565302301") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "221360928884514619394") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680768599742560100804904571153204435079921682") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "3") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-6277101735386680768599742560100804904349792275550565302291") + self.andTest(lhs: "18446744073709551635", rhs: "0", expecting: "0") + self.andTest(lhs: "18446744073709551635", rhs: "1", expecting: "1") + self.andTest(lhs: "18446744073709551635", rhs: "-1", expecting: "18446744073709551635") + self.andTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "18") + self.andTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "18446744073709551619") + self.andTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "17") + self.andTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "18") + self.andTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "18446744073709551619") + self.andTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "17") + self.andTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "18") + self.andTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "18446744073709551633") + self.andTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "3") + self.andTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.andTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "1") + self.andTest(lhs: "-18446744073709551635", rhs: "0", expecting: "0") + self.andTest(lhs: "-18446744073709551635", rhs: "1", expecting: "1") + self.andTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-18446744073709551635") + self.andTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "18446744073709551597") + self.andTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "-36893488147419103231") + self.andTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "-18446744073709551635") + self.andTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211456") + self.andTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763092") + self.andTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832581") + self.andTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384215") + self.andTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "5") + self.andTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "-18446744073709551639") + self.andTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521152") + self.andTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072788") + self.andTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791625") + self.andTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343259") + self.andTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "-18446744073709551647") + self.andTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830848") + self.andTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382484") + self.andTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750657") + self.andTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302291") + self.andTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "1") + self.andTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + } + + // MARK: - Or + + func test_or_smi_smi() { + self.orTest(lhs: "0", rhs: "0", expecting: "0") + self.orTest(lhs: "0", rhs: "1", expecting: "1") + self.orTest(lhs: "0", rhs: "-1", expecting: "-1") + self.orTest(lhs: "0", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "0", rhs: "-2147483648", expecting: "-2147483648") + self.orTest(lhs: "0", rhs: "1932735283", expecting: "1932735283") + self.orTest(lhs: "0", rhs: "-1932735284", expecting: "-1932735284") + self.orTest(lhs: "0", rhs: "1717986919", expecting: "1717986919") + self.orTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "0", rhs: "1503238555", expecting: "1503238555") + self.orTest(lhs: "0", rhs: "-1503238556", expecting: "-1503238556") + self.orTest(lhs: "0", rhs: "1288490191", expecting: "1288490191") + self.orTest(lhs: "0", rhs: "-1288490192", expecting: "-1288490192") + self.orTest(lhs: "0", rhs: "1073741827", expecting: "1073741827") + self.orTest(lhs: "0", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "0", rhs: "858993463", expecting: "858993463") + self.orTest(lhs: "0", rhs: "-858993464", expecting: "-858993464") + self.orTest(lhs: "0", rhs: "644245099", expecting: "644245099") + self.orTest(lhs: "0", rhs: "-644245100", expecting: "-644245100") + self.orTest(lhs: "0", rhs: "429496735", expecting: "429496735") + self.orTest(lhs: "0", rhs: "-429496736", expecting: "-429496736") + self.orTest(lhs: "0", rhs: "214748371", expecting: "214748371") + self.orTest(lhs: "0", rhs: "-214748372", expecting: "-214748372") + self.orTest(lhs: "1", rhs: "0", expecting: "1") + self.orTest(lhs: "1", rhs: "1", expecting: "1") + self.orTest(lhs: "1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483647") + self.orTest(lhs: "1", rhs: "1932735283", expecting: "1932735283") + self.orTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735283") + self.orTest(lhs: "1", rhs: "1717986919", expecting: "1717986919") + self.orTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "1", rhs: "1503238555", expecting: "1503238555") + self.orTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238555") + self.orTest(lhs: "1", rhs: "1288490191", expecting: "1288490191") + self.orTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490191") + self.orTest(lhs: "1", rhs: "1073741827", expecting: "1073741827") + self.orTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741827") + self.orTest(lhs: "1", rhs: "858993463", expecting: "858993463") + self.orTest(lhs: "1", rhs: "-858993464", expecting: "-858993463") + self.orTest(lhs: "1", rhs: "644245099", expecting: "644245099") + self.orTest(lhs: "1", rhs: "-644245100", expecting: "-644245099") + self.orTest(lhs: "1", rhs: "429496735", expecting: "429496735") + self.orTest(lhs: "1", rhs: "-429496736", expecting: "-429496735") + self.orTest(lhs: "1", rhs: "214748371", expecting: "214748371") + self.orTest(lhs: "1", rhs: "-214748372", expecting: "-214748371") + self.orTest(lhs: "-1", rhs: "0", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-2147483648", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1932735283", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1717986919", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1503238555", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1503238556", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1288490191", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1288490192", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1073741827", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "-1", rhs: "858993463", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-858993464", expecting: "-1") + self.orTest(lhs: "-1", rhs: "644245099", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "-1", rhs: "429496735", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-429496736", expecting: "-1") + self.orTest(lhs: "-1", rhs: "214748371", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "1", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-1", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-2147483648", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "1932735283", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "1717986919", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "1503238555", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-1503238556", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "1288490191", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-1288490192", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "1073741827", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "858993463", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-858993464", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "644245099", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "429496735", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-429496736", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "214748371", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.orTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483647") + self.orTest(lhs: "-2147483648", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-2147483648", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "-2147483648") + self.orTest(lhs: "-2147483648", rhs: "1932735283", expecting: "-214748365") + self.orTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "-1932735284") + self.orTest(lhs: "-2147483648", rhs: "1717986919", expecting: "-429496729") + self.orTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "-2147483648", rhs: "1503238555", expecting: "-644245093") + self.orTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "-1503238556") + self.orTest(lhs: "-2147483648", rhs: "1288490191", expecting: "-858993457") + self.orTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "-1288490192") + self.orTest(lhs: "-2147483648", rhs: "1073741827", expecting: "-1073741821") + self.orTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "-2147483648", rhs: "858993463", expecting: "-1288490185") + self.orTest(lhs: "-2147483648", rhs: "-858993464", expecting: "-858993464") + self.orTest(lhs: "-2147483648", rhs: "644245099", expecting: "-1503238549") + self.orTest(lhs: "-2147483648", rhs: "-644245100", expecting: "-644245100") + self.orTest(lhs: "-2147483648", rhs: "429496735", expecting: "-1717986913") + self.orTest(lhs: "-2147483648", rhs: "-429496736", expecting: "-429496736") + self.orTest(lhs: "-2147483648", rhs: "214748371", expecting: "-1932735277") + self.orTest(lhs: "-2147483648", rhs: "-214748372", expecting: "-214748372") + self.orTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.orTest(lhs: "1932735283", rhs: "1", expecting: "1932735283") + self.orTest(lhs: "1932735283", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1932735283", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "1932735283", rhs: "-2147483648", expecting: "-214748365") + self.orTest(lhs: "1932735283", rhs: "1932735283", expecting: "1932735283") + self.orTest(lhs: "1932735283", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "1932735283", rhs: "1717986919", expecting: "2004318071") + self.orTest(lhs: "1932735283", rhs: "-1717986920", expecting: "-71582789") + self.orTest(lhs: "1932735283", rhs: "1503238555", expecting: "2075900859") + self.orTest(lhs: "1932735283", rhs: "-1503238556", expecting: "-143165577") + self.orTest(lhs: "1932735283", rhs: "1288490191", expecting: "2147483647") + self.orTest(lhs: "1932735283", rhs: "-1288490192", expecting: "-214748365") + self.orTest(lhs: "1932735283", rhs: "1073741827", expecting: "1932735283") + self.orTest(lhs: "1932735283", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "1932735283", rhs: "858993463", expecting: "1932735287") + self.orTest(lhs: "1932735283", rhs: "-858993464", expecting: "-5") + self.orTest(lhs: "1932735283", rhs: "644245099", expecting: "2004318075") + self.orTest(lhs: "1932735283", rhs: "-644245100", expecting: "-71582793") + self.orTest(lhs: "1932735283", rhs: "429496735", expecting: "2075900863") + self.orTest(lhs: "1932735283", rhs: "-429496736", expecting: "-143165581") + self.orTest(lhs: "1932735283", rhs: "214748371", expecting: "2147483635") + self.orTest(lhs: "1932735283", rhs: "-214748372", expecting: "-214748353") + self.orTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.orTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735283") + self.orTest(lhs: "-1932735284", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "-1932735284") + self.orTest(lhs: "-1932735284", rhs: "1932735283", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "-1932735284") + self.orTest(lhs: "-1932735284", rhs: "1717986919", expecting: "-286331153") + self.orTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "-1646404132") + self.orTest(lhs: "-1932735284", rhs: "1503238555", expecting: "-572662305") + self.orTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "-1360072980") + self.orTest(lhs: "-1932735284", rhs: "1288490191", expecting: "-858993457") + self.orTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "-1073741828") + self.orTest(lhs: "-1932735284", rhs: "1073741827", expecting: "-858993457") + self.orTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "-1932735284", rhs: "858993463", expecting: "-1073741825") + self.orTest(lhs: "-1932735284", rhs: "-858993464", expecting: "-858993460") + self.orTest(lhs: "-1932735284", rhs: "644245099", expecting: "-1360072977") + self.orTest(lhs: "-1932735284", rhs: "-644245100", expecting: "-572662308") + self.orTest(lhs: "-1932735284", rhs: "429496735", expecting: "-1646404129") + self.orTest(lhs: "-1932735284", rhs: "-429496736", expecting: "-286331156") + self.orTest(lhs: "-1932735284", rhs: "214748371", expecting: "-1932735265") + self.orTest(lhs: "-1932735284", rhs: "-214748372", expecting: "-20") + self.orTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.orTest(lhs: "1717986919", rhs: "1", expecting: "1717986919") + self.orTest(lhs: "1717986919", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1717986919", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "1717986919", rhs: "-2147483648", expecting: "-429496729") + self.orTest(lhs: "1717986919", rhs: "1932735283", expecting: "2004318071") + self.orTest(lhs: "1717986919", rhs: "-1932735284", expecting: "-286331153") + self.orTest(lhs: "1717986919", rhs: "1717986919", expecting: "1717986919") + self.orTest(lhs: "1717986919", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "1717986919", rhs: "1503238555", expecting: "2147483647") + self.orTest(lhs: "1717986919", rhs: "-1503238556", expecting: "-429496729") + self.orTest(lhs: "1717986919", rhs: "1288490191", expecting: "1861152495") + self.orTest(lhs: "1717986919", rhs: "-1288490192", expecting: "-143165577") + self.orTest(lhs: "1717986919", rhs: "1073741827", expecting: "1717986919") + self.orTest(lhs: "1717986919", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "1717986919", rhs: "858993463", expecting: "2004318071") + self.orTest(lhs: "1717986919", rhs: "-858993464", expecting: "-286331153") + self.orTest(lhs: "1717986919", rhs: "644245099", expecting: "1717986927") + self.orTest(lhs: "1717986919", rhs: "-644245100", expecting: "-9") + self.orTest(lhs: "1717986919", rhs: "429496735", expecting: "2147483647") + self.orTest(lhs: "1717986919", rhs: "-429496736", expecting: "-429496729") + self.orTest(lhs: "1717986919", rhs: "214748371", expecting: "1861152503") + self.orTest(lhs: "1717986919", rhs: "-214748372", expecting: "-143165585") + self.orTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.orTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986919") + self.orTest(lhs: "-1717986920", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "-1717986920") + self.orTest(lhs: "-1717986920", rhs: "1932735283", expecting: "-71582789") + self.orTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "-1646404132") + self.orTest(lhs: "-1717986920", rhs: "1717986919", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "-1717986920", rhs: "1503238555", expecting: "-644245093") + self.orTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "-1073741828") + self.orTest(lhs: "-1717986920", rhs: "1288490191", expecting: "-572662305") + self.orTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "-1145324616") + self.orTest(lhs: "-1717986920", rhs: "1073741827", expecting: "-644245093") + self.orTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "-1717986920", rhs: "858993463", expecting: "-1145324609") + self.orTest(lhs: "-1717986920", rhs: "-858993464", expecting: "-572662312") + self.orTest(lhs: "-1717986920", rhs: "644245099", expecting: "-1073741829") + self.orTest(lhs: "-1717986920", rhs: "-644245100", expecting: "-644245092") + self.orTest(lhs: "-1717986920", rhs: "429496735", expecting: "-1717986913") + self.orTest(lhs: "-1717986920", rhs: "-429496736", expecting: "-8") + self.orTest(lhs: "-1717986920", rhs: "214748371", expecting: "-1646404133") + self.orTest(lhs: "-1717986920", rhs: "-214748372", expecting: "-71582788") + self.orTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.orTest(lhs: "1503238555", rhs: "1", expecting: "1503238555") + self.orTest(lhs: "1503238555", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1503238555", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "1503238555", rhs: "-2147483648", expecting: "-644245093") + self.orTest(lhs: "1503238555", rhs: "1932735283", expecting: "2075900859") + self.orTest(lhs: "1503238555", rhs: "-1932735284", expecting: "-572662305") + self.orTest(lhs: "1503238555", rhs: "1717986919", expecting: "2147483647") + self.orTest(lhs: "1503238555", rhs: "-1717986920", expecting: "-644245093") + self.orTest(lhs: "1503238555", rhs: "1503238555", expecting: "1503238555") + self.orTest(lhs: "1503238555", rhs: "-1503238556", expecting: "-1") + self.orTest(lhs: "1503238555", rhs: "1288490191", expecting: "1574821343") + self.orTest(lhs: "1503238555", rhs: "-1288490192", expecting: "-71582789") + self.orTest(lhs: "1503238555", rhs: "1073741827", expecting: "1503238555") + self.orTest(lhs: "1503238555", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "1503238555", rhs: "858993463", expecting: "2075900863") + self.orTest(lhs: "1503238555", rhs: "-858993464", expecting: "-572662309") + self.orTest(lhs: "1503238555", rhs: "644245099", expecting: "2147483643") + self.orTest(lhs: "1503238555", rhs: "-644245100", expecting: "-644245089") + self.orTest(lhs: "1503238555", rhs: "429496735", expecting: "1503238559") + self.orTest(lhs: "1503238555", rhs: "-429496736", expecting: "-5") + self.orTest(lhs: "1503238555", rhs: "214748371", expecting: "1574821339") + self.orTest(lhs: "1503238555", rhs: "-214748372", expecting: "-71582785") + self.orTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.orTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238555") + self.orTest(lhs: "-1503238556", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1503238556", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "-1503238556") + self.orTest(lhs: "-1503238556", rhs: "1932735283", expecting: "-143165577") + self.orTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "-1360072980") + self.orTest(lhs: "-1503238556", rhs: "1717986919", expecting: "-429496729") + self.orTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "-1073741828") + self.orTest(lhs: "-1503238556", rhs: "1503238555", expecting: "-1") + self.orTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "-1503238556") + self.orTest(lhs: "-1503238556", rhs: "1288490191", expecting: "-286331153") + self.orTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "-1216907404") + self.orTest(lhs: "-1503238556", rhs: "1073741827", expecting: "-429496729") + self.orTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "-1503238556", rhs: "858993463", expecting: "-1216907401") + self.orTest(lhs: "-1503238556", rhs: "-858993464", expecting: "-286331156") + self.orTest(lhs: "-1503238556", rhs: "644245099", expecting: "-1503238545") + self.orTest(lhs: "-1503238556", rhs: "-644245100", expecting: "-12") + self.orTest(lhs: "-1503238556", rhs: "429496735", expecting: "-1073741825") + self.orTest(lhs: "-1503238556", rhs: "-429496736", expecting: "-429496732") + self.orTest(lhs: "-1503238556", rhs: "214748371", expecting: "-1360072969") + self.orTest(lhs: "-1503238556", rhs: "-214748372", expecting: "-143165588") + self.orTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.orTest(lhs: "1288490191", rhs: "1", expecting: "1288490191") + self.orTest(lhs: "1288490191", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1288490191", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "1288490191", rhs: "-2147483648", expecting: "-858993457") + self.orTest(lhs: "1288490191", rhs: "1932735283", expecting: "2147483647") + self.orTest(lhs: "1288490191", rhs: "-1932735284", expecting: "-858993457") + self.orTest(lhs: "1288490191", rhs: "1717986919", expecting: "1861152495") + self.orTest(lhs: "1288490191", rhs: "-1717986920", expecting: "-572662305") + self.orTest(lhs: "1288490191", rhs: "1503238555", expecting: "1574821343") + self.orTest(lhs: "1288490191", rhs: "-1503238556", expecting: "-286331153") + self.orTest(lhs: "1288490191", rhs: "1288490191", expecting: "1288490191") + self.orTest(lhs: "1288490191", rhs: "-1288490192", expecting: "-1") + self.orTest(lhs: "1288490191", rhs: "1073741827", expecting: "1288490191") + self.orTest(lhs: "1288490191", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "1288490191", rhs: "858993463", expecting: "2147483647") + self.orTest(lhs: "1288490191", rhs: "-858993464", expecting: "-858993457") + self.orTest(lhs: "1288490191", rhs: "644245099", expecting: "1861152495") + self.orTest(lhs: "1288490191", rhs: "-644245100", expecting: "-572662305") + self.orTest(lhs: "1288490191", rhs: "429496735", expecting: "1574821343") + self.orTest(lhs: "1288490191", rhs: "-429496736", expecting: "-286331153") + self.orTest(lhs: "1288490191", rhs: "214748371", expecting: "1288490207") + self.orTest(lhs: "1288490191", rhs: "-214748372", expecting: "-17") + self.orTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.orTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490191") + self.orTest(lhs: "-1288490192", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1288490192", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "-1288490192") + self.orTest(lhs: "-1288490192", rhs: "1932735283", expecting: "-214748365") + self.orTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "-1073741828") + self.orTest(lhs: "-1288490192", rhs: "1717986919", expecting: "-143165577") + self.orTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "-1145324616") + self.orTest(lhs: "-1288490192", rhs: "1503238555", expecting: "-71582789") + self.orTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "-1216907404") + self.orTest(lhs: "-1288490192", rhs: "1288490191", expecting: "-1") + self.orTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "-1288490192") + self.orTest(lhs: "-1288490192", rhs: "1073741827", expecting: "-214748365") + self.orTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "-1288490192", rhs: "858993463", expecting: "-1288490185") + self.orTest(lhs: "-1288490192", rhs: "-858993464", expecting: "-8") + self.orTest(lhs: "-1288490192", rhs: "644245099", expecting: "-1216907397") + self.orTest(lhs: "-1288490192", rhs: "-644245100", expecting: "-71582796") + self.orTest(lhs: "-1288490192", rhs: "429496735", expecting: "-1145324609") + self.orTest(lhs: "-1288490192", rhs: "-429496736", expecting: "-143165584") + self.orTest(lhs: "-1288490192", rhs: "214748371", expecting: "-1073741837") + self.orTest(lhs: "-1288490192", rhs: "-214748372", expecting: "-214748356") + self.orTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.orTest(lhs: "1073741827", rhs: "1", expecting: "1073741827") + self.orTest(lhs: "1073741827", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1073741827", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "1073741827", rhs: "-2147483648", expecting: "-1073741821") + self.orTest(lhs: "1073741827", rhs: "1932735283", expecting: "1932735283") + self.orTest(lhs: "1073741827", rhs: "-1932735284", expecting: "-858993457") + self.orTest(lhs: "1073741827", rhs: "1717986919", expecting: "1717986919") + self.orTest(lhs: "1073741827", rhs: "-1717986920", expecting: "-644245093") + self.orTest(lhs: "1073741827", rhs: "1503238555", expecting: "1503238555") + self.orTest(lhs: "1073741827", rhs: "-1503238556", expecting: "-429496729") + self.orTest(lhs: "1073741827", rhs: "1288490191", expecting: "1288490191") + self.orTest(lhs: "1073741827", rhs: "-1288490192", expecting: "-214748365") + self.orTest(lhs: "1073741827", rhs: "1073741827", expecting: "1073741827") + self.orTest(lhs: "1073741827", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "1073741827", rhs: "858993463", expecting: "1932735287") + self.orTest(lhs: "1073741827", rhs: "-858993464", expecting: "-858993461") + self.orTest(lhs: "1073741827", rhs: "644245099", expecting: "1717986923") + self.orTest(lhs: "1073741827", rhs: "-644245100", expecting: "-644245097") + self.orTest(lhs: "1073741827", rhs: "429496735", expecting: "1503238559") + self.orTest(lhs: "1073741827", rhs: "-429496736", expecting: "-429496733") + self.orTest(lhs: "1073741827", rhs: "214748371", expecting: "1288490195") + self.orTest(lhs: "1073741827", rhs: "-214748372", expecting: "-214748369") + self.orTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741827") + self.orTest(lhs: "-1073741828", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "1932735283", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "1717986919", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "1503238555", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "1288490191", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "1073741827", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "858993463", expecting: "-1073741825") + self.orTest(lhs: "-1073741828", rhs: "-858993464", expecting: "-4") + self.orTest(lhs: "-1073741828", rhs: "644245099", expecting: "-1073741825") + self.orTest(lhs: "-1073741828", rhs: "-644245100", expecting: "-4") + self.orTest(lhs: "-1073741828", rhs: "429496735", expecting: "-1073741825") + self.orTest(lhs: "-1073741828", rhs: "-429496736", expecting: "-4") + self.orTest(lhs: "-1073741828", rhs: "214748371", expecting: "-1073741825") + self.orTest(lhs: "-1073741828", rhs: "-214748372", expecting: "-4") + self.orTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.orTest(lhs: "858993463", rhs: "1", expecting: "858993463") + self.orTest(lhs: "858993463", rhs: "-1", expecting: "-1") + self.orTest(lhs: "858993463", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "858993463", rhs: "-2147483648", expecting: "-1288490185") + self.orTest(lhs: "858993463", rhs: "1932735283", expecting: "1932735287") + self.orTest(lhs: "858993463", rhs: "-1932735284", expecting: "-1073741825") + self.orTest(lhs: "858993463", rhs: "1717986919", expecting: "2004318071") + self.orTest(lhs: "858993463", rhs: "-1717986920", expecting: "-1145324609") + self.orTest(lhs: "858993463", rhs: "1503238555", expecting: "2075900863") + self.orTest(lhs: "858993463", rhs: "-1503238556", expecting: "-1216907401") + self.orTest(lhs: "858993463", rhs: "1288490191", expecting: "2147483647") + self.orTest(lhs: "858993463", rhs: "-1288490192", expecting: "-1288490185") + self.orTest(lhs: "858993463", rhs: "1073741827", expecting: "1932735287") + self.orTest(lhs: "858993463", rhs: "-1073741828", expecting: "-1073741825") + self.orTest(lhs: "858993463", rhs: "858993463", expecting: "858993463") + self.orTest(lhs: "858993463", rhs: "-858993464", expecting: "-1") + self.orTest(lhs: "858993463", rhs: "644245099", expecting: "930576255") + self.orTest(lhs: "858993463", rhs: "-644245100", expecting: "-71582793") + self.orTest(lhs: "858993463", rhs: "429496735", expecting: "1002159039") + self.orTest(lhs: "858993463", rhs: "-429496736", expecting: "-143165577") + self.orTest(lhs: "858993463", rhs: "214748371", expecting: "1073741815") + self.orTest(lhs: "858993463", rhs: "-214748372", expecting: "-214748353") + self.orTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.orTest(lhs: "-858993464", rhs: "1", expecting: "-858993463") + self.orTest(lhs: "-858993464", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-858993464", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-858993464", rhs: "-2147483648", expecting: "-858993464") + self.orTest(lhs: "-858993464", rhs: "1932735283", expecting: "-5") + self.orTest(lhs: "-858993464", rhs: "-1932735284", expecting: "-858993460") + self.orTest(lhs: "-858993464", rhs: "1717986919", expecting: "-286331153") + self.orTest(lhs: "-858993464", rhs: "-1717986920", expecting: "-572662312") + self.orTest(lhs: "-858993464", rhs: "1503238555", expecting: "-572662309") + self.orTest(lhs: "-858993464", rhs: "-1503238556", expecting: "-286331156") + self.orTest(lhs: "-858993464", rhs: "1288490191", expecting: "-858993457") + self.orTest(lhs: "-858993464", rhs: "-1288490192", expecting: "-8") + self.orTest(lhs: "-858993464", rhs: "1073741827", expecting: "-858993461") + self.orTest(lhs: "-858993464", rhs: "-1073741828", expecting: "-4") + self.orTest(lhs: "-858993464", rhs: "858993463", expecting: "-1") + self.orTest(lhs: "-858993464", rhs: "-858993464", expecting: "-858993464") + self.orTest(lhs: "-858993464", rhs: "644245099", expecting: "-286331157") + self.orTest(lhs: "-858993464", rhs: "-644245100", expecting: "-572662308") + self.orTest(lhs: "-858993464", rhs: "429496735", expecting: "-572662305") + self.orTest(lhs: "-858993464", rhs: "-429496736", expecting: "-286331160") + self.orTest(lhs: "-858993464", rhs: "214748371", expecting: "-858993445") + self.orTest(lhs: "-858993464", rhs: "-214748372", expecting: "-20") + self.orTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.orTest(lhs: "644245099", rhs: "1", expecting: "644245099") + self.orTest(lhs: "644245099", rhs: "-1", expecting: "-1") + self.orTest(lhs: "644245099", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "644245099", rhs: "-2147483648", expecting: "-1503238549") + self.orTest(lhs: "644245099", rhs: "1932735283", expecting: "2004318075") + self.orTest(lhs: "644245099", rhs: "-1932735284", expecting: "-1360072977") + self.orTest(lhs: "644245099", rhs: "1717986919", expecting: "1717986927") + self.orTest(lhs: "644245099", rhs: "-1717986920", expecting: "-1073741829") + self.orTest(lhs: "644245099", rhs: "1503238555", expecting: "2147483643") + self.orTest(lhs: "644245099", rhs: "-1503238556", expecting: "-1503238545") + self.orTest(lhs: "644245099", rhs: "1288490191", expecting: "1861152495") + self.orTest(lhs: "644245099", rhs: "-1288490192", expecting: "-1216907397") + self.orTest(lhs: "644245099", rhs: "1073741827", expecting: "1717986923") + self.orTest(lhs: "644245099", rhs: "-1073741828", expecting: "-1073741825") + self.orTest(lhs: "644245099", rhs: "858993463", expecting: "930576255") + self.orTest(lhs: "644245099", rhs: "-858993464", expecting: "-286331157") + self.orTest(lhs: "644245099", rhs: "644245099", expecting: "644245099") + self.orTest(lhs: "644245099", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "644245099", rhs: "429496735", expecting: "1073741823") + self.orTest(lhs: "644245099", rhs: "-429496736", expecting: "-429496725") + self.orTest(lhs: "644245099", rhs: "214748371", expecting: "787410683") + self.orTest(lhs: "644245099", rhs: "-214748372", expecting: "-143165585") + self.orTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.orTest(lhs: "-644245100", rhs: "1", expecting: "-644245099") + self.orTest(lhs: "-644245100", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "-2147483648", expecting: "-644245100") + self.orTest(lhs: "-644245100", rhs: "1932735283", expecting: "-71582793") + self.orTest(lhs: "-644245100", rhs: "-1932735284", expecting: "-572662308") + self.orTest(lhs: "-644245100", rhs: "1717986919", expecting: "-9") + self.orTest(lhs: "-644245100", rhs: "-1717986920", expecting: "-644245092") + self.orTest(lhs: "-644245100", rhs: "1503238555", expecting: "-644245089") + self.orTest(lhs: "-644245100", rhs: "-1503238556", expecting: "-12") + self.orTest(lhs: "-644245100", rhs: "1288490191", expecting: "-572662305") + self.orTest(lhs: "-644245100", rhs: "-1288490192", expecting: "-71582796") + self.orTest(lhs: "-644245100", rhs: "1073741827", expecting: "-644245097") + self.orTest(lhs: "-644245100", rhs: "-1073741828", expecting: "-4") + self.orTest(lhs: "-644245100", rhs: "858993463", expecting: "-71582793") + self.orTest(lhs: "-644245100", rhs: "-858993464", expecting: "-572662308") + self.orTest(lhs: "-644245100", rhs: "644245099", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "-644245100", expecting: "-644245100") + self.orTest(lhs: "-644245100", rhs: "429496735", expecting: "-644245089") + self.orTest(lhs: "-644245100", rhs: "-429496736", expecting: "-12") + self.orTest(lhs: "-644245100", rhs: "214748371", expecting: "-572662313") + self.orTest(lhs: "-644245100", rhs: "-214748372", expecting: "-71582788") + self.orTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.orTest(lhs: "429496735", rhs: "1", expecting: "429496735") + self.orTest(lhs: "429496735", rhs: "-1", expecting: "-1") + self.orTest(lhs: "429496735", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "429496735", rhs: "-2147483648", expecting: "-1717986913") + self.orTest(lhs: "429496735", rhs: "1932735283", expecting: "2075900863") + self.orTest(lhs: "429496735", rhs: "-1932735284", expecting: "-1646404129") + self.orTest(lhs: "429496735", rhs: "1717986919", expecting: "2147483647") + self.orTest(lhs: "429496735", rhs: "-1717986920", expecting: "-1717986913") + self.orTest(lhs: "429496735", rhs: "1503238555", expecting: "1503238559") + self.orTest(lhs: "429496735", rhs: "-1503238556", expecting: "-1073741825") + self.orTest(lhs: "429496735", rhs: "1288490191", expecting: "1574821343") + self.orTest(lhs: "429496735", rhs: "-1288490192", expecting: "-1145324609") + self.orTest(lhs: "429496735", rhs: "1073741827", expecting: "1503238559") + self.orTest(lhs: "429496735", rhs: "-1073741828", expecting: "-1073741825") + self.orTest(lhs: "429496735", rhs: "858993463", expecting: "1002159039") + self.orTest(lhs: "429496735", rhs: "-858993464", expecting: "-572662305") + self.orTest(lhs: "429496735", rhs: "644245099", expecting: "1073741823") + self.orTest(lhs: "429496735", rhs: "-644245100", expecting: "-644245089") + self.orTest(lhs: "429496735", rhs: "429496735", expecting: "429496735") + self.orTest(lhs: "429496735", rhs: "-429496736", expecting: "-1") + self.orTest(lhs: "429496735", rhs: "214748371", expecting: "501079519") + self.orTest(lhs: "429496735", rhs: "-214748372", expecting: "-71582785") + self.orTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.orTest(lhs: "-429496736", rhs: "1", expecting: "-429496735") + self.orTest(lhs: "-429496736", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-429496736", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-429496736", rhs: "-2147483648", expecting: "-429496736") + self.orTest(lhs: "-429496736", rhs: "1932735283", expecting: "-143165581") + self.orTest(lhs: "-429496736", rhs: "-1932735284", expecting: "-286331156") + self.orTest(lhs: "-429496736", rhs: "1717986919", expecting: "-429496729") + self.orTest(lhs: "-429496736", rhs: "-1717986920", expecting: "-8") + self.orTest(lhs: "-429496736", rhs: "1503238555", expecting: "-5") + self.orTest(lhs: "-429496736", rhs: "-1503238556", expecting: "-429496732") + self.orTest(lhs: "-429496736", rhs: "1288490191", expecting: "-286331153") + self.orTest(lhs: "-429496736", rhs: "-1288490192", expecting: "-143165584") + self.orTest(lhs: "-429496736", rhs: "1073741827", expecting: "-429496733") + self.orTest(lhs: "-429496736", rhs: "-1073741828", expecting: "-4") + self.orTest(lhs: "-429496736", rhs: "858993463", expecting: "-143165577") + self.orTest(lhs: "-429496736", rhs: "-858993464", expecting: "-286331160") + self.orTest(lhs: "-429496736", rhs: "644245099", expecting: "-429496725") + self.orTest(lhs: "-429496736", rhs: "-644245100", expecting: "-12") + self.orTest(lhs: "-429496736", rhs: "429496735", expecting: "-1") + self.orTest(lhs: "-429496736", rhs: "-429496736", expecting: "-429496736") + self.orTest(lhs: "-429496736", rhs: "214748371", expecting: "-286331149") + self.orTest(lhs: "-429496736", rhs: "-214748372", expecting: "-143165588") + self.orTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.orTest(lhs: "214748371", rhs: "1", expecting: "214748371") + self.orTest(lhs: "214748371", rhs: "-1", expecting: "-1") + self.orTest(lhs: "214748371", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "214748371", rhs: "-2147483648", expecting: "-1932735277") + self.orTest(lhs: "214748371", rhs: "1932735283", expecting: "2147483635") + self.orTest(lhs: "214748371", rhs: "-1932735284", expecting: "-1932735265") + self.orTest(lhs: "214748371", rhs: "1717986919", expecting: "1861152503") + self.orTest(lhs: "214748371", rhs: "-1717986920", expecting: "-1646404133") + self.orTest(lhs: "214748371", rhs: "1503238555", expecting: "1574821339") + self.orTest(lhs: "214748371", rhs: "-1503238556", expecting: "-1360072969") + self.orTest(lhs: "214748371", rhs: "1288490191", expecting: "1288490207") + self.orTest(lhs: "214748371", rhs: "-1288490192", expecting: "-1073741837") + self.orTest(lhs: "214748371", rhs: "1073741827", expecting: "1288490195") + self.orTest(lhs: "214748371", rhs: "-1073741828", expecting: "-1073741825") + self.orTest(lhs: "214748371", rhs: "858993463", expecting: "1073741815") + self.orTest(lhs: "214748371", rhs: "-858993464", expecting: "-858993445") + self.orTest(lhs: "214748371", rhs: "644245099", expecting: "787410683") + self.orTest(lhs: "214748371", rhs: "-644245100", expecting: "-572662313") + self.orTest(lhs: "214748371", rhs: "429496735", expecting: "501079519") + self.orTest(lhs: "214748371", rhs: "-429496736", expecting: "-286331149") + self.orTest(lhs: "214748371", rhs: "214748371", expecting: "214748371") + self.orTest(lhs: "214748371", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.orTest(lhs: "-214748372", rhs: "1", expecting: "-214748371") + self.orTest(lhs: "-214748372", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "-2147483648", expecting: "-214748372") + self.orTest(lhs: "-214748372", rhs: "1932735283", expecting: "-214748353") + self.orTest(lhs: "-214748372", rhs: "-1932735284", expecting: "-20") + self.orTest(lhs: "-214748372", rhs: "1717986919", expecting: "-143165585") + self.orTest(lhs: "-214748372", rhs: "-1717986920", expecting: "-71582788") + self.orTest(lhs: "-214748372", rhs: "1503238555", expecting: "-71582785") + self.orTest(lhs: "-214748372", rhs: "-1503238556", expecting: "-143165588") + self.orTest(lhs: "-214748372", rhs: "1288490191", expecting: "-17") + self.orTest(lhs: "-214748372", rhs: "-1288490192", expecting: "-214748356") + self.orTest(lhs: "-214748372", rhs: "1073741827", expecting: "-214748369") + self.orTest(lhs: "-214748372", rhs: "-1073741828", expecting: "-4") + self.orTest(lhs: "-214748372", rhs: "858993463", expecting: "-214748353") + self.orTest(lhs: "-214748372", rhs: "-858993464", expecting: "-20") + self.orTest(lhs: "-214748372", rhs: "644245099", expecting: "-143165585") + self.orTest(lhs: "-214748372", rhs: "-644245100", expecting: "-71582788") + self.orTest(lhs: "-214748372", rhs: "429496735", expecting: "-71582785") + self.orTest(lhs: "-214748372", rhs: "-429496736", expecting: "-143165588") + self.orTest(lhs: "-214748372", rhs: "214748371", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "-214748372", expecting: "-214748372") + } + + func test_or_smi_heap() { + self.orTest(lhs: "0", rhs: "0", expecting: "0") + self.orTest(lhs: "0", rhs: "1", expecting: "1") + self.orTest(lhs: "0", rhs: "-1", expecting: "-1") + self.orTest(lhs: "0", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "0", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.orTest(lhs: "0", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.orTest(lhs: "0", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.orTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "0", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.orTest(lhs: "0", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.orTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "0", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.orTest(lhs: "0", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.orTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "0", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.orTest(lhs: "0", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.orTest(lhs: "1", rhs: "0", expecting: "1") + self.orTest(lhs: "1", rhs: "1", expecting: "1") + self.orTest(lhs: "1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.orTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.orTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.orTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.orTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.orTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.orTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.orTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.orTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.orTest(lhs: "-1", rhs: "0", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-1") + self.orTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "1", expecting: "2147483647") + self.orTest(lhs: "2147483647", rhs: "-1", expecting: "-1") + self.orTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "-18446744071562067969") + self.orTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "18446744075857035263") + self.orTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507625246719") + self.orTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256008867839") + self.orTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "18446744075857035263") + self.orTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949882556415") + self.orTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404360826879") + self.orTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "18446744075857035263") + self.orTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280392139866111") + self.orTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552712785919") + self.orTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "18446744075857035263") + self.orTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.orTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483647") + self.orTest(lhs: "-2147483648", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "-2147483647") + self.orTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "-2147483647") + self.orTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "-2147483646") + self.orTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2147483643") + self.orTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "-2147483641") + self.orTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "-2147483646") + self.orTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2147483637") + self.orTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "-2147483635") + self.orTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "-2147483646") + self.orTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2147483631") + self.orTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "-2147483629") + self.orTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.orTest(lhs: "1932735283", rhs: "1", expecting: "1932735283") + self.orTest(lhs: "1932735283", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "-18446744071776816333") + self.orTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "18446744075642286899") + self.orTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507410498355") + self.orTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255794119479") + self.orTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "18446744075642286903") + self.orTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949667808051") + self.orTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404146078523") + self.orTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "18446744075642286911") + self.orTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391925117747") + self.orTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552498037555") + self.orTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "18446744075642286899") + self.orTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.orTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735283") + self.orTest(lhs: "-1932735284", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "-1932735283") + self.orTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "-1932735283") + self.orTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "-1932735282") + self.orTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1932735283") + self.orTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "-1932735281") + self.orTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "-1932735282") + self.orTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1932735281") + self.orTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3") + self.orTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "-1932735283") + self.orTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "-1932735282") + self.orTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1932735267") + self.orTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "-1932735265") + self.orTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.orTest(lhs: "1717986919", rhs: "1", expecting: "1717986919") + self.orTest(lhs: "1717986919", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "-18446744071991564697") + self.orTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "18446744075427538535") + self.orTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749991") + self.orTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371111") + self.orTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "18446744075427538535") + self.orTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059687") + self.orTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330159") + self.orTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "18446744075427538543") + self.orTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "-18446744073709551625") + self.orTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369383") + self.orTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289207") + self.orTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "18446744075427538551") + self.orTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "-18446744073709551633") + self.orTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.orTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986919") + self.orTest(lhs: "-1717986920", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "-1717986919") + self.orTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "-1717986919") + self.orTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "-1717986918") + self.orTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1717986915") + self.orTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "-1717986913") + self.orTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "-1717986918") + self.orTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1717986917") + self.orTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3") + self.orTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "-1717986915") + self.orTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "-5") + self.orTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "-1717986918") + self.orTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1717986919") + self.orTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "-1717986917") + self.orTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "-3") + self.orTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.orTest(lhs: "1503238555", rhs: "1", expecting: "1503238555") + self.orTest(lhs: "1503238555", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "-18446744072206313061") + self.orTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "18446744075212790171") + self.orTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506981001627") + self.orTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255364622751") + self.orTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "18446744075212790175") + self.orTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949238311323") + self.orTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403716581787") + self.orTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "18446744075212790175") + self.orTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "-18446744073709551621") + self.orTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391495621019") + self.orTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552068540827") + self.orTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "18446744075212790171") + self.orTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.orTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238555") + self.orTest(lhs: "-1503238556", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "-1503238555") + self.orTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "-1503238555") + self.orTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "-1503238554") + self.orTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1503238555") + self.orTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "-1503238553") + self.orTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "-1503238554") + self.orTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1503238545") + self.orTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "-1503238547") + self.orTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "-9") + self.orTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "-1503238554") + self.orTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1503238539") + self.orTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "-1503238537") + self.orTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.orTest(lhs: "1288490191", rhs: "1", expecting: "1288490191") + self.orTest(lhs: "1288490191", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "-18446744072421061425") + self.orTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "18446744074998041807") + self.orTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506766253263") + self.orTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255149874383") + self.orTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "18446744074998041807") + self.orTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949023562959") + self.orTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403501833423") + self.orTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "18446744074998041807") + self.orTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391280872655") + self.orTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551853792479") + self.orTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "18446744074998041823") + self.orTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "-18446744073709551633") + self.orTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.orTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490191") + self.orTest(lhs: "-1288490192", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "-1288490191") + self.orTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "-1288490191") + self.orTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "-1288490190") + self.orTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1288490187") + self.orTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "-1288490185") + self.orTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "-1288490190") + self.orTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1288490181") + self.orTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "-1288490179") + self.orTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "-1288490190") + self.orTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1288490191") + self.orTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "-1288490189") + self.orTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "-3") + self.orTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.orTest(lhs: "1073741827", rhs: "1", expecting: "1073741827") + self.orTest(lhs: "1073741827", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "-18446744072635809789") + self.orTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "18446744074783293443") + self.orTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506551504899") + self.orTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254935126023") + self.orTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "18446744074783293447") + self.orTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948808814595") + self.orTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403287085067") + self.orTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "18446744074783293455") + self.orTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391066124291") + self.orTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551639044115") + self.orTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "18446744074783293459") + self.orTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "-18446744073709551633") + self.orTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.orTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741827") + self.orTest(lhs: "-1073741828", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "-1073741827") + self.orTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "-1073741827") + self.orTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "-1073741826") + self.orTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1073741827") + self.orTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "-1073741825") + self.orTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "-1073741826") + self.orTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1073741825") + self.orTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3") + self.orTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "-1073741827") + self.orTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "-1073741826") + self.orTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1073741827") + self.orTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "-1073741825") + self.orTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "-3") + self.orTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.orTest(lhs: "858993463", rhs: "1", expecting: "858993463") + self.orTest(lhs: "858993463", rhs: "-1", expecting: "-1") + self.orTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "-18446744072850558153") + self.orTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "18446744074568545079") + self.orTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756535") + self.orTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377655") + self.orTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "18446744074568545079") + self.orTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066231") + self.orTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336703") + self.orTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "18446744074568545087") + self.orTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "-18446744073709551625") + self.orTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375927") + self.orTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295735") + self.orTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "18446744074568545079") + self.orTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.orTest(lhs: "-858993464", rhs: "1", expecting: "-858993463") + self.orTest(lhs: "-858993464", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "-858993463") + self.orTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "-858993463") + self.orTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "-858993462") + self.orTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-858993459") + self.orTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "-858993457") + self.orTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "-858993462") + self.orTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-858993461") + self.orTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3") + self.orTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "-858993459") + self.orTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "-5") + self.orTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "-858993462") + self.orTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-858993447") + self.orTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "-858993445") + self.orTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.orTest(lhs: "644245099", rhs: "1", expecting: "644245099") + self.orTest(lhs: "644245099", rhs: "-1", expecting: "-1") + self.orTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "-18446744073065306517") + self.orTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "18446744074353796715") + self.orTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506122008171") + self.orTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254505629295") + self.orTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "18446744074353796719") + self.orTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948379317867") + self.orTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402857588331") + self.orTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "18446744074353796719") + self.orTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "-18446744073709551621") + self.orTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390636627563") + self.orTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551209547387") + self.orTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "18446744074353796731") + self.orTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "-18446744073709551633") + self.orTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.orTest(lhs: "-644245100", rhs: "1", expecting: "-644245099") + self.orTest(lhs: "-644245100", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "-644245099") + self.orTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "-644245099") + self.orTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "-644245098") + self.orTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-644245099") + self.orTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "-644245097") + self.orTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "-644245098") + self.orTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-644245089") + self.orTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "-644245091") + self.orTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "-9") + self.orTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "-644245098") + self.orTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-644245099") + self.orTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "-644245097") + self.orTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "-3") + self.orTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.orTest(lhs: "429496735", rhs: "1", expecting: "429496735") + self.orTest(lhs: "429496735", rhs: "-1", expecting: "-1") + self.orTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "-18446744073280054881") + self.orTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "18446744074139048351") + self.orTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505907259807") + self.orTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254290880927") + self.orTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "18446744074139048351") + self.orTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948164569503") + self.orTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402642839967") + self.orTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "18446744074139048351") + self.orTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390421879199") + self.orTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550994799007") + self.orTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "18446744074139048351") + self.orTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.orTest(lhs: "-429496736", rhs: "1", expecting: "-429496735") + self.orTest(lhs: "-429496736", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "-429496735") + self.orTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "-429496735") + self.orTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "-429496734") + self.orTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-429496731") + self.orTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "-429496729") + self.orTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "-429496734") + self.orTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-429496725") + self.orTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "-429496723") + self.orTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "-429496734") + self.orTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-429496719") + self.orTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "-429496717") + self.orTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.orTest(lhs: "214748371", rhs: "1", expecting: "214748371") + self.orTest(lhs: "214748371", rhs: "-1", expecting: "-1") + self.orTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "-18446744073494803245") + self.orTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "18446744073924299987") + self.orTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505692511443") + self.orTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254076132567") + self.orTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "18446744073924299991") + self.orTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947949821139") + self.orTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402428091611") + self.orTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "18446744073924299999") + self.orTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390207130835") + self.orTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550780050643") + self.orTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "18446744073924299987") + self.orTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.orTest(lhs: "-214748372", rhs: "1", expecting: "-214748371") + self.orTest(lhs: "-214748372", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "-214748371") + self.orTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "-214748371") + self.orTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "-214748370") + self.orTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-214748371") + self.orTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "-214748369") + self.orTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "-214748370") + self.orTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-214748369") + self.orTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3") + self.orTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "-214748371") + self.orTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "-214748370") + self.orTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-214748355") + self.orTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "-214748353") + self.orTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "-19") + } + + func test_or_heap_smi() { + self.orTest(lhs: "0", rhs: "0", expecting: "0") + self.orTest(lhs: "0", rhs: "1", expecting: "1") + self.orTest(lhs: "0", rhs: "-1", expecting: "-1") + self.orTest(lhs: "0", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "0", rhs: "-2147483648", expecting: "-2147483648") + self.orTest(lhs: "0", rhs: "1932735283", expecting: "1932735283") + self.orTest(lhs: "0", rhs: "-1932735284", expecting: "-1932735284") + self.orTest(lhs: "0", rhs: "1717986919", expecting: "1717986919") + self.orTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "0", rhs: "1503238555", expecting: "1503238555") + self.orTest(lhs: "0", rhs: "-1503238556", expecting: "-1503238556") + self.orTest(lhs: "0", rhs: "1288490191", expecting: "1288490191") + self.orTest(lhs: "0", rhs: "-1288490192", expecting: "-1288490192") + self.orTest(lhs: "0", rhs: "1073741827", expecting: "1073741827") + self.orTest(lhs: "0", rhs: "-1073741828", expecting: "-1073741828") + self.orTest(lhs: "0", rhs: "858993463", expecting: "858993463") + self.orTest(lhs: "0", rhs: "-858993464", expecting: "-858993464") + self.orTest(lhs: "0", rhs: "644245099", expecting: "644245099") + self.orTest(lhs: "0", rhs: "-644245100", expecting: "-644245100") + self.orTest(lhs: "0", rhs: "429496735", expecting: "429496735") + self.orTest(lhs: "0", rhs: "-429496736", expecting: "-429496736") + self.orTest(lhs: "0", rhs: "214748371", expecting: "214748371") + self.orTest(lhs: "0", rhs: "-214748372", expecting: "-214748372") + self.orTest(lhs: "1", rhs: "0", expecting: "1") + self.orTest(lhs: "1", rhs: "1", expecting: "1") + self.orTest(lhs: "1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1", rhs: "2147483647", expecting: "2147483647") + self.orTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483647") + self.orTest(lhs: "1", rhs: "1932735283", expecting: "1932735283") + self.orTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735283") + self.orTest(lhs: "1", rhs: "1717986919", expecting: "1717986919") + self.orTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "1", rhs: "1503238555", expecting: "1503238555") + self.orTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238555") + self.orTest(lhs: "1", rhs: "1288490191", expecting: "1288490191") + self.orTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490191") + self.orTest(lhs: "1", rhs: "1073741827", expecting: "1073741827") + self.orTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741827") + self.orTest(lhs: "1", rhs: "858993463", expecting: "858993463") + self.orTest(lhs: "1", rhs: "-858993464", expecting: "-858993463") + self.orTest(lhs: "1", rhs: "644245099", expecting: "644245099") + self.orTest(lhs: "1", rhs: "-644245100", expecting: "-644245099") + self.orTest(lhs: "1", rhs: "429496735", expecting: "429496735") + self.orTest(lhs: "1", rhs: "-429496736", expecting: "-429496735") + self.orTest(lhs: "1", rhs: "214748371", expecting: "214748371") + self.orTest(lhs: "1", rhs: "-214748372", expecting: "-214748371") + self.orTest(lhs: "-1", rhs: "0", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "2147483647", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-2147483648", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1932735283", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1717986919", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1503238555", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1503238556", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1288490191", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1288490192", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1073741827", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "-1", rhs: "858993463", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-858993464", expecting: "-1") + self.orTest(lhs: "-1", rhs: "644245099", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "-1", rhs: "429496735", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-429496736", expecting: "-1") + self.orTest(lhs: "-1", rhs: "214748371", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.orTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551615") + self.orTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "-18446744071562067969") + self.orTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "-2147483647") + self.orTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "-18446744071776816333") + self.orTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "-1932735283") + self.orTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "-18446744071991564697") + self.orTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "-18446744072206313061") + self.orTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "-1503238555") + self.orTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "-18446744072421061425") + self.orTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "-1288490191") + self.orTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "-18446744072635809789") + self.orTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "-1073741827") + self.orTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "-18446744072850558153") + self.orTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "-858993463") + self.orTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "-18446744073065306517") + self.orTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "-644245099") + self.orTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "-18446744073280054881") + self.orTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "-429496735") + self.orTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "-18446744073494803245") + self.orTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "-214748371") + self.orTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.orTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551617") + self.orTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "18446744075857035263") + self.orTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "-2147483647") + self.orTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "18446744075642286899") + self.orTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "-1932735283") + self.orTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "18446744075427538535") + self.orTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "18446744075212790171") + self.orTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "-1503238555") + self.orTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "18446744074998041807") + self.orTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "-1288490191") + self.orTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "18446744074783293443") + self.orTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "-1073741827") + self.orTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "18446744074568545079") + self.orTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "-858993463") + self.orTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "18446744074353796715") + self.orTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "-644245099") + self.orTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "18446744074139048351") + self.orTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "-429496735") + self.orTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "18446744073924299987") + self.orTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "-214748371") + self.orTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763075") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-1") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "340282366920938463481821351507625246719") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-2147483646") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "340282366920938463481821351507410498355") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-1932735282") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "340282366920938463481821351507195749991") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-1717986918") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "340282366920938463481821351506981001627") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-1503238554") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "340282366920938463481821351506766253263") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-1288490190") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "340282366920938463481821351506551504899") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-1073741826") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "340282366920938463481821351506336756535") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-858993462") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "340282366920938463481821351506122008171") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-644245098") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "340282366920938463481821351505907259807") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-429496734") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "340282366920938463481821351505692511443") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-214748370") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-2") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "6277101735386680764516354157049543343010657915256008867839") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-2147483643") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "6277101735386680764516354157049543343010657915255794119479") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-1932735283") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "6277101735386680764516354157049543343010657915255579371111") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-1717986915") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "6277101735386680764516354157049543343010657915255364622751") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-1503238555") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "6277101735386680764516354157049543343010657915255149874383") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-1288490187") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "6277101735386680764516354157049543343010657915254935126023") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-1073741827") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "6277101735386680764516354157049543343010657915254720377655") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-858993459") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "6277101735386680764516354157049543343010657915254505629295") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-644245099") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "6277101735386680764516354157049543343010657915254290880927") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-429496731") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "6277101735386680764516354157049543343010657915254076132567") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-214748371") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.orTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551623") + self.orTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "18446744075857035263") + self.orTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "-2147483641") + self.orTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "18446744075642286903") + self.orTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "-1932735281") + self.orTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "18446744075427538535") + self.orTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-1717986913") + self.orTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "18446744075212790175") + self.orTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "-1503238553") + self.orTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "18446744074998041807") + self.orTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "-1288490185") + self.orTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "18446744074783293447") + self.orTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "-1073741825") + self.orTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "18446744074568545079") + self.orTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "-858993457") + self.orTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "18446744074353796719") + self.orTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "-644245097") + self.orTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "18446744074139048351") + self.orTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "-429496729") + self.orTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "18446744073924299991") + self.orTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "-214748369") + self.orTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "-3") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072771") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-1") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "340282366920938463592501815949882556415") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-2147483646") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "340282366920938463592501815949667808051") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-1932735282") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "340282366920938463592501815949453059687") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-1717986918") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "340282366920938463592501815949238311323") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-1503238554") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "340282366920938463592501815949023562959") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-1288490190") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "340282366920938463592501815948808814595") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-1073741826") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "340282366920938463592501815948594066231") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-858993462") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "340282366920938463592501815948379317867") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-644245098") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "340282366920938463592501815948164569503") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-429496734") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "340282366920938463592501815947949821139") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-214748370") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-2") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "6277101735386680766558048358575174123680225095404360826879") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-2147483637") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "6277101735386680766558048358575174123680225095404146078523") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-1932735281") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "6277101735386680766558048358575174123680225095403931330159") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-1717986917") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "6277101735386680766558048358575174123680225095403716581787") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-1503238545") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "6277101735386680766558048358575174123680225095403501833423") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-1288490181") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "6277101735386680766558048358575174123680225095403287085067") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-1073741825") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "6277101735386680766558048358575174123680225095403072336703") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-858993461") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "6277101735386680766558048358575174123680225095402857588331") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-644245089") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "6277101735386680766558048358575174123680225095402642839967") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-429496725") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "6277101735386680766558048358575174123680225095402428091611") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-214748369") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-3") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-3") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-3") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-3") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-3") + self.orTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.orTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551629") + self.orTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "18446744075857035263") + self.orTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "-2147483635") + self.orTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "18446744075642286911") + self.orTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "-1932735283") + self.orTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "18446744075427538543") + self.orTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-1717986915") + self.orTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "18446744075212790175") + self.orTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "-1503238547") + self.orTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "18446744074998041807") + self.orTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "-1288490179") + self.orTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "18446744074783293455") + self.orTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "-1073741827") + self.orTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "18446744074568545087") + self.orTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "-858993459") + self.orTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "18446744074353796719") + self.orTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "-644245091") + self.orTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "18446744074139048351") + self.orTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "-429496723") + self.orTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "18446744073924299999") + self.orTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "-214748371") + self.orTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "-1") + self.orTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "-18446744073709551625") + self.orTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-5") + self.orTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "-9") + self.orTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "-18446744073709551625") + self.orTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "-5") + self.orTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "-9") + self.orTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "-1") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382467") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-1") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "340282366920938463703182280392139866111") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-2147483646") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "340282366920938463703182280391925117747") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-1932735282") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "340282366920938463703182280391710369383") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-1717986918") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "340282366920938463703182280391495621019") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-1503238554") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "340282366920938463703182280391280872655") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-1288490190") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "340282366920938463703182280391066124291") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-1073741826") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "340282366920938463703182280390851375927") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-858993462") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "340282366920938463703182280390636627563") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-644245098") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "340282366920938463703182280390421879199") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-429496734") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "340282366920938463703182280390207130835") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-214748370") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-2") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "6277101735386680768599742560100804904349792275552712785919") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-2147483631") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "6277101735386680768599742560100804904349792275552498037555") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-1932735267") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "6277101735386680768599742560100804904349792275552283289207") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "6277101735386680768599742560100804904349792275552068540827") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-1503238539") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "6277101735386680768599742560100804904349792275551853792479") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-1288490191") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "6277101735386680768599742560100804904349792275551639044115") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-1073741827") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "6277101735386680768599742560100804904349792275551424295735") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-858993447") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "6277101735386680768599742560100804904349792275551209547387") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-644245099") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "6277101735386680768599742560100804904349792275550994799007") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-429496719") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "6277101735386680768599742560100804904349792275550780050643") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-214748355") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-17") + self.orTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.orTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551635") + self.orTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "18446744075857035263") + self.orTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "-2147483629") + self.orTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "18446744075642286899") + self.orTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "-1932735265") + self.orTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "18446744075427538551") + self.orTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-1717986917") + self.orTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "18446744075212790171") + self.orTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "-1503238537") + self.orTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "18446744074998041823") + self.orTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "-1288490189") + self.orTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "18446744074783293459") + self.orTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "-1073741825") + self.orTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "18446744074568545079") + self.orTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "-858993445") + self.orTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "18446744074353796731") + self.orTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "-644245097") + self.orTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "18446744074139048351") + self.orTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "-429496717") + self.orTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "18446744073924299987") + self.orTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "-214748353") + self.orTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "-18446744073709551633") + self.orTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-3") + self.orTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "-18446744073709551633") + self.orTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "-3") + self.orTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "-18446744073709551633") + self.orTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "-3") + self.orTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "-18446744073709551633") + self.orTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "-3") + self.orTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "-19") + } + + func test_or_heap_heap() { + self.orTest(lhs: "0", rhs: "0", expecting: "0") + self.orTest(lhs: "0", rhs: "1", expecting: "1") + self.orTest(lhs: "0", rhs: "-1", expecting: "-1") + self.orTest(lhs: "0", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "0", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.orTest(lhs: "0", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.orTest(lhs: "0", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.orTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "0", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.orTest(lhs: "0", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.orTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "0", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.orTest(lhs: "0", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.orTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "0", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.orTest(lhs: "0", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.orTest(lhs: "1", rhs: "0", expecting: "1") + self.orTest(lhs: "1", rhs: "1", expecting: "1") + self.orTest(lhs: "1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.orTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.orTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.orTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.orTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.orTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.orTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.orTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.orTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.orTest(lhs: "-1", rhs: "0", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "-1") + self.orTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314687") + self.orTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935807") + self.orTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624383") + self.orTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894847") + self.orTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934079") + self.orTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853887") + self.orTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.orTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551615") + self.orTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.orTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "-18446744073709551615") + self.orTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "-18446744073709551613") + self.orTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551611") + self.orTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "-18446744073709551609") + self.orTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "-18446744073709551613") + self.orTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551605") + self.orTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "-18446744073709551603") + self.orTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "-18446744073709551613") + self.orTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551599") + self.orTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "-18446744073709551597") + self.orTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.orTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551617") + self.orTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.orTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.orTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.orTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832581") + self.orTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.orTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.orTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791627") + self.orTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.orTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.orTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750673") + self.orTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.orTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763075") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-1") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "340282366920938463500268095579187314687") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-18446744073709551613") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "340282366920938463481821351505477763075") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879528836563748383621125") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "340282366920938463481821351505477763079") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-110680464442257309698") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "340282366920938463481821351505477763087") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-221360928884514619394") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302291") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440867970924045087539217") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "340282366920938463481821351505477763091") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-17") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "6277101735386680764516354157049543343029104659327570935807") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-18446744073709551611") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123790905559844470652943") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780780247644590609268747") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "6277101735386680764516354157049543343010657915253861384205") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-9") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904571153204435079921685") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-4083388403051261561560495289181218537489") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "6277101735386680764516354157049543343010657915253861384215") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "-6277101735386680764516354157049543342992211171180151832581") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680764176071790128604879528836563748383621125") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "-6277101735386680764516354157049543342992211171180151832577") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680764176071790128604879418156099306126311429") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-110680464442257309701") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680764516354157049543342899977450811604074497") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "-6277101735386680764516354157049543342992211171180151832577") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-18446744073709551621") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680764176071790128604879307475634863869001733") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-221360928884514619397") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680764516354157049543342789296986369346764801") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "-6277101735386680764516354157049543342992211171180151832581") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.orTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551623") + self.orTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "-18446744073709551609") + self.orTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "18446744073709551623") + self.orTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763079") + self.orTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832577") + self.orTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.orTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "-1") + self.orTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072775") + self.orTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343247") + self.orTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791625") + self.orTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "18446744073709551631") + self.orTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "-9") + self.orTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382471") + self.orTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302295") + self.orTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750673") + self.orTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "18446744073709551639") + self.orTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "-17") + self.orTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "-5") + self.orTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "-1") + self.orTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "-5") + self.orTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-5") + self.orTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "-5") + self.orTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "-5") + self.orTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "-18446744073709551619") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072771") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-1") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "340282366920938463610948560021444624383") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-18446744073709551613") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "340282366920938463592501815947735072771") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463592501815947735072770") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879418156099306126311429") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "340282366920938463592501815947735072775") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123790905559844470652939") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "340282366920938463592501815947735072783") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463740075768537411485698") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-147573952589676412930") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904423579251845403508755") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440831077435897668435985") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "340282366920938463592501815947735072787") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-17") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "-110680464442257309698") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-110680464442257309697") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "-36893488147419103234") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463555608327800315969538") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-73786976294838206465") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463518714839652896866305") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "6277101735386680766558048358575174123698671839475922894847") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-18446744073709551605") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680766558048358575174123790905559844470652943") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-110680464442257309701") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "6277101735386680766558048358575174123680225095402213343247") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680766558048358575174123790905559844470652939") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-110680464442257309697") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "6277101735386680766558048358575174123680225095402213343247") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-5") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680766558048358575174123754012071697051549707") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-73786976294838206465") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680769280307293942681831424115443003778138139") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2722258935367507707743890347601564794897") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "6277101735386680766558048358575174123680225095402213343259") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-17") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "-6277101735386680766558048358575174123661778351328503791627") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2041694201525630780780247644590609268747") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342899977450811604074497") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "-6277101735386680766558048358575174123661778351328503791625") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-18446744073709551619") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "-6277101735386680766558048358575174123661778351328503791619") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-18446744073709551625") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680766217765991654235660050829791307059167241") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463629395304095154176001") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-680564733841876927074323167453212835851") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680765877483624733297196605901927949000507393") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "-6277101735386680766558048358575174123661778351328503791625") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-18446744073709551619") + self.orTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.orTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551629") + self.orTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "-18446744073709551603") + self.orTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "18446744073709551629") + self.orTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763087") + self.orTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384205") + self.orTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832577") + self.orTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "18446744073709551631") + self.orTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072783") + self.orTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343247") + self.orTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791619") + self.orTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.orTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382479") + self.orTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302301") + self.orTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750673") + self.orTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "18446744073709551647") + self.orTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-9") + self.orTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "-9") + self.orTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-5") + self.orTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551625") + self.orTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "-1") + self.orTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382467") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-1") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "340282366920938463721629024463701934079") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-18446744073709551613") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "340282366920938463703182280389992382467") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463703182280389992382466") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384199") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879307475634863869001733") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "340282366920938463703182280389992382471") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463740075768537411485698") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-36893488147419103234") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123754012071697051549707") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660050829791307059167241") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "340282366920938463703182280389992382479") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904571153204435079921683") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440867970924045087539217") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "340282366920938463703182280389992382483") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-17") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "-221360928884514619394") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "-147573952589676412930") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463555608327800315969538") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-73786976294838206465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-340282366920938463629395304095154176001") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-221360928884514619393") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "6277101735386680768599742560100804904368239019624274853887") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-18446744073709551599") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680768599742560100804904349792275550565302291") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680768599742560100804904571153204435079921685") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-221360928884514619397") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "6277101735386680768599742560100804904349792275550565302295") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680768599742560100804904423579251845403508755") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-73786976294838206465") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680769280307293942681831424115443003778138139") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-680564733841876927074323167453212835851") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "6277101735386680768599742560100804904349792275550565302301") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680768599742560100804904571153204435079921683") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-221360928884514619393") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "6277101735386680768599742560100804904349792275550565302291") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-3") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "-6277101735386680768599742560100804904331345531476855750673") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680768259460193179866440867970924045087539217") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-4083388403051261561560495289181218537489") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342789296986369346764801") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "-6277101735386680768599742560100804904331345531476855750673") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680768259460193179866440831077435897668435985") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463518714839652896866305") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2722258935367507707743890347601564794897") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680765877483624733297196605901927949000507393") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "-6277101735386680768599742560100804904331345531476855750673") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680768259460193179866440867970924045087539217") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "-6277101735386680768599742560100804904331345531476855750657") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-18446744073709551633") + self.orTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.orTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551635") + self.orTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-1") + self.orTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "36893488147419103231") + self.orTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "-18446744073709551597") + self.orTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "18446744073709551635") + self.orTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763091") + self.orTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211457") + self.orTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384215") + self.orTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832581") + self.orTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "18446744073709551639") + self.orTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072787") + self.orTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521153") + self.orTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343259") + self.orTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791625") + self.orTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "18446744073709551647") + self.orTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382483") + self.orTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830849") + self.orTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302291") + self.orTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750657") + self.orTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.orTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "-1") + self.orTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "-17") + self.orTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "-17") + self.orTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "-17") + self.orTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-17") + self.orTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "-17") + self.orTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-3") + self.orTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-18446744073709551633") + self.orTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "-1") + self.orTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + } + + // MARK: - Xor + + func test_xor_smi_smi() { + self.xorTest(lhs: "0", rhs: "0", expecting: "0") + self.xorTest(lhs: "0", rhs: "1", expecting: "1") + self.xorTest(lhs: "0", rhs: "-1", expecting: "-1") + self.xorTest(lhs: "0", rhs: "2147483647", expecting: "2147483647") + self.xorTest(lhs: "0", rhs: "-2147483648", expecting: "-2147483648") + self.xorTest(lhs: "0", rhs: "1932735283", expecting: "1932735283") + self.xorTest(lhs: "0", rhs: "-1932735284", expecting: "-1932735284") + self.xorTest(lhs: "0", rhs: "1717986919", expecting: "1717986919") + self.xorTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.xorTest(lhs: "0", rhs: "1503238555", expecting: "1503238555") + self.xorTest(lhs: "0", rhs: "-1503238556", expecting: "-1503238556") + self.xorTest(lhs: "0", rhs: "1288490191", expecting: "1288490191") + self.xorTest(lhs: "0", rhs: "-1288490192", expecting: "-1288490192") + self.xorTest(lhs: "0", rhs: "1073741827", expecting: "1073741827") + self.xorTest(lhs: "0", rhs: "-1073741828", expecting: "-1073741828") + self.xorTest(lhs: "0", rhs: "858993463", expecting: "858993463") + self.xorTest(lhs: "0", rhs: "-858993464", expecting: "-858993464") + self.xorTest(lhs: "0", rhs: "644245099", expecting: "644245099") + self.xorTest(lhs: "0", rhs: "-644245100", expecting: "-644245100") + self.xorTest(lhs: "0", rhs: "429496735", expecting: "429496735") + self.xorTest(lhs: "0", rhs: "-429496736", expecting: "-429496736") + self.xorTest(lhs: "0", rhs: "214748371", expecting: "214748371") + self.xorTest(lhs: "0", rhs: "-214748372", expecting: "-214748372") + self.xorTest(lhs: "1", rhs: "0", expecting: "1") + self.xorTest(lhs: "1", rhs: "1", expecting: "0") + self.xorTest(lhs: "1", rhs: "-1", expecting: "-2") + self.xorTest(lhs: "1", rhs: "2147483647", expecting: "2147483646") + self.xorTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483647") + self.xorTest(lhs: "1", rhs: "1932735283", expecting: "1932735282") + self.xorTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735283") + self.xorTest(lhs: "1", rhs: "1717986919", expecting: "1717986918") + self.xorTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.xorTest(lhs: "1", rhs: "1503238555", expecting: "1503238554") + self.xorTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238555") + self.xorTest(lhs: "1", rhs: "1288490191", expecting: "1288490190") + self.xorTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490191") + self.xorTest(lhs: "1", rhs: "1073741827", expecting: "1073741826") + self.xorTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741827") + self.xorTest(lhs: "1", rhs: "858993463", expecting: "858993462") + self.xorTest(lhs: "1", rhs: "-858993464", expecting: "-858993463") + self.xorTest(lhs: "1", rhs: "644245099", expecting: "644245098") + self.xorTest(lhs: "1", rhs: "-644245100", expecting: "-644245099") + self.xorTest(lhs: "1", rhs: "429496735", expecting: "429496734") + self.xorTest(lhs: "1", rhs: "-429496736", expecting: "-429496735") + self.xorTest(lhs: "1", rhs: "214748371", expecting: "214748370") + self.xorTest(lhs: "1", rhs: "-214748372", expecting: "-214748371") + self.xorTest(lhs: "-1", rhs: "0", expecting: "-1") + self.xorTest(lhs: "-1", rhs: "1", expecting: "-2") + self.xorTest(lhs: "-1", rhs: "-1", expecting: "0") + self.xorTest(lhs: "-1", rhs: "2147483647", expecting: "-2147483648") + self.xorTest(lhs: "-1", rhs: "-2147483648", expecting: "2147483647") + self.xorTest(lhs: "-1", rhs: "1932735283", expecting: "-1932735284") + self.xorTest(lhs: "-1", rhs: "-1932735284", expecting: "1932735283") + self.xorTest(lhs: "-1", rhs: "1717986919", expecting: "-1717986920") + self.xorTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.xorTest(lhs: "-1", rhs: "1503238555", expecting: "-1503238556") + self.xorTest(lhs: "-1", rhs: "-1503238556", expecting: "1503238555") + self.xorTest(lhs: "-1", rhs: "1288490191", expecting: "-1288490192") + self.xorTest(lhs: "-1", rhs: "-1288490192", expecting: "1288490191") + self.xorTest(lhs: "-1", rhs: "1073741827", expecting: "-1073741828") + self.xorTest(lhs: "-1", rhs: "-1073741828", expecting: "1073741827") + self.xorTest(lhs: "-1", rhs: "858993463", expecting: "-858993464") + self.xorTest(lhs: "-1", rhs: "-858993464", expecting: "858993463") + self.xorTest(lhs: "-1", rhs: "644245099", expecting: "-644245100") + self.xorTest(lhs: "-1", rhs: "-644245100", expecting: "644245099") + self.xorTest(lhs: "-1", rhs: "429496735", expecting: "-429496736") + self.xorTest(lhs: "-1", rhs: "-429496736", expecting: "429496735") + self.xorTest(lhs: "-1", rhs: "214748371", expecting: "-214748372") + self.xorTest(lhs: "-1", rhs: "-214748372", expecting: "214748371") + self.xorTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.xorTest(lhs: "2147483647", rhs: "1", expecting: "2147483646") + self.xorTest(lhs: "2147483647", rhs: "-1", expecting: "-2147483648") + self.xorTest(lhs: "2147483647", rhs: "2147483647", expecting: "0") + self.xorTest(lhs: "2147483647", rhs: "-2147483648", expecting: "-1") + self.xorTest(lhs: "2147483647", rhs: "1932735283", expecting: "214748364") + self.xorTest(lhs: "2147483647", rhs: "-1932735284", expecting: "-214748365") + self.xorTest(lhs: "2147483647", rhs: "1717986919", expecting: "429496728") + self.xorTest(lhs: "2147483647", rhs: "-1717986920", expecting: "-429496729") + self.xorTest(lhs: "2147483647", rhs: "1503238555", expecting: "644245092") + self.xorTest(lhs: "2147483647", rhs: "-1503238556", expecting: "-644245093") + self.xorTest(lhs: "2147483647", rhs: "1288490191", expecting: "858993456") + self.xorTest(lhs: "2147483647", rhs: "-1288490192", expecting: "-858993457") + self.xorTest(lhs: "2147483647", rhs: "1073741827", expecting: "1073741820") + self.xorTest(lhs: "2147483647", rhs: "-1073741828", expecting: "-1073741821") + self.xorTest(lhs: "2147483647", rhs: "858993463", expecting: "1288490184") + self.xorTest(lhs: "2147483647", rhs: "-858993464", expecting: "-1288490185") + self.xorTest(lhs: "2147483647", rhs: "644245099", expecting: "1503238548") + self.xorTest(lhs: "2147483647", rhs: "-644245100", expecting: "-1503238549") + self.xorTest(lhs: "2147483647", rhs: "429496735", expecting: "1717986912") + self.xorTest(lhs: "2147483647", rhs: "-429496736", expecting: "-1717986913") + self.xorTest(lhs: "2147483647", rhs: "214748371", expecting: "1932735276") + self.xorTest(lhs: "2147483647", rhs: "-214748372", expecting: "-1932735277") + self.xorTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.xorTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483647") + self.xorTest(lhs: "-2147483648", rhs: "-1", expecting: "2147483647") + self.xorTest(lhs: "-2147483648", rhs: "2147483647", expecting: "-1") + self.xorTest(lhs: "-2147483648", rhs: "-2147483648", expecting: "0") + self.xorTest(lhs: "-2147483648", rhs: "1932735283", expecting: "-214748365") + self.xorTest(lhs: "-2147483648", rhs: "-1932735284", expecting: "214748364") + self.xorTest(lhs: "-2147483648", rhs: "1717986919", expecting: "-429496729") + self.xorTest(lhs: "-2147483648", rhs: "-1717986920", expecting: "429496728") + self.xorTest(lhs: "-2147483648", rhs: "1503238555", expecting: "-644245093") + self.xorTest(lhs: "-2147483648", rhs: "-1503238556", expecting: "644245092") + self.xorTest(lhs: "-2147483648", rhs: "1288490191", expecting: "-858993457") + self.xorTest(lhs: "-2147483648", rhs: "-1288490192", expecting: "858993456") + self.xorTest(lhs: "-2147483648", rhs: "1073741827", expecting: "-1073741821") + self.xorTest(lhs: "-2147483648", rhs: "-1073741828", expecting: "1073741820") + self.xorTest(lhs: "-2147483648", rhs: "858993463", expecting: "-1288490185") + self.xorTest(lhs: "-2147483648", rhs: "-858993464", expecting: "1288490184") + self.xorTest(lhs: "-2147483648", rhs: "644245099", expecting: "-1503238549") + self.xorTest(lhs: "-2147483648", rhs: "-644245100", expecting: "1503238548") + self.xorTest(lhs: "-2147483648", rhs: "429496735", expecting: "-1717986913") + self.xorTest(lhs: "-2147483648", rhs: "-429496736", expecting: "1717986912") + self.xorTest(lhs: "-2147483648", rhs: "214748371", expecting: "-1932735277") + self.xorTest(lhs: "-2147483648", rhs: "-214748372", expecting: "1932735276") + self.xorTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.xorTest(lhs: "1932735283", rhs: "1", expecting: "1932735282") + self.xorTest(lhs: "1932735283", rhs: "-1", expecting: "-1932735284") + self.xorTest(lhs: "1932735283", rhs: "2147483647", expecting: "214748364") + self.xorTest(lhs: "1932735283", rhs: "-2147483648", expecting: "-214748365") + self.xorTest(lhs: "1932735283", rhs: "1932735283", expecting: "0") + self.xorTest(lhs: "1932735283", rhs: "-1932735284", expecting: "-1") + self.xorTest(lhs: "1932735283", rhs: "1717986919", expecting: "357913940") + self.xorTest(lhs: "1932735283", rhs: "-1717986920", expecting: "-357913941") + self.xorTest(lhs: "1932735283", rhs: "1503238555", expecting: "715827880") + self.xorTest(lhs: "1932735283", rhs: "-1503238556", expecting: "-715827881") + self.xorTest(lhs: "1932735283", rhs: "1288490191", expecting: "1073741820") + self.xorTest(lhs: "1932735283", rhs: "-1288490192", expecting: "-1073741821") + self.xorTest(lhs: "1932735283", rhs: "1073741827", expecting: "858993456") + self.xorTest(lhs: "1932735283", rhs: "-1073741828", expecting: "-858993457") + self.xorTest(lhs: "1932735283", rhs: "858993463", expecting: "1073741828") + self.xorTest(lhs: "1932735283", rhs: "-858993464", expecting: "-1073741829") + self.xorTest(lhs: "1932735283", rhs: "644245099", expecting: "1431655768") + self.xorTest(lhs: "1932735283", rhs: "-644245100", expecting: "-1431655769") + self.xorTest(lhs: "1932735283", rhs: "429496735", expecting: "1789569708") + self.xorTest(lhs: "1932735283", rhs: "-429496736", expecting: "-1789569709") + self.xorTest(lhs: "1932735283", rhs: "214748371", expecting: "2147483616") + self.xorTest(lhs: "1932735283", rhs: "-214748372", expecting: "-2147483617") + self.xorTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.xorTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735283") + self.xorTest(lhs: "-1932735284", rhs: "-1", expecting: "1932735283") + self.xorTest(lhs: "-1932735284", rhs: "2147483647", expecting: "-214748365") + self.xorTest(lhs: "-1932735284", rhs: "-2147483648", expecting: "214748364") + self.xorTest(lhs: "-1932735284", rhs: "1932735283", expecting: "-1") + self.xorTest(lhs: "-1932735284", rhs: "-1932735284", expecting: "0") + self.xorTest(lhs: "-1932735284", rhs: "1717986919", expecting: "-357913941") + self.xorTest(lhs: "-1932735284", rhs: "-1717986920", expecting: "357913940") + self.xorTest(lhs: "-1932735284", rhs: "1503238555", expecting: "-715827881") + self.xorTest(lhs: "-1932735284", rhs: "-1503238556", expecting: "715827880") + self.xorTest(lhs: "-1932735284", rhs: "1288490191", expecting: "-1073741821") + self.xorTest(lhs: "-1932735284", rhs: "-1288490192", expecting: "1073741820") + self.xorTest(lhs: "-1932735284", rhs: "1073741827", expecting: "-858993457") + self.xorTest(lhs: "-1932735284", rhs: "-1073741828", expecting: "858993456") + self.xorTest(lhs: "-1932735284", rhs: "858993463", expecting: "-1073741829") + self.xorTest(lhs: "-1932735284", rhs: "-858993464", expecting: "1073741828") + self.xorTest(lhs: "-1932735284", rhs: "644245099", expecting: "-1431655769") + self.xorTest(lhs: "-1932735284", rhs: "-644245100", expecting: "1431655768") + self.xorTest(lhs: "-1932735284", rhs: "429496735", expecting: "-1789569709") + self.xorTest(lhs: "-1932735284", rhs: "-429496736", expecting: "1789569708") + self.xorTest(lhs: "-1932735284", rhs: "214748371", expecting: "-2147483617") + self.xorTest(lhs: "-1932735284", rhs: "-214748372", expecting: "2147483616") + self.xorTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.xorTest(lhs: "1717986919", rhs: "1", expecting: "1717986918") + self.xorTest(lhs: "1717986919", rhs: "-1", expecting: "-1717986920") + self.xorTest(lhs: "1717986919", rhs: "2147483647", expecting: "429496728") + self.xorTest(lhs: "1717986919", rhs: "-2147483648", expecting: "-429496729") + self.xorTest(lhs: "1717986919", rhs: "1932735283", expecting: "357913940") + self.xorTest(lhs: "1717986919", rhs: "-1932735284", expecting: "-357913941") + self.xorTest(lhs: "1717986919", rhs: "1717986919", expecting: "0") + self.xorTest(lhs: "1717986919", rhs: "-1717986920", expecting: "-1") + self.xorTest(lhs: "1717986919", rhs: "1503238555", expecting: "1073741820") + self.xorTest(lhs: "1717986919", rhs: "-1503238556", expecting: "-1073741821") + self.xorTest(lhs: "1717986919", rhs: "1288490191", expecting: "715827880") + self.xorTest(lhs: "1717986919", rhs: "-1288490192", expecting: "-715827881") + self.xorTest(lhs: "1717986919", rhs: "1073741827", expecting: "644245092") + self.xorTest(lhs: "1717986919", rhs: "-1073741828", expecting: "-644245093") + self.xorTest(lhs: "1717986919", rhs: "858993463", expecting: "1431655760") + self.xorTest(lhs: "1717986919", rhs: "-858993464", expecting: "-1431655761") + self.xorTest(lhs: "1717986919", rhs: "644245099", expecting: "1073741836") + self.xorTest(lhs: "1717986919", rhs: "-644245100", expecting: "-1073741837") + self.xorTest(lhs: "1717986919", rhs: "429496735", expecting: "2147483640") + self.xorTest(lhs: "1717986919", rhs: "-429496736", expecting: "-2147483641") + self.xorTest(lhs: "1717986919", rhs: "214748371", expecting: "1789569716") + self.xorTest(lhs: "1717986919", rhs: "-214748372", expecting: "-1789569717") + self.xorTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.xorTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986919") + self.xorTest(lhs: "-1717986920", rhs: "-1", expecting: "1717986919") + self.xorTest(lhs: "-1717986920", rhs: "2147483647", expecting: "-429496729") + self.xorTest(lhs: "-1717986920", rhs: "-2147483648", expecting: "429496728") + self.xorTest(lhs: "-1717986920", rhs: "1932735283", expecting: "-357913941") + self.xorTest(lhs: "-1717986920", rhs: "-1932735284", expecting: "357913940") + self.xorTest(lhs: "-1717986920", rhs: "1717986919", expecting: "-1") + self.xorTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "0") + self.xorTest(lhs: "-1717986920", rhs: "1503238555", expecting: "-1073741821") + self.xorTest(lhs: "-1717986920", rhs: "-1503238556", expecting: "1073741820") + self.xorTest(lhs: "-1717986920", rhs: "1288490191", expecting: "-715827881") + self.xorTest(lhs: "-1717986920", rhs: "-1288490192", expecting: "715827880") + self.xorTest(lhs: "-1717986920", rhs: "1073741827", expecting: "-644245093") + self.xorTest(lhs: "-1717986920", rhs: "-1073741828", expecting: "644245092") + self.xorTest(lhs: "-1717986920", rhs: "858993463", expecting: "-1431655761") + self.xorTest(lhs: "-1717986920", rhs: "-858993464", expecting: "1431655760") + self.xorTest(lhs: "-1717986920", rhs: "644245099", expecting: "-1073741837") + self.xorTest(lhs: "-1717986920", rhs: "-644245100", expecting: "1073741836") + self.xorTest(lhs: "-1717986920", rhs: "429496735", expecting: "-2147483641") + self.xorTest(lhs: "-1717986920", rhs: "-429496736", expecting: "2147483640") + self.xorTest(lhs: "-1717986920", rhs: "214748371", expecting: "-1789569717") + self.xorTest(lhs: "-1717986920", rhs: "-214748372", expecting: "1789569716") + self.xorTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.xorTest(lhs: "1503238555", rhs: "1", expecting: "1503238554") + self.xorTest(lhs: "1503238555", rhs: "-1", expecting: "-1503238556") + self.xorTest(lhs: "1503238555", rhs: "2147483647", expecting: "644245092") + self.xorTest(lhs: "1503238555", rhs: "-2147483648", expecting: "-644245093") + self.xorTest(lhs: "1503238555", rhs: "1932735283", expecting: "715827880") + self.xorTest(lhs: "1503238555", rhs: "-1932735284", expecting: "-715827881") + self.xorTest(lhs: "1503238555", rhs: "1717986919", expecting: "1073741820") + self.xorTest(lhs: "1503238555", rhs: "-1717986920", expecting: "-1073741821") + self.xorTest(lhs: "1503238555", rhs: "1503238555", expecting: "0") + self.xorTest(lhs: "1503238555", rhs: "-1503238556", expecting: "-1") + self.xorTest(lhs: "1503238555", rhs: "1288490191", expecting: "357913940") + self.xorTest(lhs: "1503238555", rhs: "-1288490192", expecting: "-357913941") + self.xorTest(lhs: "1503238555", rhs: "1073741827", expecting: "429496728") + self.xorTest(lhs: "1503238555", rhs: "-1073741828", expecting: "-429496729") + self.xorTest(lhs: "1503238555", rhs: "858993463", expecting: "1789569708") + self.xorTest(lhs: "1503238555", rhs: "-858993464", expecting: "-1789569709") + self.xorTest(lhs: "1503238555", rhs: "644245099", expecting: "2147483632") + self.xorTest(lhs: "1503238555", rhs: "-644245100", expecting: "-2147483633") + self.xorTest(lhs: "1503238555", rhs: "429496735", expecting: "1073741828") + self.xorTest(lhs: "1503238555", rhs: "-429496736", expecting: "-1073741829") + self.xorTest(lhs: "1503238555", rhs: "214748371", expecting: "1431655752") + self.xorTest(lhs: "1503238555", rhs: "-214748372", expecting: "-1431655753") + self.xorTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.xorTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238555") + self.xorTest(lhs: "-1503238556", rhs: "-1", expecting: "1503238555") + self.xorTest(lhs: "-1503238556", rhs: "2147483647", expecting: "-644245093") + self.xorTest(lhs: "-1503238556", rhs: "-2147483648", expecting: "644245092") + self.xorTest(lhs: "-1503238556", rhs: "1932735283", expecting: "-715827881") + self.xorTest(lhs: "-1503238556", rhs: "-1932735284", expecting: "715827880") + self.xorTest(lhs: "-1503238556", rhs: "1717986919", expecting: "-1073741821") + self.xorTest(lhs: "-1503238556", rhs: "-1717986920", expecting: "1073741820") + self.xorTest(lhs: "-1503238556", rhs: "1503238555", expecting: "-1") + self.xorTest(lhs: "-1503238556", rhs: "-1503238556", expecting: "0") + self.xorTest(lhs: "-1503238556", rhs: "1288490191", expecting: "-357913941") + self.xorTest(lhs: "-1503238556", rhs: "-1288490192", expecting: "357913940") + self.xorTest(lhs: "-1503238556", rhs: "1073741827", expecting: "-429496729") + self.xorTest(lhs: "-1503238556", rhs: "-1073741828", expecting: "429496728") + self.xorTest(lhs: "-1503238556", rhs: "858993463", expecting: "-1789569709") + self.xorTest(lhs: "-1503238556", rhs: "-858993464", expecting: "1789569708") + self.xorTest(lhs: "-1503238556", rhs: "644245099", expecting: "-2147483633") + self.xorTest(lhs: "-1503238556", rhs: "-644245100", expecting: "2147483632") + self.xorTest(lhs: "-1503238556", rhs: "429496735", expecting: "-1073741829") + self.xorTest(lhs: "-1503238556", rhs: "-429496736", expecting: "1073741828") + self.xorTest(lhs: "-1503238556", rhs: "214748371", expecting: "-1431655753") + self.xorTest(lhs: "-1503238556", rhs: "-214748372", expecting: "1431655752") + self.xorTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.xorTest(lhs: "1288490191", rhs: "1", expecting: "1288490190") + self.xorTest(lhs: "1288490191", rhs: "-1", expecting: "-1288490192") + self.xorTest(lhs: "1288490191", rhs: "2147483647", expecting: "858993456") + self.xorTest(lhs: "1288490191", rhs: "-2147483648", expecting: "-858993457") + self.xorTest(lhs: "1288490191", rhs: "1932735283", expecting: "1073741820") + self.xorTest(lhs: "1288490191", rhs: "-1932735284", expecting: "-1073741821") + self.xorTest(lhs: "1288490191", rhs: "1717986919", expecting: "715827880") + self.xorTest(lhs: "1288490191", rhs: "-1717986920", expecting: "-715827881") + self.xorTest(lhs: "1288490191", rhs: "1503238555", expecting: "357913940") + self.xorTest(lhs: "1288490191", rhs: "-1503238556", expecting: "-357913941") + self.xorTest(lhs: "1288490191", rhs: "1288490191", expecting: "0") + self.xorTest(lhs: "1288490191", rhs: "-1288490192", expecting: "-1") + self.xorTest(lhs: "1288490191", rhs: "1073741827", expecting: "214748364") + self.xorTest(lhs: "1288490191", rhs: "-1073741828", expecting: "-214748365") + self.xorTest(lhs: "1288490191", rhs: "858993463", expecting: "2147483640") + self.xorTest(lhs: "1288490191", rhs: "-858993464", expecting: "-2147483641") + self.xorTest(lhs: "1288490191", rhs: "644245099", expecting: "1789569700") + self.xorTest(lhs: "1288490191", rhs: "-644245100", expecting: "-1789569701") + self.xorTest(lhs: "1288490191", rhs: "429496735", expecting: "1431655760") + self.xorTest(lhs: "1288490191", rhs: "-429496736", expecting: "-1431655761") + self.xorTest(lhs: "1288490191", rhs: "214748371", expecting: "1073741852") + self.xorTest(lhs: "1288490191", rhs: "-214748372", expecting: "-1073741853") + self.xorTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.xorTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490191") + self.xorTest(lhs: "-1288490192", rhs: "-1", expecting: "1288490191") + self.xorTest(lhs: "-1288490192", rhs: "2147483647", expecting: "-858993457") + self.xorTest(lhs: "-1288490192", rhs: "-2147483648", expecting: "858993456") + self.xorTest(lhs: "-1288490192", rhs: "1932735283", expecting: "-1073741821") + self.xorTest(lhs: "-1288490192", rhs: "-1932735284", expecting: "1073741820") + self.xorTest(lhs: "-1288490192", rhs: "1717986919", expecting: "-715827881") + self.xorTest(lhs: "-1288490192", rhs: "-1717986920", expecting: "715827880") + self.xorTest(lhs: "-1288490192", rhs: "1503238555", expecting: "-357913941") + self.xorTest(lhs: "-1288490192", rhs: "-1503238556", expecting: "357913940") + self.xorTest(lhs: "-1288490192", rhs: "1288490191", expecting: "-1") + self.xorTest(lhs: "-1288490192", rhs: "-1288490192", expecting: "0") + self.xorTest(lhs: "-1288490192", rhs: "1073741827", expecting: "-214748365") + self.xorTest(lhs: "-1288490192", rhs: "-1073741828", expecting: "214748364") + self.xorTest(lhs: "-1288490192", rhs: "858993463", expecting: "-2147483641") + self.xorTest(lhs: "-1288490192", rhs: "-858993464", expecting: "2147483640") + self.xorTest(lhs: "-1288490192", rhs: "644245099", expecting: "-1789569701") + self.xorTest(lhs: "-1288490192", rhs: "-644245100", expecting: "1789569700") + self.xorTest(lhs: "-1288490192", rhs: "429496735", expecting: "-1431655761") + self.xorTest(lhs: "-1288490192", rhs: "-429496736", expecting: "1431655760") + self.xorTest(lhs: "-1288490192", rhs: "214748371", expecting: "-1073741853") + self.xorTest(lhs: "-1288490192", rhs: "-214748372", expecting: "1073741852") + self.xorTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.xorTest(lhs: "1073741827", rhs: "1", expecting: "1073741826") + self.xorTest(lhs: "1073741827", rhs: "-1", expecting: "-1073741828") + self.xorTest(lhs: "1073741827", rhs: "2147483647", expecting: "1073741820") + self.xorTest(lhs: "1073741827", rhs: "-2147483648", expecting: "-1073741821") + self.xorTest(lhs: "1073741827", rhs: "1932735283", expecting: "858993456") + self.xorTest(lhs: "1073741827", rhs: "-1932735284", expecting: "-858993457") + self.xorTest(lhs: "1073741827", rhs: "1717986919", expecting: "644245092") + self.xorTest(lhs: "1073741827", rhs: "-1717986920", expecting: "-644245093") + self.xorTest(lhs: "1073741827", rhs: "1503238555", expecting: "429496728") + self.xorTest(lhs: "1073741827", rhs: "-1503238556", expecting: "-429496729") + self.xorTest(lhs: "1073741827", rhs: "1288490191", expecting: "214748364") + self.xorTest(lhs: "1073741827", rhs: "-1288490192", expecting: "-214748365") + self.xorTest(lhs: "1073741827", rhs: "1073741827", expecting: "0") + self.xorTest(lhs: "1073741827", rhs: "-1073741828", expecting: "-1") + self.xorTest(lhs: "1073741827", rhs: "858993463", expecting: "1932735284") + self.xorTest(lhs: "1073741827", rhs: "-858993464", expecting: "-1932735285") + self.xorTest(lhs: "1073741827", rhs: "644245099", expecting: "1717986920") + self.xorTest(lhs: "1073741827", rhs: "-644245100", expecting: "-1717986921") + self.xorTest(lhs: "1073741827", rhs: "429496735", expecting: "1503238556") + self.xorTest(lhs: "1073741827", rhs: "-429496736", expecting: "-1503238557") + self.xorTest(lhs: "1073741827", rhs: "214748371", expecting: "1288490192") + self.xorTest(lhs: "1073741827", rhs: "-214748372", expecting: "-1288490193") + self.xorTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.xorTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741827") + self.xorTest(lhs: "-1073741828", rhs: "-1", expecting: "1073741827") + self.xorTest(lhs: "-1073741828", rhs: "2147483647", expecting: "-1073741821") + self.xorTest(lhs: "-1073741828", rhs: "-2147483648", expecting: "1073741820") + self.xorTest(lhs: "-1073741828", rhs: "1932735283", expecting: "-858993457") + self.xorTest(lhs: "-1073741828", rhs: "-1932735284", expecting: "858993456") + self.xorTest(lhs: "-1073741828", rhs: "1717986919", expecting: "-644245093") + self.xorTest(lhs: "-1073741828", rhs: "-1717986920", expecting: "644245092") + self.xorTest(lhs: "-1073741828", rhs: "1503238555", expecting: "-429496729") + self.xorTest(lhs: "-1073741828", rhs: "-1503238556", expecting: "429496728") + self.xorTest(lhs: "-1073741828", rhs: "1288490191", expecting: "-214748365") + self.xorTest(lhs: "-1073741828", rhs: "-1288490192", expecting: "214748364") + self.xorTest(lhs: "-1073741828", rhs: "1073741827", expecting: "-1") + self.xorTest(lhs: "-1073741828", rhs: "-1073741828", expecting: "0") + self.xorTest(lhs: "-1073741828", rhs: "858993463", expecting: "-1932735285") + self.xorTest(lhs: "-1073741828", rhs: "-858993464", expecting: "1932735284") + self.xorTest(lhs: "-1073741828", rhs: "644245099", expecting: "-1717986921") + self.xorTest(lhs: "-1073741828", rhs: "-644245100", expecting: "1717986920") + self.xorTest(lhs: "-1073741828", rhs: "429496735", expecting: "-1503238557") + self.xorTest(lhs: "-1073741828", rhs: "-429496736", expecting: "1503238556") + self.xorTest(lhs: "-1073741828", rhs: "214748371", expecting: "-1288490193") + self.xorTest(lhs: "-1073741828", rhs: "-214748372", expecting: "1288490192") + self.xorTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.xorTest(lhs: "858993463", rhs: "1", expecting: "858993462") + self.xorTest(lhs: "858993463", rhs: "-1", expecting: "-858993464") + self.xorTest(lhs: "858993463", rhs: "2147483647", expecting: "1288490184") + self.xorTest(lhs: "858993463", rhs: "-2147483648", expecting: "-1288490185") + self.xorTest(lhs: "858993463", rhs: "1932735283", expecting: "1073741828") + self.xorTest(lhs: "858993463", rhs: "-1932735284", expecting: "-1073741829") + self.xorTest(lhs: "858993463", rhs: "1717986919", expecting: "1431655760") + self.xorTest(lhs: "858993463", rhs: "-1717986920", expecting: "-1431655761") + self.xorTest(lhs: "858993463", rhs: "1503238555", expecting: "1789569708") + self.xorTest(lhs: "858993463", rhs: "-1503238556", expecting: "-1789569709") + self.xorTest(lhs: "858993463", rhs: "1288490191", expecting: "2147483640") + self.xorTest(lhs: "858993463", rhs: "-1288490192", expecting: "-2147483641") + self.xorTest(lhs: "858993463", rhs: "1073741827", expecting: "1932735284") + self.xorTest(lhs: "858993463", rhs: "-1073741828", expecting: "-1932735285") + self.xorTest(lhs: "858993463", rhs: "858993463", expecting: "0") + self.xorTest(lhs: "858993463", rhs: "-858993464", expecting: "-1") + self.xorTest(lhs: "858993463", rhs: "644245099", expecting: "357913948") + self.xorTest(lhs: "858993463", rhs: "-644245100", expecting: "-357913949") + self.xorTest(lhs: "858993463", rhs: "429496735", expecting: "715827880") + self.xorTest(lhs: "858993463", rhs: "-429496736", expecting: "-715827881") + self.xorTest(lhs: "858993463", rhs: "214748371", expecting: "1073741796") + self.xorTest(lhs: "858993463", rhs: "-214748372", expecting: "-1073741797") + self.xorTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.xorTest(lhs: "-858993464", rhs: "1", expecting: "-858993463") + self.xorTest(lhs: "-858993464", rhs: "-1", expecting: "858993463") + self.xorTest(lhs: "-858993464", rhs: "2147483647", expecting: "-1288490185") + self.xorTest(lhs: "-858993464", rhs: "-2147483648", expecting: "1288490184") + self.xorTest(lhs: "-858993464", rhs: "1932735283", expecting: "-1073741829") + self.xorTest(lhs: "-858993464", rhs: "-1932735284", expecting: "1073741828") + self.xorTest(lhs: "-858993464", rhs: "1717986919", expecting: "-1431655761") + self.xorTest(lhs: "-858993464", rhs: "-1717986920", expecting: "1431655760") + self.xorTest(lhs: "-858993464", rhs: "1503238555", expecting: "-1789569709") + self.xorTest(lhs: "-858993464", rhs: "-1503238556", expecting: "1789569708") + self.xorTest(lhs: "-858993464", rhs: "1288490191", expecting: "-2147483641") + self.xorTest(lhs: "-858993464", rhs: "-1288490192", expecting: "2147483640") + self.xorTest(lhs: "-858993464", rhs: "1073741827", expecting: "-1932735285") + self.xorTest(lhs: "-858993464", rhs: "-1073741828", expecting: "1932735284") + self.xorTest(lhs: "-858993464", rhs: "858993463", expecting: "-1") + self.xorTest(lhs: "-858993464", rhs: "-858993464", expecting: "0") + self.xorTest(lhs: "-858993464", rhs: "644245099", expecting: "-357913949") + self.xorTest(lhs: "-858993464", rhs: "-644245100", expecting: "357913948") + self.xorTest(lhs: "-858993464", rhs: "429496735", expecting: "-715827881") + self.xorTest(lhs: "-858993464", rhs: "-429496736", expecting: "715827880") + self.xorTest(lhs: "-858993464", rhs: "214748371", expecting: "-1073741797") + self.xorTest(lhs: "-858993464", rhs: "-214748372", expecting: "1073741796") + self.xorTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.xorTest(lhs: "644245099", rhs: "1", expecting: "644245098") + self.xorTest(lhs: "644245099", rhs: "-1", expecting: "-644245100") + self.xorTest(lhs: "644245099", rhs: "2147483647", expecting: "1503238548") + self.xorTest(lhs: "644245099", rhs: "-2147483648", expecting: "-1503238549") + self.xorTest(lhs: "644245099", rhs: "1932735283", expecting: "1431655768") + self.xorTest(lhs: "644245099", rhs: "-1932735284", expecting: "-1431655769") + self.xorTest(lhs: "644245099", rhs: "1717986919", expecting: "1073741836") + self.xorTest(lhs: "644245099", rhs: "-1717986920", expecting: "-1073741837") + self.xorTest(lhs: "644245099", rhs: "1503238555", expecting: "2147483632") + self.xorTest(lhs: "644245099", rhs: "-1503238556", expecting: "-2147483633") + self.xorTest(lhs: "644245099", rhs: "1288490191", expecting: "1789569700") + self.xorTest(lhs: "644245099", rhs: "-1288490192", expecting: "-1789569701") + self.xorTest(lhs: "644245099", rhs: "1073741827", expecting: "1717986920") + self.xorTest(lhs: "644245099", rhs: "-1073741828", expecting: "-1717986921") + self.xorTest(lhs: "644245099", rhs: "858993463", expecting: "357913948") + self.xorTest(lhs: "644245099", rhs: "-858993464", expecting: "-357913949") + self.xorTest(lhs: "644245099", rhs: "644245099", expecting: "0") + self.xorTest(lhs: "644245099", rhs: "-644245100", expecting: "-1") + self.xorTest(lhs: "644245099", rhs: "429496735", expecting: "1073741812") + self.xorTest(lhs: "644245099", rhs: "-429496736", expecting: "-1073741813") + self.xorTest(lhs: "644245099", rhs: "214748371", expecting: "715827896") + self.xorTest(lhs: "644245099", rhs: "-214748372", expecting: "-715827897") + self.xorTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.xorTest(lhs: "-644245100", rhs: "1", expecting: "-644245099") + self.xorTest(lhs: "-644245100", rhs: "-1", expecting: "644245099") + self.xorTest(lhs: "-644245100", rhs: "2147483647", expecting: "-1503238549") + self.xorTest(lhs: "-644245100", rhs: "-2147483648", expecting: "1503238548") + self.xorTest(lhs: "-644245100", rhs: "1932735283", expecting: "-1431655769") + self.xorTest(lhs: "-644245100", rhs: "-1932735284", expecting: "1431655768") + self.xorTest(lhs: "-644245100", rhs: "1717986919", expecting: "-1073741837") + self.xorTest(lhs: "-644245100", rhs: "-1717986920", expecting: "1073741836") + self.xorTest(lhs: "-644245100", rhs: "1503238555", expecting: "-2147483633") + self.xorTest(lhs: "-644245100", rhs: "-1503238556", expecting: "2147483632") + self.xorTest(lhs: "-644245100", rhs: "1288490191", expecting: "-1789569701") + self.xorTest(lhs: "-644245100", rhs: "-1288490192", expecting: "1789569700") + self.xorTest(lhs: "-644245100", rhs: "1073741827", expecting: "-1717986921") + self.xorTest(lhs: "-644245100", rhs: "-1073741828", expecting: "1717986920") + self.xorTest(lhs: "-644245100", rhs: "858993463", expecting: "-357913949") + self.xorTest(lhs: "-644245100", rhs: "-858993464", expecting: "357913948") + self.xorTest(lhs: "-644245100", rhs: "644245099", expecting: "-1") + self.xorTest(lhs: "-644245100", rhs: "-644245100", expecting: "0") + self.xorTest(lhs: "-644245100", rhs: "429496735", expecting: "-1073741813") + self.xorTest(lhs: "-644245100", rhs: "-429496736", expecting: "1073741812") + self.xorTest(lhs: "-644245100", rhs: "214748371", expecting: "-715827897") + self.xorTest(lhs: "-644245100", rhs: "-214748372", expecting: "715827896") + self.xorTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.xorTest(lhs: "429496735", rhs: "1", expecting: "429496734") + self.xorTest(lhs: "429496735", rhs: "-1", expecting: "-429496736") + self.xorTest(lhs: "429496735", rhs: "2147483647", expecting: "1717986912") + self.xorTest(lhs: "429496735", rhs: "-2147483648", expecting: "-1717986913") + self.xorTest(lhs: "429496735", rhs: "1932735283", expecting: "1789569708") + self.xorTest(lhs: "429496735", rhs: "-1932735284", expecting: "-1789569709") + self.xorTest(lhs: "429496735", rhs: "1717986919", expecting: "2147483640") + self.xorTest(lhs: "429496735", rhs: "-1717986920", expecting: "-2147483641") + self.xorTest(lhs: "429496735", rhs: "1503238555", expecting: "1073741828") + self.xorTest(lhs: "429496735", rhs: "-1503238556", expecting: "-1073741829") + self.xorTest(lhs: "429496735", rhs: "1288490191", expecting: "1431655760") + self.xorTest(lhs: "429496735", rhs: "-1288490192", expecting: "-1431655761") + self.xorTest(lhs: "429496735", rhs: "1073741827", expecting: "1503238556") + self.xorTest(lhs: "429496735", rhs: "-1073741828", expecting: "-1503238557") + self.xorTest(lhs: "429496735", rhs: "858993463", expecting: "715827880") + self.xorTest(lhs: "429496735", rhs: "-858993464", expecting: "-715827881") + self.xorTest(lhs: "429496735", rhs: "644245099", expecting: "1073741812") + self.xorTest(lhs: "429496735", rhs: "-644245100", expecting: "-1073741813") + self.xorTest(lhs: "429496735", rhs: "429496735", expecting: "0") + self.xorTest(lhs: "429496735", rhs: "-429496736", expecting: "-1") + self.xorTest(lhs: "429496735", rhs: "214748371", expecting: "357913932") + self.xorTest(lhs: "429496735", rhs: "-214748372", expecting: "-357913933") + self.xorTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.xorTest(lhs: "-429496736", rhs: "1", expecting: "-429496735") + self.xorTest(lhs: "-429496736", rhs: "-1", expecting: "429496735") + self.xorTest(lhs: "-429496736", rhs: "2147483647", expecting: "-1717986913") + self.xorTest(lhs: "-429496736", rhs: "-2147483648", expecting: "1717986912") + self.xorTest(lhs: "-429496736", rhs: "1932735283", expecting: "-1789569709") + self.xorTest(lhs: "-429496736", rhs: "-1932735284", expecting: "1789569708") + self.xorTest(lhs: "-429496736", rhs: "1717986919", expecting: "-2147483641") + self.xorTest(lhs: "-429496736", rhs: "-1717986920", expecting: "2147483640") + self.xorTest(lhs: "-429496736", rhs: "1503238555", expecting: "-1073741829") + self.xorTest(lhs: "-429496736", rhs: "-1503238556", expecting: "1073741828") + self.xorTest(lhs: "-429496736", rhs: "1288490191", expecting: "-1431655761") + self.xorTest(lhs: "-429496736", rhs: "-1288490192", expecting: "1431655760") + self.xorTest(lhs: "-429496736", rhs: "1073741827", expecting: "-1503238557") + self.xorTest(lhs: "-429496736", rhs: "-1073741828", expecting: "1503238556") + self.xorTest(lhs: "-429496736", rhs: "858993463", expecting: "-715827881") + self.xorTest(lhs: "-429496736", rhs: "-858993464", expecting: "715827880") + self.xorTest(lhs: "-429496736", rhs: "644245099", expecting: "-1073741813") + self.xorTest(lhs: "-429496736", rhs: "-644245100", expecting: "1073741812") + self.xorTest(lhs: "-429496736", rhs: "429496735", expecting: "-1") + self.xorTest(lhs: "-429496736", rhs: "-429496736", expecting: "0") + self.xorTest(lhs: "-429496736", rhs: "214748371", expecting: "-357913933") + self.xorTest(lhs: "-429496736", rhs: "-214748372", expecting: "357913932") + self.xorTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.xorTest(lhs: "214748371", rhs: "1", expecting: "214748370") + self.xorTest(lhs: "214748371", rhs: "-1", expecting: "-214748372") + self.xorTest(lhs: "214748371", rhs: "2147483647", expecting: "1932735276") + self.xorTest(lhs: "214748371", rhs: "-2147483648", expecting: "-1932735277") + self.xorTest(lhs: "214748371", rhs: "1932735283", expecting: "2147483616") + self.xorTest(lhs: "214748371", rhs: "-1932735284", expecting: "-2147483617") + self.xorTest(lhs: "214748371", rhs: "1717986919", expecting: "1789569716") + self.xorTest(lhs: "214748371", rhs: "-1717986920", expecting: "-1789569717") + self.xorTest(lhs: "214748371", rhs: "1503238555", expecting: "1431655752") + self.xorTest(lhs: "214748371", rhs: "-1503238556", expecting: "-1431655753") + self.xorTest(lhs: "214748371", rhs: "1288490191", expecting: "1073741852") + self.xorTest(lhs: "214748371", rhs: "-1288490192", expecting: "-1073741853") + self.xorTest(lhs: "214748371", rhs: "1073741827", expecting: "1288490192") + self.xorTest(lhs: "214748371", rhs: "-1073741828", expecting: "-1288490193") + self.xorTest(lhs: "214748371", rhs: "858993463", expecting: "1073741796") + self.xorTest(lhs: "214748371", rhs: "-858993464", expecting: "-1073741797") + self.xorTest(lhs: "214748371", rhs: "644245099", expecting: "715827896") + self.xorTest(lhs: "214748371", rhs: "-644245100", expecting: "-715827897") + self.xorTest(lhs: "214748371", rhs: "429496735", expecting: "357913932") + self.xorTest(lhs: "214748371", rhs: "-429496736", expecting: "-357913933") + self.xorTest(lhs: "214748371", rhs: "214748371", expecting: "0") + self.xorTest(lhs: "214748371", rhs: "-214748372", expecting: "-1") + self.xorTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.xorTest(lhs: "-214748372", rhs: "1", expecting: "-214748371") + self.xorTest(lhs: "-214748372", rhs: "-1", expecting: "214748371") + self.xorTest(lhs: "-214748372", rhs: "2147483647", expecting: "-1932735277") + self.xorTest(lhs: "-214748372", rhs: "-2147483648", expecting: "1932735276") + self.xorTest(lhs: "-214748372", rhs: "1932735283", expecting: "-2147483617") + self.xorTest(lhs: "-214748372", rhs: "-1932735284", expecting: "2147483616") + self.xorTest(lhs: "-214748372", rhs: "1717986919", expecting: "-1789569717") + self.xorTest(lhs: "-214748372", rhs: "-1717986920", expecting: "1789569716") + self.xorTest(lhs: "-214748372", rhs: "1503238555", expecting: "-1431655753") + self.xorTest(lhs: "-214748372", rhs: "-1503238556", expecting: "1431655752") + self.xorTest(lhs: "-214748372", rhs: "1288490191", expecting: "-1073741853") + self.xorTest(lhs: "-214748372", rhs: "-1288490192", expecting: "1073741852") + self.xorTest(lhs: "-214748372", rhs: "1073741827", expecting: "-1288490193") + self.xorTest(lhs: "-214748372", rhs: "-1073741828", expecting: "1288490192") + self.xorTest(lhs: "-214748372", rhs: "858993463", expecting: "-1073741797") + self.xorTest(lhs: "-214748372", rhs: "-858993464", expecting: "1073741796") + self.xorTest(lhs: "-214748372", rhs: "644245099", expecting: "-715827897") + self.xorTest(lhs: "-214748372", rhs: "-644245100", expecting: "715827896") + self.xorTest(lhs: "-214748372", rhs: "429496735", expecting: "-357913933") + self.xorTest(lhs: "-214748372", rhs: "-429496736", expecting: "357913932") + self.xorTest(lhs: "-214748372", rhs: "214748371", expecting: "-1") + self.xorTest(lhs: "-214748372", rhs: "-214748372", expecting: "0") + } + + func test_xor_smi_heap() { + self.xorTest(lhs: "0", rhs: "0", expecting: "0") + self.xorTest(lhs: "0", rhs: "1", expecting: "1") + self.xorTest(lhs: "0", rhs: "-1", expecting: "-1") + self.xorTest(lhs: "0", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.xorTest(lhs: "0", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.xorTest(lhs: "0", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.xorTest(lhs: "0", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.xorTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.xorTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.xorTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "0", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.xorTest(lhs: "0", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.xorTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.xorTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.xorTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "0", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.xorTest(lhs: "0", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.xorTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.xorTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.xorTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "0", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.xorTest(lhs: "0", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.xorTest(lhs: "1", rhs: "0", expecting: "1") + self.xorTest(lhs: "1", rhs: "1", expecting: "0") + self.xorTest(lhs: "1", rhs: "-1", expecting: "-2") + self.xorTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551614") + self.xorTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.xorTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.xorTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551618") + self.xorTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.xorTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.xorTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551622") + self.xorTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551624") + self.xorTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.xorTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.xorTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.xorTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551630") + self.xorTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.xorTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.xorTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551634") + self.xorTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551636") + self.xorTest(lhs: "-1", rhs: "0", expecting: "-1") + self.xorTest(lhs: "-1", rhs: "1", expecting: "-2") + self.xorTest(lhs: "-1", rhs: "-1", expecting: "0") + self.xorTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-18446744073709551616") + self.xorTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "18446744073709551614") + self.xorTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-18446744073709551618") + self.xorTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "18446744073709551616") + self.xorTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763075") + self.xorTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763073") + self.xorTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-18446744073709551624") + self.xorTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "18446744073709551622") + self.xorTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072771") + self.xorTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072769") + self.xorTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-18446744073709551630") + self.xorTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "18446744073709551628") + self.xorTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382467") + self.xorTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382465") + self.xorTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-18446744073709551636") + self.xorTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "18446744073709551634") + self.xorTest(lhs: "2147483647", rhs: "0", expecting: "2147483647") + self.xorTest(lhs: "2147483647", rhs: "1", expecting: "2147483646") + self.xorTest(lhs: "2147483647", rhs: "-1", expecting: "-2147483648") + self.xorTest(lhs: "2147483647", rhs: "18446744073709551615", expecting: "18446744071562067968") + self.xorTest(lhs: "2147483647", rhs: "-18446744073709551615", expecting: "-18446744071562067970") + self.xorTest(lhs: "2147483647", rhs: "18446744073709551617", expecting: "18446744075857035262") + self.xorTest(lhs: "2147483647", rhs: "-18446744073709551617", expecting: "-18446744075857035264") + self.xorTest(lhs: "2147483647", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507625246717") + self.xorTest(lhs: "2147483647", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507625246719") + self.xorTest(lhs: "2147483647", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256008867834") + self.xorTest(lhs: "2147483647", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256008867836") + self.xorTest(lhs: "2147483647", rhs: "18446744073709551623", expecting: "18446744075857035256") + self.xorTest(lhs: "2147483647", rhs: "-18446744073709551623", expecting: "-18446744075857035258") + self.xorTest(lhs: "2147483647", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949882556413") + self.xorTest(lhs: "2147483647", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949882556415") + self.xorTest(lhs: "2147483647", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404360826868") + self.xorTest(lhs: "2147483647", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404360826870") + self.xorTest(lhs: "2147483647", rhs: "18446744073709551629", expecting: "18446744075857035250") + self.xorTest(lhs: "2147483647", rhs: "-18446744073709551629", expecting: "-18446744075857035252") + self.xorTest(lhs: "2147483647", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280392139866109") + self.xorTest(lhs: "2147483647", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392139866111") + self.xorTest(lhs: "2147483647", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552712785902") + self.xorTest(lhs: "2147483647", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552712785904") + self.xorTest(lhs: "2147483647", rhs: "18446744073709551635", expecting: "18446744075857035244") + self.xorTest(lhs: "2147483647", rhs: "-18446744073709551635", expecting: "-18446744075857035246") + self.xorTest(lhs: "-2147483648", rhs: "0", expecting: "-2147483648") + self.xorTest(lhs: "-2147483648", rhs: "1", expecting: "-2147483647") + self.xorTest(lhs: "-2147483648", rhs: "-1", expecting: "2147483647") + self.xorTest(lhs: "-2147483648", rhs: "18446744073709551615", expecting: "-18446744071562067969") + self.xorTest(lhs: "-2147483648", rhs: "-18446744073709551615", expecting: "18446744071562067969") + self.xorTest(lhs: "-2147483648", rhs: "18446744073709551617", expecting: "-18446744075857035263") + self.xorTest(lhs: "-2147483648", rhs: "-18446744073709551617", expecting: "18446744075857035263") + self.xorTest(lhs: "-2147483648", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507625246718") + self.xorTest(lhs: "-2147483648", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351507625246718") + self.xorTest(lhs: "-2147483648", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256008867835") + self.xorTest(lhs: "-2147483648", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256008867835") + self.xorTest(lhs: "-2147483648", rhs: "18446744073709551623", expecting: "-18446744075857035257") + self.xorTest(lhs: "-2147483648", rhs: "-18446744073709551623", expecting: "18446744075857035257") + self.xorTest(lhs: "-2147483648", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949882556414") + self.xorTest(lhs: "-2147483648", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949882556414") + self.xorTest(lhs: "-2147483648", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404360826869") + self.xorTest(lhs: "-2147483648", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404360826869") + self.xorTest(lhs: "-2147483648", rhs: "18446744073709551629", expecting: "-18446744075857035251") + self.xorTest(lhs: "-2147483648", rhs: "-18446744073709551629", expecting: "18446744075857035251") + self.xorTest(lhs: "-2147483648", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392139866110") + self.xorTest(lhs: "-2147483648", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280392139866110") + self.xorTest(lhs: "-2147483648", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552712785903") + self.xorTest(lhs: "-2147483648", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552712785903") + self.xorTest(lhs: "-2147483648", rhs: "18446744073709551635", expecting: "-18446744075857035245") + self.xorTest(lhs: "-2147483648", rhs: "-18446744073709551635", expecting: "18446744075857035245") + self.xorTest(lhs: "1932735283", rhs: "0", expecting: "1932735283") + self.xorTest(lhs: "1932735283", rhs: "1", expecting: "1932735282") + self.xorTest(lhs: "1932735283", rhs: "-1", expecting: "-1932735284") + self.xorTest(lhs: "1932735283", rhs: "18446744073709551615", expecting: "18446744071776816332") + self.xorTest(lhs: "1932735283", rhs: "-18446744073709551615", expecting: "-18446744071776816334") + self.xorTest(lhs: "1932735283", rhs: "18446744073709551617", expecting: "18446744075642286898") + self.xorTest(lhs: "1932735283", rhs: "-18446744073709551617", expecting: "-18446744075642286900") + self.xorTest(lhs: "1932735283", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507410498353") + self.xorTest(lhs: "1932735283", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507410498355") + self.xorTest(lhs: "1932735283", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255794119478") + self.xorTest(lhs: "1932735283", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255794119480") + self.xorTest(lhs: "1932735283", rhs: "18446744073709551623", expecting: "18446744075642286900") + self.xorTest(lhs: "1932735283", rhs: "-18446744073709551623", expecting: "-18446744075642286902") + self.xorTest(lhs: "1932735283", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949667808049") + self.xorTest(lhs: "1932735283", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949667808051") + self.xorTest(lhs: "1932735283", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404146078520") + self.xorTest(lhs: "1932735283", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404146078522") + self.xorTest(lhs: "1932735283", rhs: "18446744073709551629", expecting: "18446744075642286910") + self.xorTest(lhs: "1932735283", rhs: "-18446744073709551629", expecting: "-18446744075642286912") + self.xorTest(lhs: "1932735283", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391925117745") + self.xorTest(lhs: "1932735283", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391925117747") + self.xorTest(lhs: "1932735283", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552498037538") + self.xorTest(lhs: "1932735283", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552498037540") + self.xorTest(lhs: "1932735283", rhs: "18446744073709551635", expecting: "18446744075642286880") + self.xorTest(lhs: "1932735283", rhs: "-18446744073709551635", expecting: "-18446744075642286882") + self.xorTest(lhs: "-1932735284", rhs: "0", expecting: "-1932735284") + self.xorTest(lhs: "-1932735284", rhs: "1", expecting: "-1932735283") + self.xorTest(lhs: "-1932735284", rhs: "-1", expecting: "1932735283") + self.xorTest(lhs: "-1932735284", rhs: "18446744073709551615", expecting: "-18446744071776816333") + self.xorTest(lhs: "-1932735284", rhs: "-18446744073709551615", expecting: "18446744071776816333") + self.xorTest(lhs: "-1932735284", rhs: "18446744073709551617", expecting: "-18446744075642286899") + self.xorTest(lhs: "-1932735284", rhs: "-18446744073709551617", expecting: "18446744075642286899") + self.xorTest(lhs: "-1932735284", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507410498354") + self.xorTest(lhs: "-1932735284", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351507410498354") + self.xorTest(lhs: "-1932735284", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255794119479") + self.xorTest(lhs: "-1932735284", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255794119479") + self.xorTest(lhs: "-1932735284", rhs: "18446744073709551623", expecting: "-18446744075642286901") + self.xorTest(lhs: "-1932735284", rhs: "-18446744073709551623", expecting: "18446744075642286901") + self.xorTest(lhs: "-1932735284", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949667808050") + self.xorTest(lhs: "-1932735284", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949667808050") + self.xorTest(lhs: "-1932735284", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404146078521") + self.xorTest(lhs: "-1932735284", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404146078521") + self.xorTest(lhs: "-1932735284", rhs: "18446744073709551629", expecting: "-18446744075642286911") + self.xorTest(lhs: "-1932735284", rhs: "-18446744073709551629", expecting: "18446744075642286911") + self.xorTest(lhs: "-1932735284", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391925117746") + self.xorTest(lhs: "-1932735284", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391925117746") + self.xorTest(lhs: "-1932735284", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552498037539") + self.xorTest(lhs: "-1932735284", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552498037539") + self.xorTest(lhs: "-1932735284", rhs: "18446744073709551635", expecting: "-18446744075642286881") + self.xorTest(lhs: "-1932735284", rhs: "-18446744073709551635", expecting: "18446744075642286881") + self.xorTest(lhs: "1717986919", rhs: "0", expecting: "1717986919") + self.xorTest(lhs: "1717986919", rhs: "1", expecting: "1717986918") + self.xorTest(lhs: "1717986919", rhs: "-1", expecting: "-1717986920") + self.xorTest(lhs: "1717986919", rhs: "18446744073709551615", expecting: "18446744071991564696") + self.xorTest(lhs: "1717986919", rhs: "-18446744073709551615", expecting: "-18446744071991564698") + self.xorTest(lhs: "1717986919", rhs: "18446744073709551617", expecting: "18446744075427538534") + self.xorTest(lhs: "1717986919", rhs: "-18446744073709551617", expecting: "-18446744075427538536") + self.xorTest(lhs: "1717986919", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749989") + self.xorTest(lhs: "1717986919", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507195749991") + self.xorTest(lhs: "1717986919", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371106") + self.xorTest(lhs: "1717986919", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255579371108") + self.xorTest(lhs: "1717986919", rhs: "18446744073709551623", expecting: "18446744075427538528") + self.xorTest(lhs: "1717986919", rhs: "-18446744073709551623", expecting: "-18446744075427538530") + self.xorTest(lhs: "1717986919", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059685") + self.xorTest(lhs: "1717986919", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949453059687") + self.xorTest(lhs: "1717986919", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330156") + self.xorTest(lhs: "1717986919", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403931330158") + self.xorTest(lhs: "1717986919", rhs: "18446744073709551629", expecting: "18446744075427538538") + self.xorTest(lhs: "1717986919", rhs: "-18446744073709551629", expecting: "-18446744075427538540") + self.xorTest(lhs: "1717986919", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369381") + self.xorTest(lhs: "1717986919", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391710369383") + self.xorTest(lhs: "1717986919", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289206") + self.xorTest(lhs: "1717986919", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552283289208") + self.xorTest(lhs: "1717986919", rhs: "18446744073709551635", expecting: "18446744075427538548") + self.xorTest(lhs: "1717986919", rhs: "-18446744073709551635", expecting: "-18446744075427538550") + self.xorTest(lhs: "-1717986920", rhs: "0", expecting: "-1717986920") + self.xorTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986919") + self.xorTest(lhs: "-1717986920", rhs: "-1", expecting: "1717986919") + self.xorTest(lhs: "-1717986920", rhs: "18446744073709551615", expecting: "-18446744071991564697") + self.xorTest(lhs: "-1717986920", rhs: "-18446744073709551615", expecting: "18446744071991564697") + self.xorTest(lhs: "-1717986920", rhs: "18446744073709551617", expecting: "-18446744075427538535") + self.xorTest(lhs: "-1717986920", rhs: "-18446744073709551617", expecting: "18446744075427538535") + self.xorTest(lhs: "-1717986920", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507195749990") + self.xorTest(lhs: "-1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749990") + self.xorTest(lhs: "-1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255579371107") + self.xorTest(lhs: "-1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371107") + self.xorTest(lhs: "-1717986920", rhs: "18446744073709551623", expecting: "-18446744075427538529") + self.xorTest(lhs: "-1717986920", rhs: "-18446744073709551623", expecting: "18446744075427538529") + self.xorTest(lhs: "-1717986920", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949453059686") + self.xorTest(lhs: "-1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059686") + self.xorTest(lhs: "-1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403931330157") + self.xorTest(lhs: "-1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330157") + self.xorTest(lhs: "-1717986920", rhs: "18446744073709551629", expecting: "-18446744075427538539") + self.xorTest(lhs: "-1717986920", rhs: "-18446744073709551629", expecting: "18446744075427538539") + self.xorTest(lhs: "-1717986920", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391710369382") + self.xorTest(lhs: "-1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369382") + self.xorTest(lhs: "-1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552283289207") + self.xorTest(lhs: "-1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289207") + self.xorTest(lhs: "-1717986920", rhs: "18446744073709551635", expecting: "-18446744075427538549") + self.xorTest(lhs: "-1717986920", rhs: "-18446744073709551635", expecting: "18446744075427538549") + self.xorTest(lhs: "1503238555", rhs: "0", expecting: "1503238555") + self.xorTest(lhs: "1503238555", rhs: "1", expecting: "1503238554") + self.xorTest(lhs: "1503238555", rhs: "-1", expecting: "-1503238556") + self.xorTest(lhs: "1503238555", rhs: "18446744073709551615", expecting: "18446744072206313060") + self.xorTest(lhs: "1503238555", rhs: "-18446744073709551615", expecting: "-18446744072206313062") + self.xorTest(lhs: "1503238555", rhs: "18446744073709551617", expecting: "18446744075212790170") + self.xorTest(lhs: "1503238555", rhs: "-18446744073709551617", expecting: "-18446744075212790172") + self.xorTest(lhs: "1503238555", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506981001625") + self.xorTest(lhs: "1503238555", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506981001627") + self.xorTest(lhs: "1503238555", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255364622750") + self.xorTest(lhs: "1503238555", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255364622752") + self.xorTest(lhs: "1503238555", rhs: "18446744073709551623", expecting: "18446744075212790172") + self.xorTest(lhs: "1503238555", rhs: "-18446744073709551623", expecting: "-18446744075212790174") + self.xorTest(lhs: "1503238555", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949238311321") + self.xorTest(lhs: "1503238555", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949238311323") + self.xorTest(lhs: "1503238555", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403716581776") + self.xorTest(lhs: "1503238555", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403716581778") + self.xorTest(lhs: "1503238555", rhs: "18446744073709551629", expecting: "18446744075212790166") + self.xorTest(lhs: "1503238555", rhs: "-18446744073709551629", expecting: "-18446744075212790168") + self.xorTest(lhs: "1503238555", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391495621017") + self.xorTest(lhs: "1503238555", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391495621019") + self.xorTest(lhs: "1503238555", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552068540810") + self.xorTest(lhs: "1503238555", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552068540812") + self.xorTest(lhs: "1503238555", rhs: "18446744073709551635", expecting: "18446744075212790152") + self.xorTest(lhs: "1503238555", rhs: "-18446744073709551635", expecting: "-18446744075212790154") + self.xorTest(lhs: "-1503238556", rhs: "0", expecting: "-1503238556") + self.xorTest(lhs: "-1503238556", rhs: "1", expecting: "-1503238555") + self.xorTest(lhs: "-1503238556", rhs: "-1", expecting: "1503238555") + self.xorTest(lhs: "-1503238556", rhs: "18446744073709551615", expecting: "-18446744072206313061") + self.xorTest(lhs: "-1503238556", rhs: "-18446744073709551615", expecting: "18446744072206313061") + self.xorTest(lhs: "-1503238556", rhs: "18446744073709551617", expecting: "-18446744075212790171") + self.xorTest(lhs: "-1503238556", rhs: "-18446744073709551617", expecting: "18446744075212790171") + self.xorTest(lhs: "-1503238556", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506981001626") + self.xorTest(lhs: "-1503238556", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506981001626") + self.xorTest(lhs: "-1503238556", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255364622751") + self.xorTest(lhs: "-1503238556", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255364622751") + self.xorTest(lhs: "-1503238556", rhs: "18446744073709551623", expecting: "-18446744075212790173") + self.xorTest(lhs: "-1503238556", rhs: "-18446744073709551623", expecting: "18446744075212790173") + self.xorTest(lhs: "-1503238556", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949238311322") + self.xorTest(lhs: "-1503238556", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949238311322") + self.xorTest(lhs: "-1503238556", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403716581777") + self.xorTest(lhs: "-1503238556", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403716581777") + self.xorTest(lhs: "-1503238556", rhs: "18446744073709551629", expecting: "-18446744075212790167") + self.xorTest(lhs: "-1503238556", rhs: "-18446744073709551629", expecting: "18446744075212790167") + self.xorTest(lhs: "-1503238556", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391495621018") + self.xorTest(lhs: "-1503238556", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391495621018") + self.xorTest(lhs: "-1503238556", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552068540811") + self.xorTest(lhs: "-1503238556", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552068540811") + self.xorTest(lhs: "-1503238556", rhs: "18446744073709551635", expecting: "-18446744075212790153") + self.xorTest(lhs: "-1503238556", rhs: "-18446744073709551635", expecting: "18446744075212790153") + self.xorTest(lhs: "1288490191", rhs: "0", expecting: "1288490191") + self.xorTest(lhs: "1288490191", rhs: "1", expecting: "1288490190") + self.xorTest(lhs: "1288490191", rhs: "-1", expecting: "-1288490192") + self.xorTest(lhs: "1288490191", rhs: "18446744073709551615", expecting: "18446744072421061424") + self.xorTest(lhs: "1288490191", rhs: "-18446744073709551615", expecting: "-18446744072421061426") + self.xorTest(lhs: "1288490191", rhs: "18446744073709551617", expecting: "18446744074998041806") + self.xorTest(lhs: "1288490191", rhs: "-18446744073709551617", expecting: "-18446744074998041808") + self.xorTest(lhs: "1288490191", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506766253261") + self.xorTest(lhs: "1288490191", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506766253263") + self.xorTest(lhs: "1288490191", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255149874378") + self.xorTest(lhs: "1288490191", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255149874380") + self.xorTest(lhs: "1288490191", rhs: "18446744073709551623", expecting: "18446744074998041800") + self.xorTest(lhs: "1288490191", rhs: "-18446744073709551623", expecting: "-18446744074998041802") + self.xorTest(lhs: "1288490191", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949023562957") + self.xorTest(lhs: "1288490191", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949023562959") + self.xorTest(lhs: "1288490191", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403501833412") + self.xorTest(lhs: "1288490191", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403501833414") + self.xorTest(lhs: "1288490191", rhs: "18446744073709551629", expecting: "18446744074998041794") + self.xorTest(lhs: "1288490191", rhs: "-18446744073709551629", expecting: "-18446744074998041796") + self.xorTest(lhs: "1288490191", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391280872653") + self.xorTest(lhs: "1288490191", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391280872655") + self.xorTest(lhs: "1288490191", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551853792478") + self.xorTest(lhs: "1288490191", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551853792480") + self.xorTest(lhs: "1288490191", rhs: "18446744073709551635", expecting: "18446744074998041820") + self.xorTest(lhs: "1288490191", rhs: "-18446744073709551635", expecting: "-18446744074998041822") + self.xorTest(lhs: "-1288490192", rhs: "0", expecting: "-1288490192") + self.xorTest(lhs: "-1288490192", rhs: "1", expecting: "-1288490191") + self.xorTest(lhs: "-1288490192", rhs: "-1", expecting: "1288490191") + self.xorTest(lhs: "-1288490192", rhs: "18446744073709551615", expecting: "-18446744072421061425") + self.xorTest(lhs: "-1288490192", rhs: "-18446744073709551615", expecting: "18446744072421061425") + self.xorTest(lhs: "-1288490192", rhs: "18446744073709551617", expecting: "-18446744074998041807") + self.xorTest(lhs: "-1288490192", rhs: "-18446744073709551617", expecting: "18446744074998041807") + self.xorTest(lhs: "-1288490192", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506766253262") + self.xorTest(lhs: "-1288490192", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506766253262") + self.xorTest(lhs: "-1288490192", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255149874379") + self.xorTest(lhs: "-1288490192", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255149874379") + self.xorTest(lhs: "-1288490192", rhs: "18446744073709551623", expecting: "-18446744074998041801") + self.xorTest(lhs: "-1288490192", rhs: "-18446744073709551623", expecting: "18446744074998041801") + self.xorTest(lhs: "-1288490192", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949023562958") + self.xorTest(lhs: "-1288490192", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949023562958") + self.xorTest(lhs: "-1288490192", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403501833413") + self.xorTest(lhs: "-1288490192", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403501833413") + self.xorTest(lhs: "-1288490192", rhs: "18446744073709551629", expecting: "-18446744074998041795") + self.xorTest(lhs: "-1288490192", rhs: "-18446744073709551629", expecting: "18446744074998041795") + self.xorTest(lhs: "-1288490192", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391280872654") + self.xorTest(lhs: "-1288490192", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391280872654") + self.xorTest(lhs: "-1288490192", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551853792479") + self.xorTest(lhs: "-1288490192", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551853792479") + self.xorTest(lhs: "-1288490192", rhs: "18446744073709551635", expecting: "-18446744074998041821") + self.xorTest(lhs: "-1288490192", rhs: "-18446744073709551635", expecting: "18446744074998041821") + self.xorTest(lhs: "1073741827", rhs: "0", expecting: "1073741827") + self.xorTest(lhs: "1073741827", rhs: "1", expecting: "1073741826") + self.xorTest(lhs: "1073741827", rhs: "-1", expecting: "-1073741828") + self.xorTest(lhs: "1073741827", rhs: "18446744073709551615", expecting: "18446744072635809788") + self.xorTest(lhs: "1073741827", rhs: "-18446744073709551615", expecting: "-18446744072635809790") + self.xorTest(lhs: "1073741827", rhs: "18446744073709551617", expecting: "18446744074783293442") + self.xorTest(lhs: "1073741827", rhs: "-18446744073709551617", expecting: "-18446744074783293444") + self.xorTest(lhs: "1073741827", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506551504897") + self.xorTest(lhs: "1073741827", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506551504899") + self.xorTest(lhs: "1073741827", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254935126022") + self.xorTest(lhs: "1073741827", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254935126024") + self.xorTest(lhs: "1073741827", rhs: "18446744073709551623", expecting: "18446744074783293444") + self.xorTest(lhs: "1073741827", rhs: "-18446744073709551623", expecting: "-18446744074783293446") + self.xorTest(lhs: "1073741827", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948808814593") + self.xorTest(lhs: "1073741827", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948808814595") + self.xorTest(lhs: "1073741827", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403287085064") + self.xorTest(lhs: "1073741827", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403287085066") + self.xorTest(lhs: "1073741827", rhs: "18446744073709551629", expecting: "18446744074783293454") + self.xorTest(lhs: "1073741827", rhs: "-18446744073709551629", expecting: "-18446744074783293456") + self.xorTest(lhs: "1073741827", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391066124289") + self.xorTest(lhs: "1073741827", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391066124291") + self.xorTest(lhs: "1073741827", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551639044114") + self.xorTest(lhs: "1073741827", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551639044116") + self.xorTest(lhs: "1073741827", rhs: "18446744073709551635", expecting: "18446744074783293456") + self.xorTest(lhs: "1073741827", rhs: "-18446744073709551635", expecting: "-18446744074783293458") + self.xorTest(lhs: "-1073741828", rhs: "0", expecting: "-1073741828") + self.xorTest(lhs: "-1073741828", rhs: "1", expecting: "-1073741827") + self.xorTest(lhs: "-1073741828", rhs: "-1", expecting: "1073741827") + self.xorTest(lhs: "-1073741828", rhs: "18446744073709551615", expecting: "-18446744072635809789") + self.xorTest(lhs: "-1073741828", rhs: "-18446744073709551615", expecting: "18446744072635809789") + self.xorTest(lhs: "-1073741828", rhs: "18446744073709551617", expecting: "-18446744074783293443") + self.xorTest(lhs: "-1073741828", rhs: "-18446744073709551617", expecting: "18446744074783293443") + self.xorTest(lhs: "-1073741828", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506551504898") + self.xorTest(lhs: "-1073741828", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506551504898") + self.xorTest(lhs: "-1073741828", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254935126023") + self.xorTest(lhs: "-1073741828", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254935126023") + self.xorTest(lhs: "-1073741828", rhs: "18446744073709551623", expecting: "-18446744074783293445") + self.xorTest(lhs: "-1073741828", rhs: "-18446744073709551623", expecting: "18446744074783293445") + self.xorTest(lhs: "-1073741828", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948808814594") + self.xorTest(lhs: "-1073741828", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948808814594") + self.xorTest(lhs: "-1073741828", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403287085065") + self.xorTest(lhs: "-1073741828", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403287085065") + self.xorTest(lhs: "-1073741828", rhs: "18446744073709551629", expecting: "-18446744074783293455") + self.xorTest(lhs: "-1073741828", rhs: "-18446744073709551629", expecting: "18446744074783293455") + self.xorTest(lhs: "-1073741828", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391066124290") + self.xorTest(lhs: "-1073741828", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391066124290") + self.xorTest(lhs: "-1073741828", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551639044115") + self.xorTest(lhs: "-1073741828", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551639044115") + self.xorTest(lhs: "-1073741828", rhs: "18446744073709551635", expecting: "-18446744074783293457") + self.xorTest(lhs: "-1073741828", rhs: "-18446744073709551635", expecting: "18446744074783293457") + self.xorTest(lhs: "858993463", rhs: "0", expecting: "858993463") + self.xorTest(lhs: "858993463", rhs: "1", expecting: "858993462") + self.xorTest(lhs: "858993463", rhs: "-1", expecting: "-858993464") + self.xorTest(lhs: "858993463", rhs: "18446744073709551615", expecting: "18446744072850558152") + self.xorTest(lhs: "858993463", rhs: "-18446744073709551615", expecting: "-18446744072850558154") + self.xorTest(lhs: "858993463", rhs: "18446744073709551617", expecting: "18446744074568545078") + self.xorTest(lhs: "858993463", rhs: "-18446744073709551617", expecting: "-18446744074568545080") + self.xorTest(lhs: "858993463", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756533") + self.xorTest(lhs: "858993463", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756535") + self.xorTest(lhs: "858993463", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377650") + self.xorTest(lhs: "858993463", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377652") + self.xorTest(lhs: "858993463", rhs: "18446744073709551623", expecting: "18446744074568545072") + self.xorTest(lhs: "858993463", rhs: "-18446744073709551623", expecting: "-18446744074568545074") + self.xorTest(lhs: "858993463", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066229") + self.xorTest(lhs: "858993463", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066231") + self.xorTest(lhs: "858993463", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336700") + self.xorTest(lhs: "858993463", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336702") + self.xorTest(lhs: "858993463", rhs: "18446744073709551629", expecting: "18446744074568545082") + self.xorTest(lhs: "858993463", rhs: "-18446744073709551629", expecting: "-18446744074568545084") + self.xorTest(lhs: "858993463", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375925") + self.xorTest(lhs: "858993463", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375927") + self.xorTest(lhs: "858993463", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295718") + self.xorTest(lhs: "858993463", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295720") + self.xorTest(lhs: "858993463", rhs: "18446744073709551635", expecting: "18446744074568545060") + self.xorTest(lhs: "858993463", rhs: "-18446744073709551635", expecting: "-18446744074568545062") + self.xorTest(lhs: "-858993464", rhs: "0", expecting: "-858993464") + self.xorTest(lhs: "-858993464", rhs: "1", expecting: "-858993463") + self.xorTest(lhs: "-858993464", rhs: "-1", expecting: "858993463") + self.xorTest(lhs: "-858993464", rhs: "18446744073709551615", expecting: "-18446744072850558153") + self.xorTest(lhs: "-858993464", rhs: "-18446744073709551615", expecting: "18446744072850558153") + self.xorTest(lhs: "-858993464", rhs: "18446744073709551617", expecting: "-18446744074568545079") + self.xorTest(lhs: "-858993464", rhs: "-18446744073709551617", expecting: "18446744074568545079") + self.xorTest(lhs: "-858993464", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756534") + self.xorTest(lhs: "-858993464", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756534") + self.xorTest(lhs: "-858993464", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377651") + self.xorTest(lhs: "-858993464", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377651") + self.xorTest(lhs: "-858993464", rhs: "18446744073709551623", expecting: "-18446744074568545073") + self.xorTest(lhs: "-858993464", rhs: "-18446744073709551623", expecting: "18446744074568545073") + self.xorTest(lhs: "-858993464", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066230") + self.xorTest(lhs: "-858993464", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066230") + self.xorTest(lhs: "-858993464", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336701") + self.xorTest(lhs: "-858993464", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336701") + self.xorTest(lhs: "-858993464", rhs: "18446744073709551629", expecting: "-18446744074568545083") + self.xorTest(lhs: "-858993464", rhs: "-18446744073709551629", expecting: "18446744074568545083") + self.xorTest(lhs: "-858993464", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375926") + self.xorTest(lhs: "-858993464", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375926") + self.xorTest(lhs: "-858993464", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295719") + self.xorTest(lhs: "-858993464", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295719") + self.xorTest(lhs: "-858993464", rhs: "18446744073709551635", expecting: "-18446744074568545061") + self.xorTest(lhs: "-858993464", rhs: "-18446744073709551635", expecting: "18446744074568545061") + self.xorTest(lhs: "644245099", rhs: "0", expecting: "644245099") + self.xorTest(lhs: "644245099", rhs: "1", expecting: "644245098") + self.xorTest(lhs: "644245099", rhs: "-1", expecting: "-644245100") + self.xorTest(lhs: "644245099", rhs: "18446744073709551615", expecting: "18446744073065306516") + self.xorTest(lhs: "644245099", rhs: "-18446744073709551615", expecting: "-18446744073065306518") + self.xorTest(lhs: "644245099", rhs: "18446744073709551617", expecting: "18446744074353796714") + self.xorTest(lhs: "644245099", rhs: "-18446744073709551617", expecting: "-18446744074353796716") + self.xorTest(lhs: "644245099", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506122008169") + self.xorTest(lhs: "644245099", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506122008171") + self.xorTest(lhs: "644245099", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254505629294") + self.xorTest(lhs: "644245099", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254505629296") + self.xorTest(lhs: "644245099", rhs: "18446744073709551623", expecting: "18446744074353796716") + self.xorTest(lhs: "644245099", rhs: "-18446744073709551623", expecting: "-18446744074353796718") + self.xorTest(lhs: "644245099", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948379317865") + self.xorTest(lhs: "644245099", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948379317867") + self.xorTest(lhs: "644245099", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402857588320") + self.xorTest(lhs: "644245099", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402857588322") + self.xorTest(lhs: "644245099", rhs: "18446744073709551629", expecting: "18446744074353796710") + self.xorTest(lhs: "644245099", rhs: "-18446744073709551629", expecting: "-18446744074353796712") + self.xorTest(lhs: "644245099", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390636627561") + self.xorTest(lhs: "644245099", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390636627563") + self.xorTest(lhs: "644245099", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551209547386") + self.xorTest(lhs: "644245099", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551209547388") + self.xorTest(lhs: "644245099", rhs: "18446744073709551635", expecting: "18446744074353796728") + self.xorTest(lhs: "644245099", rhs: "-18446744073709551635", expecting: "-18446744074353796730") + self.xorTest(lhs: "-644245100", rhs: "0", expecting: "-644245100") + self.xorTest(lhs: "-644245100", rhs: "1", expecting: "-644245099") + self.xorTest(lhs: "-644245100", rhs: "-1", expecting: "644245099") + self.xorTest(lhs: "-644245100", rhs: "18446744073709551615", expecting: "-18446744073065306517") + self.xorTest(lhs: "-644245100", rhs: "-18446744073709551615", expecting: "18446744073065306517") + self.xorTest(lhs: "-644245100", rhs: "18446744073709551617", expecting: "-18446744074353796715") + self.xorTest(lhs: "-644245100", rhs: "-18446744073709551617", expecting: "18446744074353796715") + self.xorTest(lhs: "-644245100", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506122008170") + self.xorTest(lhs: "-644245100", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506122008170") + self.xorTest(lhs: "-644245100", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254505629295") + self.xorTest(lhs: "-644245100", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254505629295") + self.xorTest(lhs: "-644245100", rhs: "18446744073709551623", expecting: "-18446744074353796717") + self.xorTest(lhs: "-644245100", rhs: "-18446744073709551623", expecting: "18446744074353796717") + self.xorTest(lhs: "-644245100", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948379317866") + self.xorTest(lhs: "-644245100", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948379317866") + self.xorTest(lhs: "-644245100", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402857588321") + self.xorTest(lhs: "-644245100", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402857588321") + self.xorTest(lhs: "-644245100", rhs: "18446744073709551629", expecting: "-18446744074353796711") + self.xorTest(lhs: "-644245100", rhs: "-18446744073709551629", expecting: "18446744074353796711") + self.xorTest(lhs: "-644245100", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390636627562") + self.xorTest(lhs: "-644245100", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390636627562") + self.xorTest(lhs: "-644245100", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551209547387") + self.xorTest(lhs: "-644245100", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551209547387") + self.xorTest(lhs: "-644245100", rhs: "18446744073709551635", expecting: "-18446744074353796729") + self.xorTest(lhs: "-644245100", rhs: "-18446744073709551635", expecting: "18446744074353796729") + self.xorTest(lhs: "429496735", rhs: "0", expecting: "429496735") + self.xorTest(lhs: "429496735", rhs: "1", expecting: "429496734") + self.xorTest(lhs: "429496735", rhs: "-1", expecting: "-429496736") + self.xorTest(lhs: "429496735", rhs: "18446744073709551615", expecting: "18446744073280054880") + self.xorTest(lhs: "429496735", rhs: "-18446744073709551615", expecting: "-18446744073280054882") + self.xorTest(lhs: "429496735", rhs: "18446744073709551617", expecting: "18446744074139048350") + self.xorTest(lhs: "429496735", rhs: "-18446744073709551617", expecting: "-18446744074139048352") + self.xorTest(lhs: "429496735", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505907259805") + self.xorTest(lhs: "429496735", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505907259807") + self.xorTest(lhs: "429496735", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254290880922") + self.xorTest(lhs: "429496735", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254290880924") + self.xorTest(lhs: "429496735", rhs: "18446744073709551623", expecting: "18446744074139048344") + self.xorTest(lhs: "429496735", rhs: "-18446744073709551623", expecting: "-18446744074139048346") + self.xorTest(lhs: "429496735", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948164569501") + self.xorTest(lhs: "429496735", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948164569503") + self.xorTest(lhs: "429496735", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402642839956") + self.xorTest(lhs: "429496735", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402642839958") + self.xorTest(lhs: "429496735", rhs: "18446744073709551629", expecting: "18446744074139048338") + self.xorTest(lhs: "429496735", rhs: "-18446744073709551629", expecting: "-18446744074139048340") + self.xorTest(lhs: "429496735", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390421879197") + self.xorTest(lhs: "429496735", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390421879199") + self.xorTest(lhs: "429496735", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550994798990") + self.xorTest(lhs: "429496735", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550994798992") + self.xorTest(lhs: "429496735", rhs: "18446744073709551635", expecting: "18446744074139048332") + self.xorTest(lhs: "429496735", rhs: "-18446744073709551635", expecting: "-18446744074139048334") + self.xorTest(lhs: "-429496736", rhs: "0", expecting: "-429496736") + self.xorTest(lhs: "-429496736", rhs: "1", expecting: "-429496735") + self.xorTest(lhs: "-429496736", rhs: "-1", expecting: "429496735") + self.xorTest(lhs: "-429496736", rhs: "18446744073709551615", expecting: "-18446744073280054881") + self.xorTest(lhs: "-429496736", rhs: "-18446744073709551615", expecting: "18446744073280054881") + self.xorTest(lhs: "-429496736", rhs: "18446744073709551617", expecting: "-18446744074139048351") + self.xorTest(lhs: "-429496736", rhs: "-18446744073709551617", expecting: "18446744074139048351") + self.xorTest(lhs: "-429496736", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505907259806") + self.xorTest(lhs: "-429496736", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505907259806") + self.xorTest(lhs: "-429496736", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254290880923") + self.xorTest(lhs: "-429496736", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254290880923") + self.xorTest(lhs: "-429496736", rhs: "18446744073709551623", expecting: "-18446744074139048345") + self.xorTest(lhs: "-429496736", rhs: "-18446744073709551623", expecting: "18446744074139048345") + self.xorTest(lhs: "-429496736", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948164569502") + self.xorTest(lhs: "-429496736", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948164569502") + self.xorTest(lhs: "-429496736", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402642839957") + self.xorTest(lhs: "-429496736", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402642839957") + self.xorTest(lhs: "-429496736", rhs: "18446744073709551629", expecting: "-18446744074139048339") + self.xorTest(lhs: "-429496736", rhs: "-18446744073709551629", expecting: "18446744074139048339") + self.xorTest(lhs: "-429496736", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390421879198") + self.xorTest(lhs: "-429496736", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390421879198") + self.xorTest(lhs: "-429496736", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550994798991") + self.xorTest(lhs: "-429496736", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550994798991") + self.xorTest(lhs: "-429496736", rhs: "18446744073709551635", expecting: "-18446744074139048333") + self.xorTest(lhs: "-429496736", rhs: "-18446744073709551635", expecting: "18446744074139048333") + self.xorTest(lhs: "214748371", rhs: "0", expecting: "214748371") + self.xorTest(lhs: "214748371", rhs: "1", expecting: "214748370") + self.xorTest(lhs: "214748371", rhs: "-1", expecting: "-214748372") + self.xorTest(lhs: "214748371", rhs: "18446744073709551615", expecting: "18446744073494803244") + self.xorTest(lhs: "214748371", rhs: "-18446744073709551615", expecting: "-18446744073494803246") + self.xorTest(lhs: "214748371", rhs: "18446744073709551617", expecting: "18446744073924299986") + self.xorTest(lhs: "214748371", rhs: "-18446744073709551617", expecting: "-18446744073924299988") + self.xorTest(lhs: "214748371", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505692511441") + self.xorTest(lhs: "214748371", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505692511443") + self.xorTest(lhs: "214748371", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254076132566") + self.xorTest(lhs: "214748371", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254076132568") + self.xorTest(lhs: "214748371", rhs: "18446744073709551623", expecting: "18446744073924299988") + self.xorTest(lhs: "214748371", rhs: "-18446744073709551623", expecting: "-18446744073924299990") + self.xorTest(lhs: "214748371", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947949821137") + self.xorTest(lhs: "214748371", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947949821139") + self.xorTest(lhs: "214748371", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402428091608") + self.xorTest(lhs: "214748371", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402428091610") + self.xorTest(lhs: "214748371", rhs: "18446744073709551629", expecting: "18446744073924299998") + self.xorTest(lhs: "214748371", rhs: "-18446744073709551629", expecting: "-18446744073924300000") + self.xorTest(lhs: "214748371", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390207130833") + self.xorTest(lhs: "214748371", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390207130835") + self.xorTest(lhs: "214748371", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550780050626") + self.xorTest(lhs: "214748371", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550780050628") + self.xorTest(lhs: "214748371", rhs: "18446744073709551635", expecting: "18446744073924299968") + self.xorTest(lhs: "214748371", rhs: "-18446744073709551635", expecting: "-18446744073924299970") + self.xorTest(lhs: "-214748372", rhs: "0", expecting: "-214748372") + self.xorTest(lhs: "-214748372", rhs: "1", expecting: "-214748371") + self.xorTest(lhs: "-214748372", rhs: "-1", expecting: "214748371") + self.xorTest(lhs: "-214748372", rhs: "18446744073709551615", expecting: "-18446744073494803245") + self.xorTest(lhs: "-214748372", rhs: "-18446744073709551615", expecting: "18446744073494803245") + self.xorTest(lhs: "-214748372", rhs: "18446744073709551617", expecting: "-18446744073924299987") + self.xorTest(lhs: "-214748372", rhs: "-18446744073709551617", expecting: "18446744073924299987") + self.xorTest(lhs: "-214748372", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505692511442") + self.xorTest(lhs: "-214748372", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505692511442") + self.xorTest(lhs: "-214748372", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254076132567") + self.xorTest(lhs: "-214748372", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254076132567") + self.xorTest(lhs: "-214748372", rhs: "18446744073709551623", expecting: "-18446744073924299989") + self.xorTest(lhs: "-214748372", rhs: "-18446744073709551623", expecting: "18446744073924299989") + self.xorTest(lhs: "-214748372", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947949821138") + self.xorTest(lhs: "-214748372", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947949821138") + self.xorTest(lhs: "-214748372", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402428091609") + self.xorTest(lhs: "-214748372", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402428091609") + self.xorTest(lhs: "-214748372", rhs: "18446744073709551629", expecting: "-18446744073924299999") + self.xorTest(lhs: "-214748372", rhs: "-18446744073709551629", expecting: "18446744073924299999") + self.xorTest(lhs: "-214748372", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390207130834") + self.xorTest(lhs: "-214748372", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390207130834") + self.xorTest(lhs: "-214748372", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550780050627") + self.xorTest(lhs: "-214748372", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550780050627") + self.xorTest(lhs: "-214748372", rhs: "18446744073709551635", expecting: "-18446744073924299969") + self.xorTest(lhs: "-214748372", rhs: "-18446744073709551635", expecting: "18446744073924299969") + } + + func test_xor_heap_smi() { + self.xorTest(lhs: "0", rhs: "0", expecting: "0") + self.xorTest(lhs: "0", rhs: "1", expecting: "1") + self.xorTest(lhs: "0", rhs: "-1", expecting: "-1") + self.xorTest(lhs: "0", rhs: "2147483647", expecting: "2147483647") + self.xorTest(lhs: "0", rhs: "-2147483648", expecting: "-2147483648") + self.xorTest(lhs: "0", rhs: "1932735283", expecting: "1932735283") + self.xorTest(lhs: "0", rhs: "-1932735284", expecting: "-1932735284") + self.xorTest(lhs: "0", rhs: "1717986919", expecting: "1717986919") + self.xorTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.xorTest(lhs: "0", rhs: "1503238555", expecting: "1503238555") + self.xorTest(lhs: "0", rhs: "-1503238556", expecting: "-1503238556") + self.xorTest(lhs: "0", rhs: "1288490191", expecting: "1288490191") + self.xorTest(lhs: "0", rhs: "-1288490192", expecting: "-1288490192") + self.xorTest(lhs: "0", rhs: "1073741827", expecting: "1073741827") + self.xorTest(lhs: "0", rhs: "-1073741828", expecting: "-1073741828") + self.xorTest(lhs: "0", rhs: "858993463", expecting: "858993463") + self.xorTest(lhs: "0", rhs: "-858993464", expecting: "-858993464") + self.xorTest(lhs: "0", rhs: "644245099", expecting: "644245099") + self.xorTest(lhs: "0", rhs: "-644245100", expecting: "-644245100") + self.xorTest(lhs: "0", rhs: "429496735", expecting: "429496735") + self.xorTest(lhs: "0", rhs: "-429496736", expecting: "-429496736") + self.xorTest(lhs: "0", rhs: "214748371", expecting: "214748371") + self.xorTest(lhs: "0", rhs: "-214748372", expecting: "-214748372") + self.xorTest(lhs: "1", rhs: "0", expecting: "1") + self.xorTest(lhs: "1", rhs: "1", expecting: "0") + self.xorTest(lhs: "1", rhs: "-1", expecting: "-2") + self.xorTest(lhs: "1", rhs: "2147483647", expecting: "2147483646") + self.xorTest(lhs: "1", rhs: "-2147483648", expecting: "-2147483647") + self.xorTest(lhs: "1", rhs: "1932735283", expecting: "1932735282") + self.xorTest(lhs: "1", rhs: "-1932735284", expecting: "-1932735283") + self.xorTest(lhs: "1", rhs: "1717986919", expecting: "1717986918") + self.xorTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.xorTest(lhs: "1", rhs: "1503238555", expecting: "1503238554") + self.xorTest(lhs: "1", rhs: "-1503238556", expecting: "-1503238555") + self.xorTest(lhs: "1", rhs: "1288490191", expecting: "1288490190") + self.xorTest(lhs: "1", rhs: "-1288490192", expecting: "-1288490191") + self.xorTest(lhs: "1", rhs: "1073741827", expecting: "1073741826") + self.xorTest(lhs: "1", rhs: "-1073741828", expecting: "-1073741827") + self.xorTest(lhs: "1", rhs: "858993463", expecting: "858993462") + self.xorTest(lhs: "1", rhs: "-858993464", expecting: "-858993463") + self.xorTest(lhs: "1", rhs: "644245099", expecting: "644245098") + self.xorTest(lhs: "1", rhs: "-644245100", expecting: "-644245099") + self.xorTest(lhs: "1", rhs: "429496735", expecting: "429496734") + self.xorTest(lhs: "1", rhs: "-429496736", expecting: "-429496735") + self.xorTest(lhs: "1", rhs: "214748371", expecting: "214748370") + self.xorTest(lhs: "1", rhs: "-214748372", expecting: "-214748371") + self.xorTest(lhs: "-1", rhs: "0", expecting: "-1") + self.xorTest(lhs: "-1", rhs: "1", expecting: "-2") + self.xorTest(lhs: "-1", rhs: "-1", expecting: "0") + self.xorTest(lhs: "-1", rhs: "2147483647", expecting: "-2147483648") + self.xorTest(lhs: "-1", rhs: "-2147483648", expecting: "2147483647") + self.xorTest(lhs: "-1", rhs: "1932735283", expecting: "-1932735284") + self.xorTest(lhs: "-1", rhs: "-1932735284", expecting: "1932735283") + self.xorTest(lhs: "-1", rhs: "1717986919", expecting: "-1717986920") + self.xorTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.xorTest(lhs: "-1", rhs: "1503238555", expecting: "-1503238556") + self.xorTest(lhs: "-1", rhs: "-1503238556", expecting: "1503238555") + self.xorTest(lhs: "-1", rhs: "1288490191", expecting: "-1288490192") + self.xorTest(lhs: "-1", rhs: "-1288490192", expecting: "1288490191") + self.xorTest(lhs: "-1", rhs: "1073741827", expecting: "-1073741828") + self.xorTest(lhs: "-1", rhs: "-1073741828", expecting: "1073741827") + self.xorTest(lhs: "-1", rhs: "858993463", expecting: "-858993464") + self.xorTest(lhs: "-1", rhs: "-858993464", expecting: "858993463") + self.xorTest(lhs: "-1", rhs: "644245099", expecting: "-644245100") + self.xorTest(lhs: "-1", rhs: "-644245100", expecting: "644245099") + self.xorTest(lhs: "-1", rhs: "429496735", expecting: "-429496736") + self.xorTest(lhs: "-1", rhs: "-429496736", expecting: "429496735") + self.xorTest(lhs: "-1", rhs: "214748371", expecting: "-214748372") + self.xorTest(lhs: "-1", rhs: "-214748372", expecting: "214748371") + self.xorTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.xorTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551614") + self.xorTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-18446744073709551616") + self.xorTest(lhs: "18446744073709551615", rhs: "2147483647", expecting: "18446744071562067968") + self.xorTest(lhs: "18446744073709551615", rhs: "-2147483648", expecting: "-18446744071562067969") + self.xorTest(lhs: "18446744073709551615", rhs: "1932735283", expecting: "18446744071776816332") + self.xorTest(lhs: "18446744073709551615", rhs: "-1932735284", expecting: "-18446744071776816333") + self.xorTest(lhs: "18446744073709551615", rhs: "1717986919", expecting: "18446744071991564696") + self.xorTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-18446744071991564697") + self.xorTest(lhs: "18446744073709551615", rhs: "1503238555", expecting: "18446744072206313060") + self.xorTest(lhs: "18446744073709551615", rhs: "-1503238556", expecting: "-18446744072206313061") + self.xorTest(lhs: "18446744073709551615", rhs: "1288490191", expecting: "18446744072421061424") + self.xorTest(lhs: "18446744073709551615", rhs: "-1288490192", expecting: "-18446744072421061425") + self.xorTest(lhs: "18446744073709551615", rhs: "1073741827", expecting: "18446744072635809788") + self.xorTest(lhs: "18446744073709551615", rhs: "-1073741828", expecting: "-18446744072635809789") + self.xorTest(lhs: "18446744073709551615", rhs: "858993463", expecting: "18446744072850558152") + self.xorTest(lhs: "18446744073709551615", rhs: "-858993464", expecting: "-18446744072850558153") + self.xorTest(lhs: "18446744073709551615", rhs: "644245099", expecting: "18446744073065306516") + self.xorTest(lhs: "18446744073709551615", rhs: "-644245100", expecting: "-18446744073065306517") + self.xorTest(lhs: "18446744073709551615", rhs: "429496735", expecting: "18446744073280054880") + self.xorTest(lhs: "18446744073709551615", rhs: "-429496736", expecting: "-18446744073280054881") + self.xorTest(lhs: "18446744073709551615", rhs: "214748371", expecting: "18446744073494803244") + self.xorTest(lhs: "18446744073709551615", rhs: "-214748372", expecting: "-18446744073494803245") + self.xorTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.xorTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551616") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "18446744073709551614") + self.xorTest(lhs: "-18446744073709551615", rhs: "2147483647", expecting: "-18446744071562067970") + self.xorTest(lhs: "-18446744073709551615", rhs: "-2147483648", expecting: "18446744071562067969") + self.xorTest(lhs: "-18446744073709551615", rhs: "1932735283", expecting: "-18446744071776816334") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1932735284", expecting: "18446744071776816333") + self.xorTest(lhs: "-18446744073709551615", rhs: "1717986919", expecting: "-18446744071991564698") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "18446744071991564697") + self.xorTest(lhs: "-18446744073709551615", rhs: "1503238555", expecting: "-18446744072206313062") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1503238556", expecting: "18446744072206313061") + self.xorTest(lhs: "-18446744073709551615", rhs: "1288490191", expecting: "-18446744072421061426") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1288490192", expecting: "18446744072421061425") + self.xorTest(lhs: "-18446744073709551615", rhs: "1073741827", expecting: "-18446744072635809790") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1073741828", expecting: "18446744072635809789") + self.xorTest(lhs: "-18446744073709551615", rhs: "858993463", expecting: "-18446744072850558154") + self.xorTest(lhs: "-18446744073709551615", rhs: "-858993464", expecting: "18446744072850558153") + self.xorTest(lhs: "-18446744073709551615", rhs: "644245099", expecting: "-18446744073065306518") + self.xorTest(lhs: "-18446744073709551615", rhs: "-644245100", expecting: "18446744073065306517") + self.xorTest(lhs: "-18446744073709551615", rhs: "429496735", expecting: "-18446744073280054882") + self.xorTest(lhs: "-18446744073709551615", rhs: "-429496736", expecting: "18446744073280054881") + self.xorTest(lhs: "-18446744073709551615", rhs: "214748371", expecting: "-18446744073494803246") + self.xorTest(lhs: "-18446744073709551615", rhs: "-214748372", expecting: "18446744073494803245") + self.xorTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.xorTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551616") + self.xorTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-18446744073709551618") + self.xorTest(lhs: "18446744073709551617", rhs: "2147483647", expecting: "18446744075857035262") + self.xorTest(lhs: "18446744073709551617", rhs: "-2147483648", expecting: "-18446744075857035263") + self.xorTest(lhs: "18446744073709551617", rhs: "1932735283", expecting: "18446744075642286898") + self.xorTest(lhs: "18446744073709551617", rhs: "-1932735284", expecting: "-18446744075642286899") + self.xorTest(lhs: "18446744073709551617", rhs: "1717986919", expecting: "18446744075427538534") + self.xorTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-18446744075427538535") + self.xorTest(lhs: "18446744073709551617", rhs: "1503238555", expecting: "18446744075212790170") + self.xorTest(lhs: "18446744073709551617", rhs: "-1503238556", expecting: "-18446744075212790171") + self.xorTest(lhs: "18446744073709551617", rhs: "1288490191", expecting: "18446744074998041806") + self.xorTest(lhs: "18446744073709551617", rhs: "-1288490192", expecting: "-18446744074998041807") + self.xorTest(lhs: "18446744073709551617", rhs: "1073741827", expecting: "18446744074783293442") + self.xorTest(lhs: "18446744073709551617", rhs: "-1073741828", expecting: "-18446744074783293443") + self.xorTest(lhs: "18446744073709551617", rhs: "858993463", expecting: "18446744074568545078") + self.xorTest(lhs: "18446744073709551617", rhs: "-858993464", expecting: "-18446744074568545079") + self.xorTest(lhs: "18446744073709551617", rhs: "644245099", expecting: "18446744074353796714") + self.xorTest(lhs: "18446744073709551617", rhs: "-644245100", expecting: "-18446744074353796715") + self.xorTest(lhs: "18446744073709551617", rhs: "429496735", expecting: "18446744074139048350") + self.xorTest(lhs: "18446744073709551617", rhs: "-429496736", expecting: "-18446744074139048351") + self.xorTest(lhs: "18446744073709551617", rhs: "214748371", expecting: "18446744073924299986") + self.xorTest(lhs: "18446744073709551617", rhs: "-214748372", expecting: "-18446744073924299987") + self.xorTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.xorTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551618") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "18446744073709551616") + self.xorTest(lhs: "-18446744073709551617", rhs: "2147483647", expecting: "-18446744075857035264") + self.xorTest(lhs: "-18446744073709551617", rhs: "-2147483648", expecting: "18446744075857035263") + self.xorTest(lhs: "-18446744073709551617", rhs: "1932735283", expecting: "-18446744075642286900") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1932735284", expecting: "18446744075642286899") + self.xorTest(lhs: "-18446744073709551617", rhs: "1717986919", expecting: "-18446744075427538536") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "18446744075427538535") + self.xorTest(lhs: "-18446744073709551617", rhs: "1503238555", expecting: "-18446744075212790172") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1503238556", expecting: "18446744075212790171") + self.xorTest(lhs: "-18446744073709551617", rhs: "1288490191", expecting: "-18446744074998041808") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1288490192", expecting: "18446744074998041807") + self.xorTest(lhs: "-18446744073709551617", rhs: "1073741827", expecting: "-18446744074783293444") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1073741828", expecting: "18446744074783293443") + self.xorTest(lhs: "-18446744073709551617", rhs: "858993463", expecting: "-18446744074568545080") + self.xorTest(lhs: "-18446744073709551617", rhs: "-858993464", expecting: "18446744074568545079") + self.xorTest(lhs: "-18446744073709551617", rhs: "644245099", expecting: "-18446744074353796716") + self.xorTest(lhs: "-18446744073709551617", rhs: "-644245100", expecting: "18446744074353796715") + self.xorTest(lhs: "-18446744073709551617", rhs: "429496735", expecting: "-18446744074139048352") + self.xorTest(lhs: "-18446744073709551617", rhs: "-429496736", expecting: "18446744074139048351") + self.xorTest(lhs: "-18446744073709551617", rhs: "214748371", expecting: "-18446744073924299988") + self.xorTest(lhs: "-18446744073709551617", rhs: "-214748372", expecting: "18446744073924299987") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763075") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763075") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "2147483647", expecting: "340282366920938463481821351507625246717") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "-340282366920938463481821351507625246718") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1932735283", expecting: "340282366920938463481821351507410498353") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "-340282366920938463481821351507410498354") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986919", expecting: "340282366920938463481821351507195749989") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351507195749990") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1503238555", expecting: "340282366920938463481821351506981001625") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "-340282366920938463481821351506981001626") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1288490191", expecting: "340282366920938463481821351506766253261") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "-340282366920938463481821351506766253262") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1073741827", expecting: "340282366920938463481821351506551504897") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "-340282366920938463481821351506551504898") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "858993463", expecting: "340282366920938463481821351506336756533") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993464", expecting: "-340282366920938463481821351506336756534") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "644245099", expecting: "340282366920938463481821351506122008169") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-644245100", expecting: "-340282366920938463481821351506122008170") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "429496735", expecting: "340282366920938463481821351505907259805") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-429496736", expecting: "-340282366920938463481821351505907259806") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "214748371", expecting: "340282366920938463481821351505692511441") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-214748372", expecting: "-340282366920938463481821351505692511442") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763073") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763073") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "2147483647", expecting: "-340282366920938463481821351507625246719") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2147483648", expecting: "340282366920938463481821351507625246718") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1932735283", expecting: "-340282366920938463481821351507410498355") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1932735284", expecting: "340282366920938463481821351507410498354") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986919", expecting: "-340282366920938463481821351507195749991") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351507195749990") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1503238555", expecting: "-340282366920938463481821351506981001627") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1503238556", expecting: "340282366920938463481821351506981001626") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1288490191", expecting: "-340282366920938463481821351506766253263") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1288490192", expecting: "340282366920938463481821351506766253262") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1073741827", expecting: "-340282366920938463481821351506551504899") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1073741828", expecting: "340282366920938463481821351506551504898") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993463", expecting: "-340282366920938463481821351506336756535") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993464", expecting: "340282366920938463481821351506336756534") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "644245099", expecting: "-340282366920938463481821351506122008171") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-644245100", expecting: "340282366920938463481821351506122008170") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "429496735", expecting: "-340282366920938463481821351505907259807") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-429496736", expecting: "340282366920938463481821351505907259806") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "214748371", expecting: "-340282366920938463481821351505692511443") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-214748372", expecting: "340282366920938463481821351505692511442") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "6277101735386680764516354157049543343010657915256008867834") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "-6277101735386680764516354157049543343010657915256008867835") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "6277101735386680764516354157049543343010657915255794119478") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "-6277101735386680764516354157049543343010657915255794119479") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "6277101735386680764516354157049543343010657915255579371106") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371107") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "6277101735386680764516354157049543343010657915255364622750") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "-6277101735386680764516354157049543343010657915255364622751") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "6277101735386680764516354157049543343010657915255149874378") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "-6277101735386680764516354157049543343010657915255149874379") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "6277101735386680764516354157049543343010657915254935126022") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "-6277101735386680764516354157049543343010657915254935126023") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "6277101735386680764516354157049543343010657915254720377650") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "-6277101735386680764516354157049543343010657915254720377651") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "6277101735386680764516354157049543343010657915254505629294") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "-6277101735386680764516354157049543343010657915254505629295") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "6277101735386680764516354157049543343010657915254290880922") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "-6277101735386680764516354157049543343010657915254290880923") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "6277101735386680764516354157049543343010657915254076132566") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "-6277101735386680764516354157049543343010657915254076132567") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2147483647", expecting: "-6277101735386680764516354157049543343010657915256008867836") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2147483648", expecting: "6277101735386680764516354157049543343010657915256008867835") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1932735283", expecting: "-6277101735386680764516354157049543343010657915255794119480") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1932735284", expecting: "6277101735386680764516354157049543343010657915255794119479") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986919", expecting: "-6277101735386680764516354157049543343010657915255579371108") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915255579371107") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1503238555", expecting: "-6277101735386680764516354157049543343010657915255364622752") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1503238556", expecting: "6277101735386680764516354157049543343010657915255364622751") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1288490191", expecting: "-6277101735386680764516354157049543343010657915255149874380") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1288490192", expecting: "6277101735386680764516354157049543343010657915255149874379") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1073741827", expecting: "-6277101735386680764516354157049543343010657915254935126024") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1073741828", expecting: "6277101735386680764516354157049543343010657915254935126023") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993463", expecting: "-6277101735386680764516354157049543343010657915254720377652") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993464", expecting: "6277101735386680764516354157049543343010657915254720377651") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "644245099", expecting: "-6277101735386680764516354157049543343010657915254505629296") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-644245100", expecting: "6277101735386680764516354157049543343010657915254505629295") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "429496735", expecting: "-6277101735386680764516354157049543343010657915254290880924") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-429496736", expecting: "6277101735386680764516354157049543343010657915254290880923") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "214748371", expecting: "-6277101735386680764516354157049543343010657915254076132568") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-214748372", expecting: "6277101735386680764516354157049543343010657915254076132567") + self.xorTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.xorTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551622") + self.xorTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-18446744073709551624") + self.xorTest(lhs: "18446744073709551623", rhs: "2147483647", expecting: "18446744075857035256") + self.xorTest(lhs: "18446744073709551623", rhs: "-2147483648", expecting: "-18446744075857035257") + self.xorTest(lhs: "18446744073709551623", rhs: "1932735283", expecting: "18446744075642286900") + self.xorTest(lhs: "18446744073709551623", rhs: "-1932735284", expecting: "-18446744075642286901") + self.xorTest(lhs: "18446744073709551623", rhs: "1717986919", expecting: "18446744075427538528") + self.xorTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-18446744075427538529") + self.xorTest(lhs: "18446744073709551623", rhs: "1503238555", expecting: "18446744075212790172") + self.xorTest(lhs: "18446744073709551623", rhs: "-1503238556", expecting: "-18446744075212790173") + self.xorTest(lhs: "18446744073709551623", rhs: "1288490191", expecting: "18446744074998041800") + self.xorTest(lhs: "18446744073709551623", rhs: "-1288490192", expecting: "-18446744074998041801") + self.xorTest(lhs: "18446744073709551623", rhs: "1073741827", expecting: "18446744074783293444") + self.xorTest(lhs: "18446744073709551623", rhs: "-1073741828", expecting: "-18446744074783293445") + self.xorTest(lhs: "18446744073709551623", rhs: "858993463", expecting: "18446744074568545072") + self.xorTest(lhs: "18446744073709551623", rhs: "-858993464", expecting: "-18446744074568545073") + self.xorTest(lhs: "18446744073709551623", rhs: "644245099", expecting: "18446744074353796716") + self.xorTest(lhs: "18446744073709551623", rhs: "-644245100", expecting: "-18446744074353796717") + self.xorTest(lhs: "18446744073709551623", rhs: "429496735", expecting: "18446744074139048344") + self.xorTest(lhs: "18446744073709551623", rhs: "-429496736", expecting: "-18446744074139048345") + self.xorTest(lhs: "18446744073709551623", rhs: "214748371", expecting: "18446744073924299988") + self.xorTest(lhs: "18446744073709551623", rhs: "-214748372", expecting: "-18446744073924299989") + self.xorTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.xorTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551624") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "18446744073709551622") + self.xorTest(lhs: "-18446744073709551623", rhs: "2147483647", expecting: "-18446744075857035258") + self.xorTest(lhs: "-18446744073709551623", rhs: "-2147483648", expecting: "18446744075857035257") + self.xorTest(lhs: "-18446744073709551623", rhs: "1932735283", expecting: "-18446744075642286902") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1932735284", expecting: "18446744075642286901") + self.xorTest(lhs: "-18446744073709551623", rhs: "1717986919", expecting: "-18446744075427538530") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "18446744075427538529") + self.xorTest(lhs: "-18446744073709551623", rhs: "1503238555", expecting: "-18446744075212790174") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1503238556", expecting: "18446744075212790173") + self.xorTest(lhs: "-18446744073709551623", rhs: "1288490191", expecting: "-18446744074998041802") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1288490192", expecting: "18446744074998041801") + self.xorTest(lhs: "-18446744073709551623", rhs: "1073741827", expecting: "-18446744074783293446") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1073741828", expecting: "18446744074783293445") + self.xorTest(lhs: "-18446744073709551623", rhs: "858993463", expecting: "-18446744074568545074") + self.xorTest(lhs: "-18446744073709551623", rhs: "-858993464", expecting: "18446744074568545073") + self.xorTest(lhs: "-18446744073709551623", rhs: "644245099", expecting: "-18446744074353796718") + self.xorTest(lhs: "-18446744073709551623", rhs: "-644245100", expecting: "18446744074353796717") + self.xorTest(lhs: "-18446744073709551623", rhs: "429496735", expecting: "-18446744074139048346") + self.xorTest(lhs: "-18446744073709551623", rhs: "-429496736", expecting: "18446744074139048345") + self.xorTest(lhs: "-18446744073709551623", rhs: "214748371", expecting: "-18446744073924299990") + self.xorTest(lhs: "-18446744073709551623", rhs: "-214748372", expecting: "18446744073924299989") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072771") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072771") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "2147483647", expecting: "340282366920938463592501815949882556413") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "-340282366920938463592501815949882556414") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1932735283", expecting: "340282366920938463592501815949667808049") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "-340282366920938463592501815949667808050") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986919", expecting: "340282366920938463592501815949453059685") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815949453059686") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1503238555", expecting: "340282366920938463592501815949238311321") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "-340282366920938463592501815949238311322") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1288490191", expecting: "340282366920938463592501815949023562957") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "-340282366920938463592501815949023562958") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1073741827", expecting: "340282366920938463592501815948808814593") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "-340282366920938463592501815948808814594") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "858993463", expecting: "340282366920938463592501815948594066229") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993464", expecting: "-340282366920938463592501815948594066230") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "644245099", expecting: "340282366920938463592501815948379317865") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-644245100", expecting: "-340282366920938463592501815948379317866") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "429496735", expecting: "340282366920938463592501815948164569501") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-429496736", expecting: "-340282366920938463592501815948164569502") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "214748371", expecting: "340282366920938463592501815947949821137") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-214748372", expecting: "-340282366920938463592501815947949821138") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072769") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072769") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "2147483647", expecting: "-340282366920938463592501815949882556415") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2147483648", expecting: "340282366920938463592501815949882556414") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1932735283", expecting: "-340282366920938463592501815949667808051") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1932735284", expecting: "340282366920938463592501815949667808050") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986919", expecting: "-340282366920938463592501815949453059687") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815949453059686") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1503238555", expecting: "-340282366920938463592501815949238311323") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1503238556", expecting: "340282366920938463592501815949238311322") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1288490191", expecting: "-340282366920938463592501815949023562959") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1288490192", expecting: "340282366920938463592501815949023562958") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1073741827", expecting: "-340282366920938463592501815948808814595") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1073741828", expecting: "340282366920938463592501815948808814594") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993463", expecting: "-340282366920938463592501815948594066231") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993464", expecting: "340282366920938463592501815948594066230") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "644245099", expecting: "-340282366920938463592501815948379317867") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-644245100", expecting: "340282366920938463592501815948379317866") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "429496735", expecting: "-340282366920938463592501815948164569503") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-429496736", expecting: "340282366920938463592501815948164569502") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "214748371", expecting: "-340282366920938463592501815947949821139") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-214748372", expecting: "340282366920938463592501815947949821138") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "6277101735386680766558048358575174123680225095404360826868") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "-6277101735386680766558048358575174123680225095404360826869") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "6277101735386680766558048358575174123680225095404146078520") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "-6277101735386680766558048358575174123680225095404146078521") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "6277101735386680766558048358575174123680225095403931330156") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330157") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "6277101735386680766558048358575174123680225095403716581776") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "-6277101735386680766558048358575174123680225095403716581777") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "6277101735386680766558048358575174123680225095403501833412") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "-6277101735386680766558048358575174123680225095403501833413") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "6277101735386680766558048358575174123680225095403287085064") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "-6277101735386680766558048358575174123680225095403287085065") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "6277101735386680766558048358575174123680225095403072336700") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "-6277101735386680766558048358575174123680225095403072336701") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "6277101735386680766558048358575174123680225095402857588320") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "-6277101735386680766558048358575174123680225095402857588321") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "6277101735386680766558048358575174123680225095402642839956") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "-6277101735386680766558048358575174123680225095402642839957") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "6277101735386680766558048358575174123680225095402428091608") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "-6277101735386680766558048358575174123680225095402428091609") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2147483647", expecting: "-6277101735386680766558048358575174123680225095404360826870") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2147483648", expecting: "6277101735386680766558048358575174123680225095404360826869") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1932735283", expecting: "-6277101735386680766558048358575174123680225095404146078522") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1932735284", expecting: "6277101735386680766558048358575174123680225095404146078521") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986919", expecting: "-6277101735386680766558048358575174123680225095403931330158") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095403931330157") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1503238555", expecting: "-6277101735386680766558048358575174123680225095403716581778") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1503238556", expecting: "6277101735386680766558048358575174123680225095403716581777") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1288490191", expecting: "-6277101735386680766558048358575174123680225095403501833414") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1288490192", expecting: "6277101735386680766558048358575174123680225095403501833413") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1073741827", expecting: "-6277101735386680766558048358575174123680225095403287085066") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1073741828", expecting: "6277101735386680766558048358575174123680225095403287085065") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993463", expecting: "-6277101735386680766558048358575174123680225095403072336702") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993464", expecting: "6277101735386680766558048358575174123680225095403072336701") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "644245099", expecting: "-6277101735386680766558048358575174123680225095402857588322") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-644245100", expecting: "6277101735386680766558048358575174123680225095402857588321") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "429496735", expecting: "-6277101735386680766558048358575174123680225095402642839958") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-429496736", expecting: "6277101735386680766558048358575174123680225095402642839957") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "214748371", expecting: "-6277101735386680766558048358575174123680225095402428091610") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-214748372", expecting: "6277101735386680766558048358575174123680225095402428091609") + self.xorTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.xorTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551628") + self.xorTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-18446744073709551630") + self.xorTest(lhs: "18446744073709551629", rhs: "2147483647", expecting: "18446744075857035250") + self.xorTest(lhs: "18446744073709551629", rhs: "-2147483648", expecting: "-18446744075857035251") + self.xorTest(lhs: "18446744073709551629", rhs: "1932735283", expecting: "18446744075642286910") + self.xorTest(lhs: "18446744073709551629", rhs: "-1932735284", expecting: "-18446744075642286911") + self.xorTest(lhs: "18446744073709551629", rhs: "1717986919", expecting: "18446744075427538538") + self.xorTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-18446744075427538539") + self.xorTest(lhs: "18446744073709551629", rhs: "1503238555", expecting: "18446744075212790166") + self.xorTest(lhs: "18446744073709551629", rhs: "-1503238556", expecting: "-18446744075212790167") + self.xorTest(lhs: "18446744073709551629", rhs: "1288490191", expecting: "18446744074998041794") + self.xorTest(lhs: "18446744073709551629", rhs: "-1288490192", expecting: "-18446744074998041795") + self.xorTest(lhs: "18446744073709551629", rhs: "1073741827", expecting: "18446744074783293454") + self.xorTest(lhs: "18446744073709551629", rhs: "-1073741828", expecting: "-18446744074783293455") + self.xorTest(lhs: "18446744073709551629", rhs: "858993463", expecting: "18446744074568545082") + self.xorTest(lhs: "18446744073709551629", rhs: "-858993464", expecting: "-18446744074568545083") + self.xorTest(lhs: "18446744073709551629", rhs: "644245099", expecting: "18446744074353796710") + self.xorTest(lhs: "18446744073709551629", rhs: "-644245100", expecting: "-18446744074353796711") + self.xorTest(lhs: "18446744073709551629", rhs: "429496735", expecting: "18446744074139048338") + self.xorTest(lhs: "18446744073709551629", rhs: "-429496736", expecting: "-18446744074139048339") + self.xorTest(lhs: "18446744073709551629", rhs: "214748371", expecting: "18446744073924299998") + self.xorTest(lhs: "18446744073709551629", rhs: "-214748372", expecting: "-18446744073924299999") + self.xorTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.xorTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551630") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "18446744073709551628") + self.xorTest(lhs: "-18446744073709551629", rhs: "2147483647", expecting: "-18446744075857035252") + self.xorTest(lhs: "-18446744073709551629", rhs: "-2147483648", expecting: "18446744075857035251") + self.xorTest(lhs: "-18446744073709551629", rhs: "1932735283", expecting: "-18446744075642286912") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1932735284", expecting: "18446744075642286911") + self.xorTest(lhs: "-18446744073709551629", rhs: "1717986919", expecting: "-18446744075427538540") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "18446744075427538539") + self.xorTest(lhs: "-18446744073709551629", rhs: "1503238555", expecting: "-18446744075212790168") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1503238556", expecting: "18446744075212790167") + self.xorTest(lhs: "-18446744073709551629", rhs: "1288490191", expecting: "-18446744074998041796") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1288490192", expecting: "18446744074998041795") + self.xorTest(lhs: "-18446744073709551629", rhs: "1073741827", expecting: "-18446744074783293456") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1073741828", expecting: "18446744074783293455") + self.xorTest(lhs: "-18446744073709551629", rhs: "858993463", expecting: "-18446744074568545084") + self.xorTest(lhs: "-18446744073709551629", rhs: "-858993464", expecting: "18446744074568545083") + self.xorTest(lhs: "-18446744073709551629", rhs: "644245099", expecting: "-18446744074353796712") + self.xorTest(lhs: "-18446744073709551629", rhs: "-644245100", expecting: "18446744074353796711") + self.xorTest(lhs: "-18446744073709551629", rhs: "429496735", expecting: "-18446744074139048340") + self.xorTest(lhs: "-18446744073709551629", rhs: "-429496736", expecting: "18446744074139048339") + self.xorTest(lhs: "-18446744073709551629", rhs: "214748371", expecting: "-18446744073924300000") + self.xorTest(lhs: "-18446744073709551629", rhs: "-214748372", expecting: "18446744073924299999") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382467") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382467") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "2147483647", expecting: "340282366920938463703182280392139866109") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "-340282366920938463703182280392139866110") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1932735283", expecting: "340282366920938463703182280391925117745") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "-340282366920938463703182280391925117746") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986919", expecting: "340282366920938463703182280391710369381") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280391710369382") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1503238555", expecting: "340282366920938463703182280391495621017") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "-340282366920938463703182280391495621018") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1288490191", expecting: "340282366920938463703182280391280872653") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "-340282366920938463703182280391280872654") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1073741827", expecting: "340282366920938463703182280391066124289") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "-340282366920938463703182280391066124290") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "858993463", expecting: "340282366920938463703182280390851375925") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993464", expecting: "-340282366920938463703182280390851375926") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "644245099", expecting: "340282366920938463703182280390636627561") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-644245100", expecting: "-340282366920938463703182280390636627562") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "429496735", expecting: "340282366920938463703182280390421879197") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-429496736", expecting: "-340282366920938463703182280390421879198") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "214748371", expecting: "340282366920938463703182280390207130833") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-214748372", expecting: "-340282366920938463703182280390207130834") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382465") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382465") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "2147483647", expecting: "-340282366920938463703182280392139866111") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2147483648", expecting: "340282366920938463703182280392139866110") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1932735283", expecting: "-340282366920938463703182280391925117747") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1932735284", expecting: "340282366920938463703182280391925117746") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986919", expecting: "-340282366920938463703182280391710369383") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280391710369382") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1503238555", expecting: "-340282366920938463703182280391495621019") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1503238556", expecting: "340282366920938463703182280391495621018") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1288490191", expecting: "-340282366920938463703182280391280872655") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1288490192", expecting: "340282366920938463703182280391280872654") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1073741827", expecting: "-340282366920938463703182280391066124291") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1073741828", expecting: "340282366920938463703182280391066124290") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993463", expecting: "-340282366920938463703182280390851375927") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993464", expecting: "340282366920938463703182280390851375926") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "644245099", expecting: "-340282366920938463703182280390636627563") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-644245100", expecting: "340282366920938463703182280390636627562") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "429496735", expecting: "-340282366920938463703182280390421879199") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-429496736", expecting: "340282366920938463703182280390421879198") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "214748371", expecting: "-340282366920938463703182280390207130835") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-214748372", expecting: "340282366920938463703182280390207130834") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "6277101735386680768599742560100804904349792275552712785902") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "-6277101735386680768599742560100804904349792275552712785903") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "6277101735386680768599742560100804904349792275552498037538") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "-6277101735386680768599742560100804904349792275552498037539") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "6277101735386680768599742560100804904349792275552283289206") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289207") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "6277101735386680768599742560100804904349792275552068540810") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "-6277101735386680768599742560100804904349792275552068540811") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "6277101735386680768599742560100804904349792275551853792478") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "-6277101735386680768599742560100804904349792275551853792479") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "6277101735386680768599742560100804904349792275551639044114") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "-6277101735386680768599742560100804904349792275551639044115") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "6277101735386680768599742560100804904349792275551424295718") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "-6277101735386680768599742560100804904349792275551424295719") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "6277101735386680768599742560100804904349792275551209547386") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "-6277101735386680768599742560100804904349792275551209547387") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "6277101735386680768599742560100804904349792275550994798990") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "-6277101735386680768599742560100804904349792275550994798991") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "6277101735386680768599742560100804904349792275550780050626") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "-6277101735386680768599742560100804904349792275550780050627") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2147483647", expecting: "-6277101735386680768599742560100804904349792275552712785904") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2147483648", expecting: "6277101735386680768599742560100804904349792275552712785903") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1932735283", expecting: "-6277101735386680768599742560100804904349792275552498037540") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1932735284", expecting: "6277101735386680768599742560100804904349792275552498037539") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986919", expecting: "-6277101735386680768599742560100804904349792275552283289208") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275552283289207") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1503238555", expecting: "-6277101735386680768599742560100804904349792275552068540812") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1503238556", expecting: "6277101735386680768599742560100804904349792275552068540811") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1288490191", expecting: "-6277101735386680768599742560100804904349792275551853792480") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1288490192", expecting: "6277101735386680768599742560100804904349792275551853792479") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1073741827", expecting: "-6277101735386680768599742560100804904349792275551639044116") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1073741828", expecting: "6277101735386680768599742560100804904349792275551639044115") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993463", expecting: "-6277101735386680768599742560100804904349792275551424295720") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993464", expecting: "6277101735386680768599742560100804904349792275551424295719") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "644245099", expecting: "-6277101735386680768599742560100804904349792275551209547388") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-644245100", expecting: "6277101735386680768599742560100804904349792275551209547387") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "429496735", expecting: "-6277101735386680768599742560100804904349792275550994798992") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-429496736", expecting: "6277101735386680768599742560100804904349792275550994798991") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "214748371", expecting: "-6277101735386680768599742560100804904349792275550780050628") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-214748372", expecting: "6277101735386680768599742560100804904349792275550780050627") + self.xorTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.xorTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551634") + self.xorTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-18446744073709551636") + self.xorTest(lhs: "18446744073709551635", rhs: "2147483647", expecting: "18446744075857035244") + self.xorTest(lhs: "18446744073709551635", rhs: "-2147483648", expecting: "-18446744075857035245") + self.xorTest(lhs: "18446744073709551635", rhs: "1932735283", expecting: "18446744075642286880") + self.xorTest(lhs: "18446744073709551635", rhs: "-1932735284", expecting: "-18446744075642286881") + self.xorTest(lhs: "18446744073709551635", rhs: "1717986919", expecting: "18446744075427538548") + self.xorTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-18446744075427538549") + self.xorTest(lhs: "18446744073709551635", rhs: "1503238555", expecting: "18446744075212790152") + self.xorTest(lhs: "18446744073709551635", rhs: "-1503238556", expecting: "-18446744075212790153") + self.xorTest(lhs: "18446744073709551635", rhs: "1288490191", expecting: "18446744074998041820") + self.xorTest(lhs: "18446744073709551635", rhs: "-1288490192", expecting: "-18446744074998041821") + self.xorTest(lhs: "18446744073709551635", rhs: "1073741827", expecting: "18446744074783293456") + self.xorTest(lhs: "18446744073709551635", rhs: "-1073741828", expecting: "-18446744074783293457") + self.xorTest(lhs: "18446744073709551635", rhs: "858993463", expecting: "18446744074568545060") + self.xorTest(lhs: "18446744073709551635", rhs: "-858993464", expecting: "-18446744074568545061") + self.xorTest(lhs: "18446744073709551635", rhs: "644245099", expecting: "18446744074353796728") + self.xorTest(lhs: "18446744073709551635", rhs: "-644245100", expecting: "-18446744074353796729") + self.xorTest(lhs: "18446744073709551635", rhs: "429496735", expecting: "18446744074139048332") + self.xorTest(lhs: "18446744073709551635", rhs: "-429496736", expecting: "-18446744074139048333") + self.xorTest(lhs: "18446744073709551635", rhs: "214748371", expecting: "18446744073924299968") + self.xorTest(lhs: "18446744073709551635", rhs: "-214748372", expecting: "-18446744073924299969") + self.xorTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.xorTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551636") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "18446744073709551634") + self.xorTest(lhs: "-18446744073709551635", rhs: "2147483647", expecting: "-18446744075857035246") + self.xorTest(lhs: "-18446744073709551635", rhs: "-2147483648", expecting: "18446744075857035245") + self.xorTest(lhs: "-18446744073709551635", rhs: "1932735283", expecting: "-18446744075642286882") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1932735284", expecting: "18446744075642286881") + self.xorTest(lhs: "-18446744073709551635", rhs: "1717986919", expecting: "-18446744075427538550") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "18446744075427538549") + self.xorTest(lhs: "-18446744073709551635", rhs: "1503238555", expecting: "-18446744075212790154") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1503238556", expecting: "18446744075212790153") + self.xorTest(lhs: "-18446744073709551635", rhs: "1288490191", expecting: "-18446744074998041822") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1288490192", expecting: "18446744074998041821") + self.xorTest(lhs: "-18446744073709551635", rhs: "1073741827", expecting: "-18446744074783293458") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1073741828", expecting: "18446744074783293457") + self.xorTest(lhs: "-18446744073709551635", rhs: "858993463", expecting: "-18446744074568545062") + self.xorTest(lhs: "-18446744073709551635", rhs: "-858993464", expecting: "18446744074568545061") + self.xorTest(lhs: "-18446744073709551635", rhs: "644245099", expecting: "-18446744074353796730") + self.xorTest(lhs: "-18446744073709551635", rhs: "-644245100", expecting: "18446744074353796729") + self.xorTest(lhs: "-18446744073709551635", rhs: "429496735", expecting: "-18446744074139048334") + self.xorTest(lhs: "-18446744073709551635", rhs: "-429496736", expecting: "18446744074139048333") + self.xorTest(lhs: "-18446744073709551635", rhs: "214748371", expecting: "-18446744073924299970") + self.xorTest(lhs: "-18446744073709551635", rhs: "-214748372", expecting: "18446744073924299969") + } + + func test_xor_heap_heap() { + self.xorTest(lhs: "0", rhs: "0", expecting: "0") + self.xorTest(lhs: "0", rhs: "1", expecting: "1") + self.xorTest(lhs: "0", rhs: "-1", expecting: "-1") + self.xorTest(lhs: "0", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.xorTest(lhs: "0", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.xorTest(lhs: "0", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.xorTest(lhs: "0", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.xorTest(lhs: "0", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.xorTest(lhs: "0", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.xorTest(lhs: "0", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "0", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "0", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.xorTest(lhs: "0", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.xorTest(lhs: "0", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.xorTest(lhs: "0", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.xorTest(lhs: "0", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "0", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "0", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.xorTest(lhs: "0", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.xorTest(lhs: "0", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.xorTest(lhs: "0", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.xorTest(lhs: "0", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "0", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "0", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.xorTest(lhs: "0", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.xorTest(lhs: "1", rhs: "0", expecting: "1") + self.xorTest(lhs: "1", rhs: "1", expecting: "0") + self.xorTest(lhs: "1", rhs: "-1", expecting: "-2") + self.xorTest(lhs: "1", rhs: "18446744073709551615", expecting: "18446744073709551614") + self.xorTest(lhs: "1", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.xorTest(lhs: "1", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.xorTest(lhs: "1", rhs: "-18446744073709551617", expecting: "-18446744073709551618") + self.xorTest(lhs: "1", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763075") + self.xorTest(lhs: "1", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.xorTest(lhs: "1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "1", rhs: "18446744073709551623", expecting: "18446744073709551622") + self.xorTest(lhs: "1", rhs: "-18446744073709551623", expecting: "-18446744073709551624") + self.xorTest(lhs: "1", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072771") + self.xorTest(lhs: "1", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.xorTest(lhs: "1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "1", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.xorTest(lhs: "1", rhs: "-18446744073709551629", expecting: "-18446744073709551630") + self.xorTest(lhs: "1", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382467") + self.xorTest(lhs: "1", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.xorTest(lhs: "1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "1", rhs: "18446744073709551635", expecting: "18446744073709551634") + self.xorTest(lhs: "1", rhs: "-18446744073709551635", expecting: "-18446744073709551636") + self.xorTest(lhs: "-1", rhs: "0", expecting: "-1") + self.xorTest(lhs: "-1", rhs: "1", expecting: "-2") + self.xorTest(lhs: "-1", rhs: "-1", expecting: "0") + self.xorTest(lhs: "-1", rhs: "18446744073709551615", expecting: "-18446744073709551616") + self.xorTest(lhs: "-1", rhs: "-18446744073709551615", expecting: "18446744073709551614") + self.xorTest(lhs: "-1", rhs: "18446744073709551617", expecting: "-18446744073709551618") + self.xorTest(lhs: "-1", rhs: "-18446744073709551617", expecting: "18446744073709551616") + self.xorTest(lhs: "-1", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763075") + self.xorTest(lhs: "-1", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763073") + self.xorTest(lhs: "-1", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "-1", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "-1", rhs: "18446744073709551623", expecting: "-18446744073709551624") + self.xorTest(lhs: "-1", rhs: "-18446744073709551623", expecting: "18446744073709551622") + self.xorTest(lhs: "-1", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072771") + self.xorTest(lhs: "-1", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072769") + self.xorTest(lhs: "-1", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "-1", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "-1", rhs: "18446744073709551629", expecting: "-18446744073709551630") + self.xorTest(lhs: "-1", rhs: "-18446744073709551629", expecting: "18446744073709551628") + self.xorTest(lhs: "-1", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382467") + self.xorTest(lhs: "-1", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382465") + self.xorTest(lhs: "-1", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "-1", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "-1", rhs: "18446744073709551635", expecting: "-18446744073709551636") + self.xorTest(lhs: "-1", rhs: "-18446744073709551635", expecting: "18446744073709551634") + self.xorTest(lhs: "18446744073709551615", rhs: "0", expecting: "18446744073709551615") + self.xorTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551614") + self.xorTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-18446744073709551616") + self.xorTest(lhs: "18446744073709551615", rhs: "18446744073709551615", expecting: "0") + self.xorTest(lhs: "18446744073709551615", rhs: "-18446744073709551615", expecting: "-2") + self.xorTest(lhs: "18446744073709551615", rhs: "18446744073709551617", expecting: "36893488147419103230") + self.xorTest(lhs: "18446744073709551615", rhs: "-18446744073709551617", expecting: "-36893488147419103232") + self.xorTest(lhs: "18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314685") + self.xorTest(lhs: "18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314687") + self.xorTest(lhs: "18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935802") + self.xorTest(lhs: "18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935804") + self.xorTest(lhs: "18446744073709551615", rhs: "18446744073709551623", expecting: "36893488147419103224") + self.xorTest(lhs: "18446744073709551615", rhs: "-18446744073709551623", expecting: "-36893488147419103226") + self.xorTest(lhs: "18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624381") + self.xorTest(lhs: "18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624383") + self.xorTest(lhs: "18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894836") + self.xorTest(lhs: "18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894838") + self.xorTest(lhs: "18446744073709551615", rhs: "18446744073709551629", expecting: "36893488147419103218") + self.xorTest(lhs: "18446744073709551615", rhs: "-18446744073709551629", expecting: "-36893488147419103220") + self.xorTest(lhs: "18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934077") + self.xorTest(lhs: "18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934079") + self.xorTest(lhs: "18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853870") + self.xorTest(lhs: "18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853872") + self.xorTest(lhs: "18446744073709551615", rhs: "18446744073709551635", expecting: "36893488147419103212") + self.xorTest(lhs: "18446744073709551615", rhs: "-18446744073709551635", expecting: "-36893488147419103214") + self.xorTest(lhs: "-18446744073709551615", rhs: "0", expecting: "-18446744073709551615") + self.xorTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551616") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "18446744073709551614") + self.xorTest(lhs: "-18446744073709551615", rhs: "18446744073709551615", expecting: "-2") + self.xorTest(lhs: "-18446744073709551615", rhs: "-18446744073709551615", expecting: "0") + self.xorTest(lhs: "-18446744073709551615", rhs: "18446744073709551617", expecting: "-36893488147419103232") + self.xorTest(lhs: "-18446744073709551615", rhs: "-18446744073709551617", expecting: "36893488147419103230") + self.xorTest(lhs: "-18446744073709551615", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463500268095579187314685") + self.xorTest(lhs: "-18446744073709551615", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463500268095579187314687") + self.xorTest(lhs: "-18446744073709551615", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343029104659327570935804") + self.xorTest(lhs: "-18446744073709551615", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343029104659327570935802") + self.xorTest(lhs: "-18446744073709551615", rhs: "18446744073709551623", expecting: "-36893488147419103226") + self.xorTest(lhs: "-18446744073709551615", rhs: "-18446744073709551623", expecting: "36893488147419103224") + self.xorTest(lhs: "-18446744073709551615", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463610948560021444624381") + self.xorTest(lhs: "-18446744073709551615", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463610948560021444624383") + self.xorTest(lhs: "-18446744073709551615", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123698671839475922894838") + self.xorTest(lhs: "-18446744073709551615", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123698671839475922894836") + self.xorTest(lhs: "-18446744073709551615", rhs: "18446744073709551629", expecting: "-36893488147419103220") + self.xorTest(lhs: "-18446744073709551615", rhs: "-18446744073709551629", expecting: "36893488147419103218") + self.xorTest(lhs: "-18446744073709551615", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463721629024463701934077") + self.xorTest(lhs: "-18446744073709551615", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463721629024463701934079") + self.xorTest(lhs: "-18446744073709551615", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904368239019624274853872") + self.xorTest(lhs: "-18446744073709551615", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904368239019624274853870") + self.xorTest(lhs: "-18446744073709551615", rhs: "18446744073709551635", expecting: "-36893488147419103214") + self.xorTest(lhs: "-18446744073709551615", rhs: "-18446744073709551635", expecting: "36893488147419103212") + self.xorTest(lhs: "18446744073709551617", rhs: "0", expecting: "18446744073709551617") + self.xorTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551616") + self.xorTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-18446744073709551618") + self.xorTest(lhs: "18446744073709551617", rhs: "18446744073709551615", expecting: "36893488147419103230") + self.xorTest(lhs: "18446744073709551617", rhs: "-18446744073709551615", expecting: "-36893488147419103232") + self.xorTest(lhs: "18446744073709551617", rhs: "18446744073709551617", expecting: "0") + self.xorTest(lhs: "18446744073709551617", rhs: "-18446744073709551617", expecting: "-2") + self.xorTest(lhs: "18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211459") + self.xorTest(lhs: "18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211457") + self.xorTest(lhs: "18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.xorTest(lhs: "18446744073709551617", rhs: "18446744073709551623", expecting: "6") + self.xorTest(lhs: "18446744073709551617", rhs: "-18446744073709551623", expecting: "-8") + self.xorTest(lhs: "18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521155") + self.xorTest(lhs: "18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521153") + self.xorTest(lhs: "18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.xorTest(lhs: "18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "18446744073709551617", rhs: "18446744073709551629", expecting: "12") + self.xorTest(lhs: "18446744073709551617", rhs: "-18446744073709551629", expecting: "-14") + self.xorTest(lhs: "18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830851") + self.xorTest(lhs: "18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830849") + self.xorTest(lhs: "18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.xorTest(lhs: "18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.xorTest(lhs: "18446744073709551617", rhs: "18446744073709551635", expecting: "18") + self.xorTest(lhs: "18446744073709551617", rhs: "-18446744073709551635", expecting: "-20") + self.xorTest(lhs: "-18446744073709551617", rhs: "0", expecting: "-18446744073709551617") + self.xorTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551618") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "18446744073709551616") + self.xorTest(lhs: "-18446744073709551617", rhs: "18446744073709551615", expecting: "-36893488147419103232") + self.xorTest(lhs: "-18446744073709551617", rhs: "-18446744073709551615", expecting: "36893488147419103230") + self.xorTest(lhs: "-18446744073709551617", rhs: "18446744073709551617", expecting: "-2") + self.xorTest(lhs: "-18446744073709551617", rhs: "-18446744073709551617", expecting: "0") + self.xorTest(lhs: "-18446744073709551617", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211459") + self.xorTest(lhs: "-18446744073709551617", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211457") + self.xorTest(lhs: "-18446744073709551617", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.xorTest(lhs: "-18446744073709551617", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "-18446744073709551617", rhs: "18446744073709551623", expecting: "-8") + self.xorTest(lhs: "-18446744073709551617", rhs: "-18446744073709551623", expecting: "6") + self.xorTest(lhs: "-18446744073709551617", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521155") + self.xorTest(lhs: "-18446744073709551617", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521153") + self.xorTest(lhs: "-18446744073709551617", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "-18446744073709551617", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.xorTest(lhs: "-18446744073709551617", rhs: "18446744073709551629", expecting: "-14") + self.xorTest(lhs: "-18446744073709551617", rhs: "-18446744073709551629", expecting: "12") + self.xorTest(lhs: "-18446744073709551617", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830851") + self.xorTest(lhs: "-18446744073709551617", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830849") + self.xorTest(lhs: "-18446744073709551617", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.xorTest(lhs: "-18446744073709551617", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.xorTest(lhs: "-18446744073709551617", rhs: "18446744073709551635", expecting: "-20") + self.xorTest(lhs: "-18446744073709551617", rhs: "-18446744073709551635", expecting: "18") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "0", expecting: "340282366920938463481821351505477763074") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763075") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763075") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "340282366920938463500268095579187314685") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "-340282366920938463500268095579187314685") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "340282366920938463463374607431768211459") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "-340282366920938463463374607431768211459") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "-4") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879528836563748383621127") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879528836563748383621127") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "340282366920938463463374607431768211461") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "-340282366920938463463374607431768211461") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "-110680464442257309700") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660198403743896735580169") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "340282366920938463463374607431768211471") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "-340282366920938463463374607431768211471") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "221360928884514619392") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "-221360928884514619396") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440867970924045087539219") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440867970924045087539219") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "340282366920938463463374607431768211473") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "-340282366920938463463374607431768211473") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "0", expecting: "-340282366920938463481821351505477763074") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763073") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763073") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551615", expecting: "-340282366920938463500268095579187314687") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551615", expecting: "340282366920938463500268095579187314687") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551617", expecting: "-340282366920938463463374607431768211457") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551617", expecting: "340282366920938463463374607431768211457") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463481821351505477763074", expecting: "-4") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879528836563748383621125") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879528836563748383621125") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551623", expecting: "-340282366920938463463374607431768211463") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551623", expecting: "340282366920938463463374607431768211463") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463592501815947735072770", expecting: "-110680464442257309700") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463592501815947735072770", expecting: "110680464442257309696") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660198403743896735580171") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660198403743896735580171") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551629", expecting: "-340282366920938463463374607431768211469") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551629", expecting: "340282366920938463463374607431768211469") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "340282366920938463703182280389992382466", expecting: "-221360928884514619396") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-340282366920938463703182280389992382466", expecting: "221360928884514619392") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440867970924045087539217") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440867970924045087539217") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "18446744073709551635", expecting: "-340282366920938463463374607431768211475") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-18446744073709551635", expecting: "340282366920938463463374607431768211475") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "6277101735386680764516354157049543343029104659327570935802") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "-6277101735386680764516354157049543343029104659327570935804") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680764176071790128604879528836563748383621127") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680764176071790128604879528836563748383621125") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "6277101735386680764516354157049543342992211171180151832578") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680764176071790128604879418156099306126311431") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680764176071790128604879418156099306126311429") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780890928109032866578446") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780890928109032866578448") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "6277101735386680764516354157049543342992211171180151832584") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "-6277101735386680764516354157049543342992211171180151832586") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680764176071790128604879307475634863869001735") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680764176071790128604879307475634863869001733") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "4083388403051261561781856218065733156884") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-4083388403051261561781856218065733156886") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "6277101735386680764516354157049543342992211171180151832598") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "-6277101735386680764516354157049543342992211171180151832600") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "0", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384198") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551615", expecting: "-6277101735386680764516354157049543343029104659327570935804") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551615", expecting: "6277101735386680764516354157049543343029104659327570935802") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551617", expecting: "-6277101735386680764516354157049543342992211171180151832582") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551617", expecting: "6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680764176071790128604879528836563748383621127") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680764176071790128604879528836563748383621125") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551623", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551623", expecting: "6277101735386680764516354157049543342992211171180151832578") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680764176071790128604879418156099306126311431") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680764176071790128604879418156099306126311429") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2041694201525630780890928109032866578448") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2041694201525630780890928109032866578446") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551629", expecting: "-6277101735386680764516354157049543342992211171180151832586") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551629", expecting: "6277101735386680764516354157049543342992211171180151832584") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680764176071790128604879307475634863869001735") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680764176071790128604879307475634863869001733") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-4083388403051261561781856218065733156886") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "4083388403051261561781856218065733156884") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "18446744073709551635", expecting: "-6277101735386680764516354157049543342992211171180151832600") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-18446744073709551635", expecting: "6277101735386680764516354157049543342992211171180151832598") + self.xorTest(lhs: "18446744073709551623", rhs: "0", expecting: "18446744073709551623") + self.xorTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551622") + self.xorTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-18446744073709551624") + self.xorTest(lhs: "18446744073709551623", rhs: "18446744073709551615", expecting: "36893488147419103224") + self.xorTest(lhs: "18446744073709551623", rhs: "-18446744073709551615", expecting: "-36893488147419103226") + self.xorTest(lhs: "18446744073709551623", rhs: "18446744073709551617", expecting: "6") + self.xorTest(lhs: "18446744073709551623", rhs: "-18446744073709551617", expecting: "-8") + self.xorTest(lhs: "18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211461") + self.xorTest(lhs: "18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211463") + self.xorTest(lhs: "18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832578") + self.xorTest(lhs: "18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "18446744073709551623", rhs: "18446744073709551623", expecting: "0") + self.xorTest(lhs: "18446744073709551623", rhs: "-18446744073709551623", expecting: "-2") + self.xorTest(lhs: "18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521157") + self.xorTest(lhs: "18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521159") + self.xorTest(lhs: "18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791630") + self.xorTest(lhs: "18446744073709551623", rhs: "18446744073709551629", expecting: "10") + self.xorTest(lhs: "18446744073709551623", rhs: "-18446744073709551629", expecting: "-12") + self.xorTest(lhs: "18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830853") + self.xorTest(lhs: "18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830855") + self.xorTest(lhs: "18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750678") + self.xorTest(lhs: "18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750680") + self.xorTest(lhs: "18446744073709551623", rhs: "18446744073709551635", expecting: "20") + self.xorTest(lhs: "18446744073709551623", rhs: "-18446744073709551635", expecting: "-22") + self.xorTest(lhs: "-18446744073709551623", rhs: "0", expecting: "-18446744073709551623") + self.xorTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551624") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "18446744073709551622") + self.xorTest(lhs: "-18446744073709551623", rhs: "18446744073709551615", expecting: "-36893488147419103226") + self.xorTest(lhs: "-18446744073709551623", rhs: "-18446744073709551615", expecting: "36893488147419103224") + self.xorTest(lhs: "-18446744073709551623", rhs: "18446744073709551617", expecting: "-8") + self.xorTest(lhs: "-18446744073709551623", rhs: "-18446744073709551617", expecting: "6") + self.xorTest(lhs: "-18446744073709551623", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211461") + self.xorTest(lhs: "-18446744073709551623", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211463") + self.xorTest(lhs: "-18446744073709551623", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832580") + self.xorTest(lhs: "-18446744073709551623", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832578") + self.xorTest(lhs: "-18446744073709551623", rhs: "18446744073709551623", expecting: "-2") + self.xorTest(lhs: "-18446744073709551623", rhs: "-18446744073709551623", expecting: "0") + self.xorTest(lhs: "-18446744073709551623", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521157") + self.xorTest(lhs: "-18446744073709551623", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521159") + self.xorTest(lhs: "-18446744073709551623", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791630") + self.xorTest(lhs: "-18446744073709551623", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "-18446744073709551623", rhs: "18446744073709551629", expecting: "-12") + self.xorTest(lhs: "-18446744073709551623", rhs: "-18446744073709551629", expecting: "10") + self.xorTest(lhs: "-18446744073709551623", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830853") + self.xorTest(lhs: "-18446744073709551623", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830855") + self.xorTest(lhs: "-18446744073709551623", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750680") + self.xorTest(lhs: "-18446744073709551623", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750678") + self.xorTest(lhs: "-18446744073709551623", rhs: "18446744073709551635", expecting: "-22") + self.xorTest(lhs: "-18446744073709551623", rhs: "-18446744073709551635", expecting: "20") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "0", expecting: "340282366920938463592501815947735072770") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072771") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072771") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "340282366920938463610948560021444624381") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "-340282366920938463610948560021444624381") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "340282366920938463574055071874025521155") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "-340282366920938463574055071874025521155") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "110680464442257309696") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "-110680464442257309700") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879418156099306126311431") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879418156099306126311431") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "340282366920938463574055071874025521157") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "-340282366920938463574055071874025521157") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "-4") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660309084208338992889865") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660309084208338992889865") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "340282366920938463574055071874025521167") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "-340282366920938463574055071874025521167") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "184467440737095516160") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "-184467440737095516164") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440904864412192506642451") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440904864412192506642451") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "340282366920938463574055071874025521169") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "-340282366920938463574055071874025521169") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "0", expecting: "-340282366920938463592501815947735072770") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072769") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072769") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551615", expecting: "-340282366920938463610948560021444624383") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551615", expecting: "340282366920938463610948560021444624383") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551617", expecting: "-340282366920938463574055071874025521153") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551617", expecting: "340282366920938463574055071874025521153") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463481821351505477763074", expecting: "-110680464442257309700") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463481821351505477763074", expecting: "110680464442257309696") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879418156099306126311429") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879418156099306126311429") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551623", expecting: "-340282366920938463574055071874025521159") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551623", expecting: "340282366920938463574055071874025521159") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463592501815947735072770", expecting: "-4") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660309084208338992889867") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660309084208338992889867") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551629", expecting: "-340282366920938463574055071874025521165") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551629", expecting: "340282366920938463574055071874025521165") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "340282366920938463703182280389992382466", expecting: "-184467440737095516164") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-340282366920938463703182280389992382466", expecting: "184467440737095516160") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866440904864412192506642449") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866440904864412192506642449") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "18446744073709551635", expecting: "-340282366920938463574055071874025521171") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-18446744073709551635", expecting: "340282366920938463574055071874025521171") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "6277101735386680766558048358575174123698671839475922894836") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "-6277101735386680766558048358575174123698671839475922894838") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680766217765991654235660198403743896735580169") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680766217765991654235660198403743896735580171") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2041694201525630780890928109032866578446") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2041694201525630780890928109032866578448") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "-6277101735386680766558048358575174123661778351328503791630") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680766217765991654235660309084208338992889865") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680766217765991654235660309084208338992889867") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "6277101735386680766558048358575174123661778351328503791622") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "-6277101735386680766558048358575174123661778351328503791624") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680766217765991654235660124616767601897373705") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680766217765991654235660124616767601897373707") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "3402823669209384634818213515054777630746") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-3402823669209384634818213515054777630748") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "6277101735386680766558048358575174123661778351328503791640") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "-6277101735386680766558048358575174123661778351328503791642") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "0", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343244") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343242") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551615", expecting: "-6277101735386680766558048358575174123698671839475922894838") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551615", expecting: "6277101735386680766558048358575174123698671839475922894836") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551617", expecting: "-6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551617", expecting: "6277101735386680766558048358575174123661778351328503791626") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680766217765991654235660198403743896735580169") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680766217765991654235660198403743896735580171") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2041694201525630780890928109032866578448") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2041694201525630780890928109032866578446") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551623", expecting: "-6277101735386680766558048358575174123661778351328503791630") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551623", expecting: "6277101735386680766558048358575174123661778351328503791628") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680766217765991654235660309084208338992889865") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680766217765991654235660309084208338992889867") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551629", expecting: "-6277101735386680766558048358575174123661778351328503791624") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551629", expecting: "6277101735386680766558048358575174123661778351328503791622") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680766217765991654235660124616767601897373705") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680766217765991654235660124616767601897373707") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-3402823669209384634818213515054777630748") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "3402823669209384634818213515054777630746") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "18446744073709551635", expecting: "-6277101735386680766558048358575174123661778351328503791642") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-18446744073709551635", expecting: "6277101735386680766558048358575174123661778351328503791640") + self.xorTest(lhs: "18446744073709551629", rhs: "0", expecting: "18446744073709551629") + self.xorTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551628") + self.xorTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-18446744073709551630") + self.xorTest(lhs: "18446744073709551629", rhs: "18446744073709551615", expecting: "36893488147419103218") + self.xorTest(lhs: "18446744073709551629", rhs: "-18446744073709551615", expecting: "-36893488147419103220") + self.xorTest(lhs: "18446744073709551629", rhs: "18446744073709551617", expecting: "12") + self.xorTest(lhs: "18446744073709551629", rhs: "-18446744073709551617", expecting: "-14") + self.xorTest(lhs: "18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211471") + self.xorTest(lhs: "18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211469") + self.xorTest(lhs: "18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832584") + self.xorTest(lhs: "18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832586") + self.xorTest(lhs: "18446744073709551629", rhs: "18446744073709551623", expecting: "10") + self.xorTest(lhs: "18446744073709551629", rhs: "-18446744073709551623", expecting: "-12") + self.xorTest(lhs: "18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521167") + self.xorTest(lhs: "18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521165") + self.xorTest(lhs: "18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791622") + self.xorTest(lhs: "18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791624") + self.xorTest(lhs: "18446744073709551629", rhs: "18446744073709551629", expecting: "0") + self.xorTest(lhs: "18446744073709551629", rhs: "-18446744073709551629", expecting: "-2") + self.xorTest(lhs: "18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830863") + self.xorTest(lhs: "18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830861") + self.xorTest(lhs: "18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750684") + self.xorTest(lhs: "18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750686") + self.xorTest(lhs: "18446744073709551629", rhs: "18446744073709551635", expecting: "30") + self.xorTest(lhs: "18446744073709551629", rhs: "-18446744073709551635", expecting: "-32") + self.xorTest(lhs: "-18446744073709551629", rhs: "0", expecting: "-18446744073709551629") + self.xorTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551630") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "18446744073709551628") + self.xorTest(lhs: "-18446744073709551629", rhs: "18446744073709551615", expecting: "-36893488147419103220") + self.xorTest(lhs: "-18446744073709551629", rhs: "-18446744073709551615", expecting: "36893488147419103218") + self.xorTest(lhs: "-18446744073709551629", rhs: "18446744073709551617", expecting: "-14") + self.xorTest(lhs: "-18446744073709551629", rhs: "-18446744073709551617", expecting: "12") + self.xorTest(lhs: "-18446744073709551629", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211471") + self.xorTest(lhs: "-18446744073709551629", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211469") + self.xorTest(lhs: "-18446744073709551629", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832586") + self.xorTest(lhs: "-18446744073709551629", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832584") + self.xorTest(lhs: "-18446744073709551629", rhs: "18446744073709551623", expecting: "-12") + self.xorTest(lhs: "-18446744073709551629", rhs: "-18446744073709551623", expecting: "10") + self.xorTest(lhs: "-18446744073709551629", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521167") + self.xorTest(lhs: "-18446744073709551629", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521165") + self.xorTest(lhs: "-18446744073709551629", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791624") + self.xorTest(lhs: "-18446744073709551629", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791622") + self.xorTest(lhs: "-18446744073709551629", rhs: "18446744073709551629", expecting: "-2") + self.xorTest(lhs: "-18446744073709551629", rhs: "-18446744073709551629", expecting: "0") + self.xorTest(lhs: "-18446744073709551629", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830863") + self.xorTest(lhs: "-18446744073709551629", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830861") + self.xorTest(lhs: "-18446744073709551629", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750686") + self.xorTest(lhs: "-18446744073709551629", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750684") + self.xorTest(lhs: "-18446744073709551629", rhs: "18446744073709551635", expecting: "-32") + self.xorTest(lhs: "-18446744073709551629", rhs: "-18446744073709551635", expecting: "30") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "0", expecting: "340282366920938463703182280389992382466") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382467") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382467") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "340282366920938463721629024463701934077") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "-340282366920938463721629024463701934077") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "340282366920938463684735536316282830851") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "-340282366920938463684735536316282830851") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "221360928884514619392") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "-221360928884514619396") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879307475634863869001735") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879307475634863869001735") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "340282366920938463684735536316282830853") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "-340282366920938463684735536316282830853") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "184467440737095516160") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "-184467440737095516164") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660124616767601897373705") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660124616767601897373705") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "340282366920938463684735536316282830863") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "-340282366920938463684735536316282830863") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "-4") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866441089331852929602158611") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866441089331852929602158611") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "340282366920938463684735536316282830865") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "-340282366920938463684735536316282830865") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "0", expecting: "-340282366920938463703182280389992382466") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382465") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382465") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551615", expecting: "-340282366920938463721629024463701934079") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551615", expecting: "340282366920938463721629024463701934079") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551617", expecting: "-340282366920938463684735536316282830849") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551617", expecting: "340282366920938463684735536316282830849") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463481821351505477763074", expecting: "-221360928884514619396") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463481821351505477763074", expecting: "221360928884514619392") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764176071790128604879307475634863869001733") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764176071790128604879307475634863869001733") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551623", expecting: "-340282366920938463684735536316282830855") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551623", expecting: "340282366920938463684735536316282830855") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463592501815947735072770", expecting: "-184467440737095516164") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463592501815947735072770", expecting: "184467440737095516160") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766217765991654235660124616767601897373707") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766217765991654235660124616767601897373707") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551629", expecting: "-340282366920938463684735536316282830861") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551629", expecting: "340282366920938463684735536316282830861") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "340282366920938463703182280389992382466", expecting: "-4") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768259460193179866441089331852929602158609") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768259460193179866441089331852929602158609") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "18446744073709551635", expecting: "-340282366920938463684735536316282830867") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-18446744073709551635", expecting: "340282366920938463684735536316282830867") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "6277101735386680768599742560100804904368239019624274853870") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "-6277101735386680768599742560100804904368239019624274853872") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "6277101735386680768259460193179866440867970924045087539219") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "-6277101735386680768259460193179866440867970924045087539217") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "4083388403051261561781856218065733156884") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-4083388403051261561781856218065733156886") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "6277101735386680768599742560100804904331345531476855750678") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "-6277101735386680768599742560100804904331345531476855750680") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "6277101735386680768259460193179866440904864412192506642451") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "-6277101735386680768259460193179866440904864412192506642449") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3402823669209384634818213515054777630746") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3402823669209384634818213515054777630748") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "6277101735386680768599742560100804904331345531476855750684") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "-6277101735386680768599742560100804904331345531476855750686") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "6277101735386680768259460193179866441089331852929602158611") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "-6277101735386680768259460193179866441089331852929602158609") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "6277101735386680768599742560100804904331345531476855750658") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "0", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302290") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551615", expecting: "-6277101735386680768599742560100804904368239019624274853872") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551615", expecting: "6277101735386680768599742560100804904368239019624274853870") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551617", expecting: "-6277101735386680768599742560100804904331345531476855750674") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551617", expecting: "6277101735386680768599742560100804904331345531476855750672") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463481821351505477763074", expecting: "-6277101735386680768259460193179866440867970924045087539219") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463481821351505477763074", expecting: "6277101735386680768259460193179866440867970924045087539217") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-4083388403051261561781856218065733156886") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "4083388403051261561781856218065733156884") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551623", expecting: "-6277101735386680768599742560100804904331345531476855750680") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551623", expecting: "6277101735386680768599742560100804904331345531476855750678") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463592501815947735072770", expecting: "-6277101735386680768259460193179866440904864412192506642451") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463592501815947735072770", expecting: "6277101735386680768259460193179866440904864412192506642449") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-3402823669209384634818213515054777630748") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "3402823669209384634818213515054777630746") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551629", expecting: "-6277101735386680768599742560100804904331345531476855750686") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551629", expecting: "6277101735386680768599742560100804904331345531476855750684") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "340282366920938463703182280389992382466", expecting: "-6277101735386680768259460193179866441089331852929602158611") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-340282366920938463703182280389992382466", expecting: "6277101735386680768259460193179866441089331852929602158609") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "18446744073709551635", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-18446744073709551635", expecting: "6277101735386680768599742560100804904331345531476855750658") + self.xorTest(lhs: "18446744073709551635", rhs: "0", expecting: "18446744073709551635") + self.xorTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551634") + self.xorTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-18446744073709551636") + self.xorTest(lhs: "18446744073709551635", rhs: "18446744073709551615", expecting: "36893488147419103212") + self.xorTest(lhs: "18446744073709551635", rhs: "-18446744073709551615", expecting: "-36893488147419103214") + self.xorTest(lhs: "18446744073709551635", rhs: "18446744073709551617", expecting: "18") + self.xorTest(lhs: "18446744073709551635", rhs: "-18446744073709551617", expecting: "-20") + self.xorTest(lhs: "18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211473") + self.xorTest(lhs: "18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211475") + self.xorTest(lhs: "18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832598") + self.xorTest(lhs: "18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832600") + self.xorTest(lhs: "18446744073709551635", rhs: "18446744073709551623", expecting: "20") + self.xorTest(lhs: "18446744073709551635", rhs: "-18446744073709551623", expecting: "-22") + self.xorTest(lhs: "18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521169") + self.xorTest(lhs: "18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521171") + self.xorTest(lhs: "18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791640") + self.xorTest(lhs: "18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791642") + self.xorTest(lhs: "18446744073709551635", rhs: "18446744073709551629", expecting: "30") + self.xorTest(lhs: "18446744073709551635", rhs: "-18446744073709551629", expecting: "-32") + self.xorTest(lhs: "18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830865") + self.xorTest(lhs: "18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830867") + self.xorTest(lhs: "18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750658") + self.xorTest(lhs: "18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.xorTest(lhs: "18446744073709551635", rhs: "18446744073709551635", expecting: "0") + self.xorTest(lhs: "18446744073709551635", rhs: "-18446744073709551635", expecting: "-2") + self.xorTest(lhs: "-18446744073709551635", rhs: "0", expecting: "-18446744073709551635") + self.xorTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551636") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "18446744073709551634") + self.xorTest(lhs: "-18446744073709551635", rhs: "18446744073709551615", expecting: "-36893488147419103214") + self.xorTest(lhs: "-18446744073709551635", rhs: "-18446744073709551615", expecting: "36893488147419103212") + self.xorTest(lhs: "-18446744073709551635", rhs: "18446744073709551617", expecting: "-20") + self.xorTest(lhs: "-18446744073709551635", rhs: "-18446744073709551617", expecting: "18") + self.xorTest(lhs: "-18446744073709551635", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463463374607431768211473") + self.xorTest(lhs: "-18446744073709551635", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463463374607431768211475") + self.xorTest(lhs: "-18446744073709551635", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543342992211171180151832600") + self.xorTest(lhs: "-18446744073709551635", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543342992211171180151832598") + self.xorTest(lhs: "-18446744073709551635", rhs: "18446744073709551623", expecting: "-22") + self.xorTest(lhs: "-18446744073709551635", rhs: "-18446744073709551623", expecting: "20") + self.xorTest(lhs: "-18446744073709551635", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463574055071874025521169") + self.xorTest(lhs: "-18446744073709551635", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463574055071874025521171") + self.xorTest(lhs: "-18446744073709551635", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123661778351328503791642") + self.xorTest(lhs: "-18446744073709551635", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123661778351328503791640") + self.xorTest(lhs: "-18446744073709551635", rhs: "18446744073709551629", expecting: "-32") + self.xorTest(lhs: "-18446744073709551635", rhs: "-18446744073709551629", expecting: "30") + self.xorTest(lhs: "-18446744073709551635", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463684735536316282830865") + self.xorTest(lhs: "-18446744073709551635", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463684735536316282830867") + self.xorTest(lhs: "-18446744073709551635", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904331345531476855750660") + self.xorTest(lhs: "-18446744073709551635", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904331345531476855750658") + self.xorTest(lhs: "-18446744073709551635", rhs: "18446744073709551635", expecting: "-2") + self.xorTest(lhs: "-18446744073709551635", rhs: "-18446744073709551635", expecting: "0") + } + + // MARK: - Shift left + + func test_shiftLeft_smi_lessThanWord() { + self.shiftLeftTest(value: "0", count: 5, expecting: "0") + self.shiftLeftTest(value: "1", count: 5, expecting: "32") + self.shiftLeftTest(value: "-1", count: 5, expecting: "-32") + self.shiftLeftTest(value: "2147483647", count: 5, expecting: "68719476704") + self.shiftLeftTest(value: "-2147483648", count: 5, expecting: "-68719476736") + self.shiftLeftTest(value: "1932735283", count: 5, expecting: "61847529056") + self.shiftLeftTest(value: "-1932735284", count: 5, expecting: "-61847529088") + self.shiftLeftTest(value: "1717986919", count: 5, expecting: "54975581408") + self.shiftLeftTest(value: "-1717986920", count: 5, expecting: "-54975581440") + self.shiftLeftTest(value: "1503238555", count: 5, expecting: "48103633760") + self.shiftLeftTest(value: "-1503238556", count: 5, expecting: "-48103633792") + self.shiftLeftTest(value: "1288490191", count: 5, expecting: "41231686112") + self.shiftLeftTest(value: "-1288490192", count: 5, expecting: "-41231686144") + self.shiftLeftTest(value: "1073741827", count: 5, expecting: "34359738464") + self.shiftLeftTest(value: "-1073741828", count: 5, expecting: "-34359738496") + self.shiftLeftTest(value: "858993463", count: 5, expecting: "27487790816") + self.shiftLeftTest(value: "-858993464", count: 5, expecting: "-27487790848") + self.shiftLeftTest(value: "644245099", count: 5, expecting: "20615843168") + self.shiftLeftTest(value: "-644245100", count: 5, expecting: "-20615843200") + self.shiftLeftTest(value: "429496735", count: 5, expecting: "13743895520") + self.shiftLeftTest(value: "-429496736", count: 5, expecting: "-13743895552") + self.shiftLeftTest(value: "214748371", count: 5, expecting: "6871947872") + self.shiftLeftTest(value: "-214748372", count: 5, expecting: "-6871947904") + } + + func test_shiftLeft_smi_word() { + self.shiftLeftTest(value: "0", count: 64, expecting: "0") + self.shiftLeftTest(value: "1", count: 64, expecting: "18446744073709551616") + self.shiftLeftTest(value: "-1", count: 64, expecting: "-18446744073709551616") + self.shiftLeftTest(value: "2147483647", count: 64, expecting: "39614081238685424723062423552") + self.shiftLeftTest(value: "-2147483648", count: 64, expecting: "-39614081257132168796771975168") + self.shiftLeftTest(value: "1932735283", count: 64, expecting: "35652673127729603102352867328") + self.shiftLeftTest(value: "-1932735284", count: 64, expecting: "-35652673146176347176062418944") + self.shiftLeftTest(value: "1717986919", count: 64, expecting: "31691265016773781481643311104") + self.shiftLeftTest(value: "-1717986920", count: 64, expecting: "-31691265035220525555352862720") + self.shiftLeftTest(value: "1503238555", count: 64, expecting: "27729856905817959860933754880") + self.shiftLeftTest(value: "-1503238556", count: 64, expecting: "-27729856924264703934643306496") + self.shiftLeftTest(value: "1288490191", count: 64, expecting: "23768448794862138240224198656") + self.shiftLeftTest(value: "-1288490192", count: 64, expecting: "-23768448813308882313933750272") + self.shiftLeftTest(value: "1073741827", count: 64, expecting: "19807040683906316619514642432") + self.shiftLeftTest(value: "-1073741828", count: 64, expecting: "-19807040702353060693224194048") + self.shiftLeftTest(value: "858993463", count: 64, expecting: "15845632572950494998805086208") + self.shiftLeftTest(value: "-858993464", count: 64, expecting: "-15845632591397239072514637824") + self.shiftLeftTest(value: "644245099", count: 64, expecting: "11884224461994673378095529984") + self.shiftLeftTest(value: "-644245100", count: 64, expecting: "-11884224480441417451805081600") + self.shiftLeftTest(value: "429496735", count: 64, expecting: "7922816351038851757385973760") + self.shiftLeftTest(value: "-429496736", count: 64, expecting: "-7922816369485595831095525376") + self.shiftLeftTest(value: "214748371", count: 64, expecting: "3961408240083030136676417536") + self.shiftLeftTest(value: "-214748372", count: 64, expecting: "-3961408258529774210385969152") + } + + func test_shiftLeft_smi_moreThanWord() { + self.shiftLeftTest(value: "0", count: 121, expecting: "0") + self.shiftLeftTest(value: "1", count: 121, expecting: "2658455991569831745807614120560689152") + self.shiftLeftTest(value: "-1", count: 121, expecting: "-2658455991569831745807614120560689152") + self.shiftLeftTest(value: "2147483647", count: 121, expecting: "5708990768165383532663312131990366424970297344") + self.shiftLeftTest(value: "-2147483648", count: 121, expecting: "-5708990770823839524233143877797980545530986496") + self.shiftLeftTest(value: "1932735283", count: 121, expecting: "5138091693209764373495863140856659666865750016") + self.shiftLeftTest(value: "-1932735284", count: 121, expecting: "-5138091695868220365065694886664273787426439168") + self.shiftLeftTest(value: "1717986919", count: 121, expecting: "4567192618254145214328414149722952908761202688") + self.shiftLeftTest(value: "-1717986920", count: 121, expecting: "-4567192620912601205898245895530567029321891840") + self.shiftLeftTest(value: "1503238555", count: 121, expecting: "3996293543298526055160965158589246150656655360") + self.shiftLeftTest(value: "-1503238556", count: 121, expecting: "-3996293545956982046730796904396860271217344512") + self.shiftLeftTest(value: "1288490191", count: 121, expecting: "3425394468342906895993516167455539392552108032") + self.shiftLeftTest(value: "-1288490192", count: 121, expecting: "-3425394471001362887563347913263153513112797184") + self.shiftLeftTest(value: "1073741827", count: 121, expecting: "2854495393387287736826067176321832634447560704") + self.shiftLeftTest(value: "-1073741828", count: 121, expecting: "-2854495396045743728395898922129446755008249856") + self.shiftLeftTest(value: "858993463", count: 121, expecting: "2283596318431668577658618185188125876343013376") + self.shiftLeftTest(value: "-858993464", count: 121, expecting: "-2283596321090124569228449930995739996903702528") + self.shiftLeftTest(value: "644245099", count: 121, expecting: "1712697243476049418491169194054419118238466048") + self.shiftLeftTest(value: "-644245100", count: 121, expecting: "-1712697246134505410061000939862033238799155200") + self.shiftLeftTest(value: "429496735", count: 121, expecting: "1141798168520430259323720202920712360133918720") + self.shiftLeftTest(value: "-429496736", count: 121, expecting: "-1141798171178886250893551948728326480694607872") + self.shiftLeftTest(value: "214748371", count: 121, expecting: "570899093564811100156271211787005602029371392") + self.shiftLeftTest(value: "-214748372", count: 121, expecting: "-570899096223267091726102957594619722590060544") + } + + func test_shiftLeft_heap_lessThanWord() { + self.shiftLeftTest(value: "0", count: 5, expecting: "0") + self.shiftLeftTest(value: "1", count: 5, expecting: "32") + self.shiftLeftTest(value: "-1", count: 5, expecting: "-32") + self.shiftLeftTest(value: "18446744073709551615", count: 5, expecting: "590295810358705651680") + self.shiftLeftTest(value: "-18446744073709551615", count: 5, expecting: "-590295810358705651680") + self.shiftLeftTest(value: "18446744073709551617", count: 5, expecting: "590295810358705651744") + self.shiftLeftTest(value: "-18446744073709551617", count: 5, expecting: "-590295810358705651744") + self.shiftLeftTest(value: "340282366920938463481821351505477763074", count: 5, expecting: "10889035741470030831418283248175288418368") + self.shiftLeftTest(value: "-340282366920938463481821351505477763074", count: 5, expecting: "-10889035741470030831418283248175288418368") + self.shiftLeftTest(value: "6277101735386680764516354157049543343010657915253861384197", count: 5, expecting: "200867255532373784464523333025585386976341053288123564294304") + self.shiftLeftTest(value: "-6277101735386680764516354157049543343010657915253861384197", count: 5, expecting: "-200867255532373784464523333025585386976341053288123564294304") + self.shiftLeftTest(value: "18446744073709551623", count: 5, expecting: "590295810358705651936") + self.shiftLeftTest(value: "-18446744073709551623", count: 5, expecting: "-590295810358705651936") + self.shiftLeftTest(value: "340282366920938463592501815947735072770", count: 5, expecting: "10889035741470030834960058110327522328640") + self.shiftLeftTest(value: "-340282366920938463592501815947735072770", count: 5, expecting: "-10889035741470030834960058110327522328640") + self.shiftLeftTest(value: "6277101735386680766558048358575174123680225095402213343243", count: 5, expecting: "200867255532373784529857547474405571957767203052870826983776") + self.shiftLeftTest(value: "-6277101735386680766558048358575174123680225095402213343243", count: 5, expecting: "-200867255532373784529857547474405571957767203052870826983776") + self.shiftLeftTest(value: "18446744073709551629", count: 5, expecting: "590295810358705652128") + self.shiftLeftTest(value: "-18446744073709551629", count: 5, expecting: "-590295810358705652128") + self.shiftLeftTest(value: "340282366920938463703182280389992382466", count: 5, expecting: "10889035741470030838501832972479756238912") + self.shiftLeftTest(value: "-340282366920938463703182280389992382466", count: 5, expecting: "-10889035741470030838501832972479756238912") + self.shiftLeftTest(value: "6277101735386680768599742560100804904349792275550565302289", count: 5, expecting: "200867255532373784595191761923225756939193352817618089673248") + self.shiftLeftTest(value: "-6277101735386680768599742560100804904349792275550565302289", count: 5, expecting: "-200867255532373784595191761923225756939193352817618089673248") + self.shiftLeftTest(value: "18446744073709551635", count: 5, expecting: "590295810358705652320") + self.shiftLeftTest(value: "-18446744073709551635", count: 5, expecting: "-590295810358705652320") + } + + func test_shiftLeft_heap_word() { + self.shiftLeftTest(value: "0", count: 64, expecting: "0") + self.shiftLeftTest(value: "1", count: 64, expecting: "18446744073709551616") + self.shiftLeftTest(value: "-1", count: 64, expecting: "-18446744073709551616") + self.shiftLeftTest(value: "18446744073709551615", count: 64, expecting: "340282366920938463444927863358058659840") + self.shiftLeftTest(value: "-18446744073709551615", count: 64, expecting: "-340282366920938463444927863358058659840") + self.shiftLeftTest(value: "18446744073709551617", count: 64, expecting: "340282366920938463481821351505477763072") + self.shiftLeftTest(value: "-18446744073709551617", count: 64, expecting: "-340282366920938463481821351505477763072") + self.shiftLeftTest(value: "340282366920938463481821351505477763074", count: 64, expecting: "6277101735386680764176071790128604879602623540043221827584") + self.shiftLeftTest(value: "-340282366920938463481821351505477763074", count: 64, expecting: "-6277101735386680764176071790128604879602623540043221827584") + self.shiftLeftTest(value: "6277101735386680764516354157049543343010657915253861384197", count: 64, expecting: "115792089237316195436125188479461269380601281145134958408291154009777978212352") + self.shiftLeftTest(value: "-6277101735386680764516354157049543343010657915253861384197", count: 64, expecting: "-115792089237316195436125188479461269380601281145134958408291154009777978212352") + self.shiftLeftTest(value: "18446744073709551623", count: 64, expecting: "340282366920938463592501815947735072768") + self.shiftLeftTest(value: "-18446744073709551623", count: 64, expecting: "-340282366920938463592501815947735072768") + self.shiftLeftTest(value: "340282366920938463592501815947735072770", count: 64, expecting: "6277101735386680766217765991654235660382871184633831096320") + self.shiftLeftTest(value: "-340282366920938463592501815947735072770", count: 64, expecting: "-6277101735386680766217765991654235660382871184633831096320") + self.shiftLeftTest(value: "6277101735386680766558048358575174123680225095402213343243", count: 64, expecting: "115792089237316195473787798891781353961574323482855326124235719496413833330688") + self.shiftLeftTest(value: "-6277101735386680766558048358575174123680225095402213343243", count: 64, expecting: "-115792089237316195473787798891781353961574323482855326124235719496413833330688") + self.shiftLeftTest(value: "18446744073709551629", count: 64, expecting: "340282366920938463703182280389992382464") + self.shiftLeftTest(value: "-18446744073709551629", count: 64, expecting: "-340282366920938463703182280389992382464") + self.shiftLeftTest(value: "340282366920938463703182280389992382466", count: 64, expecting: "6277101735386680768259460193179866441163118829224440365056") + self.shiftLeftTest(value: "-340282366920938463703182280389992382466", count: 64, expecting: "-6277101735386680768259460193179866441163118829224440365056") + self.shiftLeftTest(value: "6277101735386680768599742560100804904349792275550565302289", count: 64, expecting: "115792089237316195511450409304101438542547365820575693840180284983049688449024") + self.shiftLeftTest(value: "-6277101735386680768599742560100804904349792275550565302289", count: 64, expecting: "-115792089237316195511450409304101438542547365820575693840180284983049688449024") + self.shiftLeftTest(value: "18446744073709551635", count: 64, expecting: "340282366920938463813862744832249692160") + self.shiftLeftTest(value: "-18446744073709551635", count: 64, expecting: "-340282366920938463813862744832249692160") + } + + func test_shiftLeft_heap_moreThanWord() { + self.shiftLeftTest(value: "0", count: 121, expecting: "0") + self.shiftLeftTest(value: "1", count: 121, expecting: "2658455991569831745807614120560689152") + self.shiftLeftTest(value: "-1", count: 121, expecting: "-2658455991569831745807614120560689152") + self.shiftLeftTest(value: "18446744073709551615", count: 121, expecting: "49039857307708443464808648877240062129992037789314580480") + self.shiftLeftTest(value: "-18446744073709551615", count: 121, expecting: "-49039857307708443464808648877240062129992037789314580480") + self.shiftLeftTest(value: "18446744073709551617", count: 121, expecting: "49039857307708443470125560860379725621607266030435958784") + self.shiftLeftTest(value: "-18446744073709551617", count: 121, expecting: "-49039857307708443470125560860379725621607266030435958784") + self.shiftLeftTest(value: "340282366920938463481821351505477763074", count: 121, expecting: "904625697166532776795688177688082723576455772052266463925677255212817973248") + self.shiftLeftTest(value: "-340282366920938463481821351505477763074", count: 121, expecting: "-904625697166532776795688177688082723576455772052266463925677255212817973248") + self.shiftLeftTest(value: "6277101735386680764516354157049543343010657915253861384197", count: 121, expecting: "16687398718132110020520358473782691448777885864364389881964431246600764685631017465870962130944") + self.shiftLeftTest(value: "-6277101735386680764516354157049543343010657915253861384197", count: 121, expecting: "-16687398718132110020520358473782691448777885864364389881964431246600764685631017465870962130944") + self.shiftLeftTest(value: "18446744073709551623", count: 121, expecting: "49039857307708443486076296809798716096452950753800093696") + self.shiftLeftTest(value: "-18446744073709551623", count: 121, expecting: "-49039857307708443486076296809798716096452950753800093696") + self.shiftLeftTest(value: "340282366920938463592501815947735072770", count: 121, expecting: "904625697166532777089927321534333384381258401265125827180475166672069591040") + self.shiftLeftTest(value: "-340282366920938463592501815947735072770", count: 121, expecting: "-904625697166532777089927321534333384381258401265125827180475166672069591040") + self.shiftLeftTest(value: "6277101735386680766558048358575174123680225095402213343243", count: 121, expecting: "16687398718132110025948112656781888108963536642800384901797609884539225752200639489506002599936") + self.shiftLeftTest(value: "-6277101735386680766558048358575174123680225095402213343243", count: 121, expecting: "-16687398718132110025948112656781888108963536642800384901797609884539225752200639489506002599936") + self.shiftLeftTest(value: "18446744073709551629", count: 121, expecting: "49039857307708443502027032759217706571298635477164228608") + self.shiftLeftTest(value: "-18446744073709551629", count: 121, expecting: "-49039857307708443502027032759217706571298635477164228608") + self.shiftLeftTest(value: "340282366920938463703182280389992382466", count: 121, expecting: "904625697166532777384166465380584045186061030477985190435273078131321208832") + self.shiftLeftTest(value: "-340282366920938463703182280389992382466", count: 121, expecting: "-904625697166532777384166465380584045186061030477985190435273078131321208832") + self.shiftLeftTest(value: "6277101735386680768599742560100804904349792275550565302289", count: 121, expecting: "16687398718132110031375866839781084769149187421236379921630788522477686818770261513141043068928") + self.shiftLeftTest(value: "-6277101735386680768599742560100804904349792275550565302289", count: 121, expecting: "-16687398718132110031375866839781084769149187421236379921630788522477686818770261513141043068928") + self.shiftLeftTest(value: "18446744073709551635", count: 121, expecting: "49039857307708443517977768708636697046144320200528363520") + self.shiftLeftTest(value: "-18446744073709551635", count: 121, expecting: "-49039857307708443517977768708636697046144320200528363520") + } + + // MARK: - Shift right + + func test_shiftRight_smi_lessThanWord() { + self.shiftRightTest(value: "0", count: 5, expecting: "0") + self.shiftRightTest(value: "1", count: 5, expecting: "0") + self.shiftRightTest(value: "-1", count: 5, expecting: "-1") + self.shiftRightTest(value: "2147483647", count: 5, expecting: "67108863") + self.shiftRightTest(value: "-2147483648", count: 5, expecting: "-67108864") + self.shiftRightTest(value: "1932735283", count: 5, expecting: "60397977") + self.shiftRightTest(value: "-1932735284", count: 5, expecting: "-60397978") + self.shiftRightTest(value: "1717986919", count: 5, expecting: "53687091") + self.shiftRightTest(value: "-1717986920", count: 5, expecting: "-53687092") + self.shiftRightTest(value: "1503238555", count: 5, expecting: "46976204") + self.shiftRightTest(value: "-1503238556", count: 5, expecting: "-46976205") + self.shiftRightTest(value: "1288490191", count: 5, expecting: "40265318") + self.shiftRightTest(value: "-1288490192", count: 5, expecting: "-40265319") + self.shiftRightTest(value: "1073741827", count: 5, expecting: "33554432") + self.shiftRightTest(value: "-1073741828", count: 5, expecting: "-33554433") + self.shiftRightTest(value: "858993463", count: 5, expecting: "26843545") + self.shiftRightTest(value: "-858993464", count: 5, expecting: "-26843546") + self.shiftRightTest(value: "644245099", count: 5, expecting: "20132659") + self.shiftRightTest(value: "-644245100", count: 5, expecting: "-20132660") + self.shiftRightTest(value: "429496735", count: 5, expecting: "13421772") + self.shiftRightTest(value: "-429496736", count: 5, expecting: "-13421773") + self.shiftRightTest(value: "214748371", count: 5, expecting: "6710886") + self.shiftRightTest(value: "-214748372", count: 5, expecting: "-6710887") + } + + func test_shiftRight_smi_word() { + self.shiftRightTest(value: "0", count: 64, expecting: "0") + self.shiftRightTest(value: "1", count: 64, expecting: "0") + self.shiftRightTest(value: "-1", count: 64, expecting: "-1") + self.shiftRightTest(value: "2147483647", count: 64, expecting: "0") + self.shiftRightTest(value: "-2147483648", count: 64, expecting: "-1") + self.shiftRightTest(value: "1932735283", count: 64, expecting: "0") + self.shiftRightTest(value: "-1932735284", count: 64, expecting: "-1") + self.shiftRightTest(value: "1717986919", count: 64, expecting: "0") + self.shiftRightTest(value: "-1717986920", count: 64, expecting: "-1") + self.shiftRightTest(value: "1503238555", count: 64, expecting: "0") + self.shiftRightTest(value: "-1503238556", count: 64, expecting: "-1") + self.shiftRightTest(value: "1288490191", count: 64, expecting: "0") + self.shiftRightTest(value: "-1288490192", count: 64, expecting: "-1") + self.shiftRightTest(value: "1073741827", count: 64, expecting: "0") + self.shiftRightTest(value: "-1073741828", count: 64, expecting: "-1") + self.shiftRightTest(value: "858993463", count: 64, expecting: "0") + self.shiftRightTest(value: "-858993464", count: 64, expecting: "-1") + self.shiftRightTest(value: "644245099", count: 64, expecting: "0") + self.shiftRightTest(value: "-644245100", count: 64, expecting: "-1") + self.shiftRightTest(value: "429496735", count: 64, expecting: "0") + self.shiftRightTest(value: "-429496736", count: 64, expecting: "-1") + self.shiftRightTest(value: "214748371", count: 64, expecting: "0") + self.shiftRightTest(value: "-214748372", count: 64, expecting: "-1") + } + + func test_shiftRight_smi_moreThanWord() { + self.shiftRightTest(value: "0", count: 121, expecting: "0") + self.shiftRightTest(value: "1", count: 121, expecting: "0") + self.shiftRightTest(value: "-1", count: 121, expecting: "-1") + self.shiftRightTest(value: "2147483647", count: 121, expecting: "0") + self.shiftRightTest(value: "-2147483648", count: 121, expecting: "-1") + self.shiftRightTest(value: "1932735283", count: 121, expecting: "0") + self.shiftRightTest(value: "-1932735284", count: 121, expecting: "-1") + self.shiftRightTest(value: "1717986919", count: 121, expecting: "0") + self.shiftRightTest(value: "-1717986920", count: 121, expecting: "-1") + self.shiftRightTest(value: "1503238555", count: 121, expecting: "0") + self.shiftRightTest(value: "-1503238556", count: 121, expecting: "-1") + self.shiftRightTest(value: "1288490191", count: 121, expecting: "0") + self.shiftRightTest(value: "-1288490192", count: 121, expecting: "-1") + self.shiftRightTest(value: "1073741827", count: 121, expecting: "0") + self.shiftRightTest(value: "-1073741828", count: 121, expecting: "-1") + self.shiftRightTest(value: "858993463", count: 121, expecting: "0") + self.shiftRightTest(value: "-858993464", count: 121, expecting: "-1") + self.shiftRightTest(value: "644245099", count: 121, expecting: "0") + self.shiftRightTest(value: "-644245100", count: 121, expecting: "-1") + self.shiftRightTest(value: "429496735", count: 121, expecting: "0") + self.shiftRightTest(value: "-429496736", count: 121, expecting: "-1") + self.shiftRightTest(value: "214748371", count: 121, expecting: "0") + self.shiftRightTest(value: "-214748372", count: 121, expecting: "-1") + } + + func test_shiftRight_heap_lessThanWord() { + self.shiftRightTest(value: "0", count: 5, expecting: "0") + self.shiftRightTest(value: "1", count: 5, expecting: "0") + self.shiftRightTest(value: "-1", count: 5, expecting: "-1") + self.shiftRightTest(value: "18446744073709551615", count: 5, expecting: "576460752303423487") + self.shiftRightTest(value: "-18446744073709551615", count: 5, expecting: "-576460752303423488") + self.shiftRightTest(value: "18446744073709551617", count: 5, expecting: "576460752303423488") + self.shiftRightTest(value: "-18446744073709551617", count: 5, expecting: "-576460752303423489") + self.shiftRightTest(value: "340282366920938463481821351505477763074", count: 5, expecting: "10633823966279326983806917234546180096") + self.shiftRightTest(value: "-340282366920938463481821351505477763074", count: 5, expecting: "-10633823966279326983806917234546180097") + self.shiftRightTest(value: "6277101735386680764516354157049543343010657915253861384197", count: 5, expecting: "196159429230833773891136067407798229469083059851683168256") + self.shiftRightTest(value: "-6277101735386680764516354157049543343010657915253861384197", count: 5, expecting: "-196159429230833773891136067407798229469083059851683168257") + self.shiftRightTest(value: "18446744073709551623", count: 5, expecting: "576460752303423488") + self.shiftRightTest(value: "-18446744073709551623", count: 5, expecting: "-576460752303423489") + self.shiftRightTest(value: "340282366920938463592501815947735072770", count: 5, expecting: "10633823966279326987265681748366721024") + self.shiftRightTest(value: "-340282366920938463592501815947735072770", count: 5, expecting: "-10633823966279326987265681748366721025") + self.shiftRightTest(value: "6277101735386680766558048358575174123680225095402213343243", count: 5, expecting: "196159429230833773954939011205474191365007034231319166976") + self.shiftRightTest(value: "-6277101735386680766558048358575174123680225095402213343243", count: 5, expecting: "-196159429230833773954939011205474191365007034231319166977") + self.shiftRightTest(value: "18446744073709551629", count: 5, expecting: "576460752303423488") + self.shiftRightTest(value: "-18446744073709551629", count: 5, expecting: "-576460752303423489") + self.shiftRightTest(value: "340282366920938463703182280389992382466", count: 5, expecting: "10633823966279326990724446262187261952") + self.shiftRightTest(value: "-340282366920938463703182280389992382466", count: 5, expecting: "-10633823966279326990724446262187261953") + self.shiftRightTest(value: "6277101735386680768599742560100804904349792275550565302289", count: 5, expecting: "196159429230833774018741955003150153260931008610955165696") + self.shiftRightTest(value: "-6277101735386680768599742560100804904349792275550565302289", count: 5, expecting: "-196159429230833774018741955003150153260931008610955165697") + self.shiftRightTest(value: "18446744073709551635", count: 5, expecting: "576460752303423488") + self.shiftRightTest(value: "-18446744073709551635", count: 5, expecting: "-576460752303423489") + } + + func test_shiftRight_heap_word() { + self.shiftRightTest(value: "0", count: 64, expecting: "0") + self.shiftRightTest(value: "1", count: 64, expecting: "0") + self.shiftRightTest(value: "-1", count: 64, expecting: "-1") + self.shiftRightTest(value: "18446744073709551615", count: 64, expecting: "0") + self.shiftRightTest(value: "-18446744073709551615", count: 64, expecting: "-1") + self.shiftRightTest(value: "18446744073709551617", count: 64, expecting: "1") + self.shiftRightTest(value: "-18446744073709551617", count: 64, expecting: "-2") + self.shiftRightTest(value: "340282366920938463481821351505477763074", count: 64, expecting: "18446744073709551617") + self.shiftRightTest(value: "-340282366920938463481821351505477763074", count: 64, expecting: "-18446744073709551618") + self.shiftRightTest(value: "6277101735386680764516354157049543343010657915253861384197", count: 64, expecting: "340282366920938463500268095579187314687") + self.shiftRightTest(value: "-6277101735386680764516354157049543343010657915253861384197", count: 64, expecting: "-340282366920938463500268095579187314688") + self.shiftRightTest(value: "18446744073709551623", count: 64, expecting: "1") + self.shiftRightTest(value: "-18446744073709551623", count: 64, expecting: "-2") + self.shiftRightTest(value: "340282366920938463592501815947735072770", count: 64, expecting: "18446744073709551623") + self.shiftRightTest(value: "-340282366920938463592501815947735072770", count: 64, expecting: "-18446744073709551624") + self.shiftRightTest(value: "6277101735386680766558048358575174123680225095402213343243", count: 64, expecting: "340282366920938463610948560021444624377") + self.shiftRightTest(value: "-6277101735386680766558048358575174123680225095402213343243", count: 64, expecting: "-340282366920938463610948560021444624378") + self.shiftRightTest(value: "18446744073709551629", count: 64, expecting: "1") + self.shiftRightTest(value: "-18446744073709551629", count: 64, expecting: "-2") + self.shiftRightTest(value: "340282366920938463703182280389992382466", count: 64, expecting: "18446744073709551629") + self.shiftRightTest(value: "-340282366920938463703182280389992382466", count: 64, expecting: "-18446744073709551630") + self.shiftRightTest(value: "6277101735386680768599742560100804904349792275550565302289", count: 64, expecting: "340282366920938463721629024463701934067") + self.shiftRightTest(value: "-6277101735386680768599742560100804904349792275550565302289", count: 64, expecting: "-340282366920938463721629024463701934068") + self.shiftRightTest(value: "18446744073709551635", count: 64, expecting: "1") + self.shiftRightTest(value: "-18446744073709551635", count: 64, expecting: "-2") + } + + func test_shiftRight_heap_moreThanWord() { + self.shiftRightTest(value: "0", count: 121, expecting: "0") + self.shiftRightTest(value: "1", count: 121, expecting: "0") + self.shiftRightTest(value: "-1", count: 121, expecting: "-1") + self.shiftRightTest(value: "18446744073709551615", count: 121, expecting: "0") + self.shiftRightTest(value: "-18446744073709551615", count: 121, expecting: "-1") + self.shiftRightTest(value: "18446744073709551617", count: 121, expecting: "0") + self.shiftRightTest(value: "-18446744073709551617", count: 121, expecting: "-1") + self.shiftRightTest(value: "340282366920938463481821351505477763074", count: 121, expecting: "128") + self.shiftRightTest(value: "-340282366920938463481821351505477763074", count: 121, expecting: "-129") + self.shiftRightTest(value: "6277101735386680764516354157049543343010657915253861384197", count: 121, expecting: "2361183241434822607103") + self.shiftRightTest(value: "-6277101735386680764516354157049543343010657915253861384197", count: 121, expecting: "-2361183241434822607104") + self.shiftRightTest(value: "18446744073709551623", count: 121, expecting: "0") + self.shiftRightTest(value: "-18446744073709551623", count: 121, expecting: "-1") + self.shiftRightTest(value: "340282366920938463592501815947735072770", count: 121, expecting: "128") + self.shiftRightTest(value: "-340282366920938463592501815947735072770", count: 121, expecting: "-129") + self.shiftRightTest(value: "6277101735386680766558048358575174123680225095402213343243", count: 121, expecting: "2361183241434822607871") + self.shiftRightTest(value: "-6277101735386680766558048358575174123680225095402213343243", count: 121, expecting: "-2361183241434822607872") + self.shiftRightTest(value: "18446744073709551629", count: 121, expecting: "0") + self.shiftRightTest(value: "-18446744073709551629", count: 121, expecting: "-1") + self.shiftRightTest(value: "340282366920938463703182280389992382466", count: 121, expecting: "128") + self.shiftRightTest(value: "-340282366920938463703182280389992382466", count: 121, expecting: "-129") + self.shiftRightTest(value: "6277101735386680768599742560100804904349792275550565302289", count: 121, expecting: "2361183241434822608639") + self.shiftRightTest(value: "-6277101735386680768599742560100804904349792275550565302289", count: 121, expecting: "-2361183241434822608640") + self.shiftRightTest(value: "18446744073709551635", count: 121, expecting: "0") + self.shiftRightTest(value: "-18446744073709551635", count: 121, expecting: "-1") + } + +} From 95df857181c6b624211ed0575215928eec45e2d8 Mon Sep 17 00:00:00 2001 From: LiarPrincess <4982138+LiarPrincess@users.noreply.github.com> Date: Sun, 24 Apr 2022 17:36:51 +0200 Subject: [PATCH 2/2] Added Violet file header --- Tests/BigIntTests/Violet - Node/NodeTests+Support.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Tests/BigIntTests/Violet - Node/NodeTests+Support.swift b/Tests/BigIntTests/Violet - Node/NodeTests+Support.swift index b500875..e56e573 100644 --- a/Tests/BigIntTests/Violet - Node/NodeTests+Support.swift +++ b/Tests/BigIntTests/Violet - Node/NodeTests+Support.swift @@ -1,3 +1,6 @@ +// This file was written by LiarPrincess for Violet - Python VM written in Swift. +// https://github.com/LiarPrincess/Violet + import XCTest import BigInt